web-dev-qa-db-fra.com

Recevoir le message "Une ressource signée a été ajoutée, modifiée ou supprimée" lors de la tentative de débogage d'une application sur iPhone

Lors de la tentative de débogage d'une version créée à l'aide du SDK 3.2 sur un périphérique iPhone, le message "Une ressource signée a été ajoutée, modifiée ou supprimée".

Je peux nettoyer, reconstruire, puis installer sans erreur, mais si j'essaye d'installer sans nettoyer l'erreur montre.

Quelqu'un a une idée de ce qui pourrait causer cela?

44
jessecurry

J'ai trouvé une solution de contournement pour le bogue.

Si vous supprimez le fichier .app dans build/Debug-iphoneos/avant de construire pour le périphérique, l'application est installée sans erreur ..__ Et il existe un moyen simple de le faire avant chaque génération.

Assurez-vous que vous avez sélectionné "Périphérique" dans la liste déroulante . Dans XCode, sélectionnez Projet> Nouvelle cible ... Recherchez ensuite "Shell Script target" sous MacOSX/Other Nommez-le et ajoutez-le. au projet actuel

Maintenant, dans le panneau de navigation de gauche, sous cibles, développez votre cible nouvellement créée et double-cliquez sur Exécuter le script . Dans la fenêtre qui s'ouvre, remplacez "# Le script shell va ici" par "rm -fr build/Debug-iphoneos /*.app "(sans les guillemets) . Ouvrez maintenant vos préférences de cible principale et, sous Dépendances directes, ajoutez votre cible nouvellement créée . Build and Go! :)

31
Jernej Strasner

Cette erreur se produit lorsqu'il existe un caractère spécial dans le nom du produit . Dans mon cas c'était un "?"

Si vous modifiez le nom du produit, le "nom de l'ensemble" et le "nom d'affichage de l'ensemble" sont automatiquement mis à jour; il est donc préférable de renommer une application.

Si vous souhaitez inclure des caractères spéciaux dans le nom de l'application, vous devez manuellement renommer le "Nom de l'ensemble" et "Nom complet de l'ensemble"

Nom du paquet : Il s'agit du nom actuel du paquet d'applications dans le système de fichiers, tel que "Awesome App.app". Il n'est généralement pas visible pour l'utilisateur.

Nom d'affichage de l'ensemble : Il s'agit d'un nom abrégé affiché sous l'icône de l'application sur l'appareil. Étant donné que le nom du paquet serait tronqué à "Awes… tion", vous avez la possibilité d'avoir un nom plus court qui convient mieux, tel que "Awesome App". Il devrait ressembler au nom de l'App Store (défini dans iTunes Connect).

20
Tibidabo

Il s'agit clairement d'un bogue dans le SDK 3.2, mais je ne veux pas rétrograder. J'ai constaté que faire un nettoyage en poussant Command+Shift+K, alors Return est assez rapide avant de pousser Command+R pour construire.

12
davidcann

Cela peut avoir plusieurs causes. Le moyen le plus rapide de comprendre sa cause consiste à ouvrir Xcode, menu Fenêtre, Périphériques, puis à cliquer sur le bouton Révéler situé en bas du volet pour afficher la console. Maintenant, essayez de courir. Vous devriez voir une sortie de journal qui nomme les fichiers spécifiques dont il se plaint.

La plupart des solutions précédemment publiées ne sont que des méthodes artificielles permettant à Xcode de régénérer le contenu du dossier de construction et/ou de signer à nouveau les fichiers.

Dans mon cas, mon extension WatchKit acquérait en quelque sorte des références à des frameworks Cocoapods qui n'étaient ciblés que sur l'application principale. Ils ont donc été signés lors de la construction, puis supprimés ultérieurement (car ils n'étaient pas utilisés). Ensuite, sur l'appareil, iOS s'est plaint de l'absence du dossier .appex pour l'extension. J'ai fini par ne plus avoir besoin de pods dans l'extension, je les ai donc tous supprimés et supprimés comme cible, puis effectué un nettoyage mineur pour supprimer les débris liés aux pods laissés dans les étapes de construction. Maintenant tout fonctionne parfaitement.

3
russbishop

Xcode 8, raison de "Une ressource signée a été ajoutée, modifiée ou supprimée". était que la cible était signée avec un profil de fourniture d'entreprise.

3
Stanislav S.

(RESOLU) C'est un étrange. J'ai essayé tout ce que j'ai pu trouver. Finalement, j'ai changé le nom du produit de "Tests unitaires (périphérique)" en "Tests unitaires de périphériques" - en supprimant les crochets. Maintenant tout fonctionne. Les espaces qu'il contient semblent bien.

Précédemment sur stackoverflow: Je viens de rencontrer ce bogue avec deux projets de bibliothèque statiques. On construit et teste l’utilisation du programme d’exécution GHUnit sur le périphérique sans problème. Les autres projets ne s'installeront pas et obtiendront cette erreur. Cela signifie que c'est quelque chose de différent entre ces deux projets. Jusqu'à présent, j'ai essayé d'effacer le répertoire de construction, en supprimant des espaces du nom de l'exécutable, ainsi que diverses opérations de nettoyage et de génération, comme suggéré ici.

2
drekka

La cause la plus simple (et probablement la plus fréquente) semble être la reconstruction sans aucun changement.

La solution la plus simple consiste donc à apporter une modification simple à un fichier source (par exemple, ajouter un espace, puis le supprimer), puis de la reconstruire.

Si cela ne fonctionne pas, n'hésitez pas à essayer toutes les autres réponses ici.

Pendant des mois, j'ai eu cette erreur sans me rendre compte que c'était dû à une cause aussi simple. Je ferais habituellement une construction propre pour m'en débarrasser.

1
brainjam

Je pourrais résoudre en changeant le nom du projet.

[project]-[Rename] menu. "phase1 (new)" -> "pahse1"
1
DaVinciWare

Dans mon cas, cela s'est produit lorsqu'aucune modification n'a été apportée. Apportez une modification à n'importe quel fichier et exécutez à nouveau.

1
babalu

Lorsque j'ai créé ipa via un terminal en utilisant les commandes xcodebuild, ipa a été créé mais lors de l'installation, la même erreur s'est produite. exportOptionsPlist a résolu mon problème.

xcodebuild -exportArchive -archivePath  projectPath/myapp.xcarchive  -exportPath  projectPath/myApp.ipa  -exportOptionsPlist  ProjectFolder/exportPlist.plist
1
Devesh

Même chose pour moi, je pensais que cela avait quelque chose à voir avec plusieurs cibles, etc. parce que j’y ai beaucoup changé. Mais il est fort possible que ce soit un bogue dans la version 3.2.2 car je n’ai pas effectué de tests approfondis dans cette version du kit de développement avant les modifications massives de la cible dans mon projet.

1
Nils

J'obtenais cette même erreur, mais par intermittence. J'ai essayé tout ce qui précède et cela n'a toujours pas fonctionné. Aujourd'hui, j'ai trouvé ce qui le causait.

L'erreur semble se produire lors de l'édition d'un fichier xib dans le générateur d'interface. Si vous essayez de l'exécuter alors que le générateur d'interface est ouvert dans xcode, l'erreur ci-dessus sera générée. Pour résoudre, il suffit de fermer l'éditeur de générateur d'interface. c’est-à-dire qu’il suffit de sélectionner un fichier de code dans votre projet afin d’être dans l’éditeur de sources.

1
Craig Mellon

résolu mon problème !!!

J'ai découvert par accident qu'un espace "" se trouvait dans le nom du produit de mon application. Il s'appelait donc "First Second.app" au lieu de "FirstSecond.app". Après avoir supprimé l'espace, le problème avait disparu! 

Je l'ai changé ici.

J'espère que cela aide, faites le moi savoir!

À la vôtre

1
Nils

C'est un message d'erreur très général indiquant que quelque chose ne va pas pendant le processus de validation de la signature de code. Pour connaître l'erreur spécifique, vous pouvez aller à Xcode-> Fenêtre-> Périphériques et consulter le journal de votre périphérique. 

Dans mon cas, j'ai console suivante spew

Février 1 18:53:07 iPod-touch installé [40]: 0x1001f8000 - [MICodeSigningVerifier performValidationWithError:]: 192: Impossible de vérifier la signature du code de: 0xe8008017 (les ressources signées ont été ajoutées, supprimées ou modifiées)

Vérifiez de nouveau sur ce framework tiers, j'ai trouvé un fichier CodeResources supplémentaire sous la racine du framework. Supprimer ce fichier a résolu le problème.

0
Ji Fang

J'ai simplement reconstruit mon application, ce qui a résolu le problème. 

0
user2479586

il semble que ce soit un bogue dans xcode 3.2.2: iphonedevsdk

0
mbotta

J'ai eu le même problème dans Xcode 3.2.1 lorsque j'ai mis un + dans le nom de mon application. Plus précisément, le "nom du produit" dans les paramètres de construction. C'est bien d'avoir un + dans le nom du paquet dans votre Info.plist. La même chose s'applique probablement aux autres caractères de ponctuation.

0
Josh

Nous avons rencontré ce problème sur XCode_6.3.1. Nous construisions une application AppleWatch, avec une extension. Après avoir débogué le problème pendant presque plusieurs heures, nous avons constaté qu’il y avait un problème avec la façon dont un fichier avait été ajouté au projet. 

Il semble que certaines références à un fichier inutilisé se trouvent dans l’application iPhone, bien qu’il ait été utilisé dans l’application Watch. Il s’avère que l’erreur affichée par XCode était totalement inutile. 

Après avoir supprimé ce fichier et l'avoir rajouté au projet, le projet a bien fonctionné et a pu être installé sur le périphérique. Pour rendre encore plus difficile le débogage des problèmes, la version de débogage a été installée sans problème, mais n'a pas pu installer la version normande. 

Assurez-vous d’ajouter vos fichiers à la bonne cible et consultez l’historique de git pour voir s’il existe des fragments persistants ajoutés à la mauvaise cible.

0
Chitimalli

Je reçois la même chose lors de l'installation sur un iPod Touch. Je ne peux pas créer de lien pour le simulateur (pour d'autres raisons), donc je ne peux pas dire si le problème se produit là-bas.

Oui, reconstruire propre ou supprimer l'application de l'appareil me permet de l'installer à nouveau. Les solutions itératives ne sont pas non plus souhaitables!

Le «nettoyage» minimal que j'ai rencontré comme solution consiste à supprimer manuellement le fichier Foo.app du répertoire build/Debug-iphoneos.

0
bshirley

Dans mon cas, Quitter et redémarrer XCode a fonctionné.

0
Niharika

J'ai signalé ce bogue à Apple en juin 2011 sur ICU (versions Windows). Avec les solutions de contournement suivantes:

La solution est la suivante ....

Win XP

1) Fermer ICU

2) Supprimez le dossier temporaire: c:\Documents and Settings\[nom d'utilisateur]\Local Settings\Temp\[NomApp] .app

3) Supprimez le dossier de déploiement: c:\Documents and Settings\[nom d'utilisateur]\Application Data\AppleComputer\MobileDevice 

4) Redémarrez l'ICU. Faites glisser l'application et installez-la normalement.

============================

Gagner 7

1) Fermer ICU

2) Supprimez le dossier temporaire: c:\Users\[nom d'utilisateur]\AppData\Local\Temp\[NomApp] .app

3) Supprimez le dossier de déploiement: c:\Users\[nom d'utilisateur]\AppData\Local\Apple Computer\MobileDevice\Applications\[NomApp] .app

4) Redémarrez l'ICU. Faites glisser l'application et installez-la normalement.

=============================================== =======

0
Tim

Avoir le dossier DerivedData à un emplacement réseau a causé ce problème pour moi.

Après avoir tout essayé, j'ai découvert que mon poste de travail ne pouvait pas concorder avec le serveur de l'université. (Je pensais que tout était toujours modifié). J'ai également dû nettoyer à chaque reconstruction pour éviter ce message frustrant.

En fin de compte, j’ai abandonné et construit localement, en modifiant Xcode> Préférences> Emplacements ... me sentant plutôt stupide d’avoir jamais construit sur le réseau.

0
Corwin Newall

Cliquez sur Fenêtre> Organiseur> Projets> Trouver votre projet et supprimer les données dérivées.

0
SarpErdag

Pour moi, le problème était lié aux paramètres du profil d'approvisionnement. L'indice à cela était que les versions de débogage étaient correctement installées, mais pas les versions finales. Je voulais tester une version validée, j'ai donc exécuté le schéma avec cette configuration. 

Je l'ai corrigé en dupliquant la version de configuration, puis en modifiant ces champs dans les paramètres de construction pour qu'ils aient le même équipement de provisioning que si je le déboguais.

(Ajouter une autre configuration de construction vous causera des problèmes si vous utilisez des Cocoapods, vous devrez alors modifier votre fichier Podfile)

0
horseshoe7

J'ai aussi fait face au même problème. Après avoir perdu beaucoup de temps, j'ai réalisé que le nom de mon produit avait un caractère spécial "?" quel casé le problème

0
Ali Raza