21 votes

L'installation de l'application a échoué. Aucune signature de code trouvé

J'ai récemment mis à jour vers Xcode 10 et j'ai commencé le processus de mise à jour de notre application pour basculer vers 4.2 Après une journée de reconstruction des frameworks tierces et d'ajout de contournements à divers problèmes, j'ai pu exécuter notre application sur les nouveaux simulateurs.

Cependant, lorsque j'ai essayé de l'exécuter sur mon téléphone personnel (sous iOS 12.0 GM), j'ai rencontré une erreur lors de l'installation de l'application comme décrit dans le titre.

Je sais qu'il existe un nombre de questions déjà répondues concernant ce sujet sur SO & Internet, cependant je n'ai pas réussi à faire fonctionner l'une d'entre elles.

Cela me bloque depuis environ un jour et demi maintenant, alors je me demandais si quelqu'un avait des informations sur la manière dont cela pourrait être atténué.

Voici les étapes que j'ai entreprises jusqu'à présent qui n'ont pas fonctionné (peut-être qu'elles fonctionneront pour d'autres à l'avenir !) :

  1. Effacer les données dérivées
  2. Supprimer et rétélécharger tous les profils de provisioning sur mon ordinateur
  3. Nettoyer le répertoire de build (cmd + k & cmd + shft + k)
  4. Supprimer l'application originale de mon téléphone
  5. Redémarrer Xcode (Version 10.0 (10A254a) [le GM])
  6. Redémarrer mon Mac (Macbook Pro 2018 sous macOS High Sierra)
  7. Redémarrer mon appareil (iPhone X sous iOS 12.0 GM)
  8. De nombreuses combinaisons diverses des éléments ci-dessus, y compris tous en même temps
  9. Régénérer les profils de provisioning pour l'application sur developer.apple.com (nous utilisons une signature manuelle)
  10. Supprimer et recréer les profils de provisioning pour l'application sur developer.apple.com
  11. Offrir un sacrifice à Tim Cook
  12. S'assurer que le certificat de signature correspond au profil de provisioning
  13. Supprimer l'ancienne version de Xcode de mon ordinateur et vérifier que les outils en ligne de commande sont sur la version xcode 10.0 gm
  14. Supprimer & réinstaller Xcode 10.0 GM
  15. S'assurer que tous les frameworks copiés ont code sign on copy coché
  16. Reconstruire tous les frameworks via Carthage en utilisant le compilateur swift 4.2 (rappelez-vous, tout fonctionne sur le simulateur).
  17. Veiller à ce que la signature du code soit requise et définie sur OUI dans le SDKSettings.plist
  18. Supprimer tous les anciens certificats de signature sur mon ordinateur
  19. Supprimer et recréer les certificats sur developer.apple.com
  20. Supprimer et réajouter mon appareil sur developer.apple.com
  21. Passer de la signature manuelle à automatique
  22. Veiller à ce que les certificats de signature soient de type Développeur et non Distribution

Toute aide serait grandement appréciée :)

Mise à jour : J'ai essayé de tout re-télécharger et de tout reconstruire à partir de zéro sur une nouvelle machine, et le même problème se produit. Intéressant, je peux archiver et valider l'application sans problème.

J'ai également essayé de signer un projet vide avec le même bundle ID et ça a marché sans problème. Donc, le problème est soit dans nos frameworks tiers, soit dans un paramètre étrange activé lors de la transition de Xcode 9.4. Je vais commencer à supprimer les frameworks tiers un par un jusqu'à ce que je puisse obtenir une compilation.

Mise à jour 2 : Toujours pas de succès. J'ai essayé de supprimer la plupart des frameworks et rien. Voici les logs de l'appareil, je me demande si Skipping a profile because of error 0xe8008012 a quelque chose à voir avec cela :

https://gist.github.com/joshuawright11/6889ce1a0872262df77f97d63830baa5

Mise à jour 3 : J'ai réussi à l'installer en commentant le script de copie de frameworks de Carthage dans les phases de construction (et en nettoyant/nukant les données dérivées après coup). Bien sûr, cela signifie qu'il plante au démarrage car il manque ces frameworks, mais cela signifie que le problème est soit avec Carthage soit avec l'un des frameworks Carthage liés. Pas nos certificats de signature, profils de provisioning ou base de code. Je vais essayer de supprimer ces frameworks un par un et je mettrai à jour ici.

Mise à jour finale Finalement, j'ai trouvé la solution. La solution s'est avérée assez spécifique (voir ci-dessous) mais j'espère que cette question servira de compilation de toutes les solutions liées à ce problème sur Internet haha.

8voto

Josh Points 128

J'ai trouvé la solution :

J'ai rencontré ce problème avec Carthage : https://github.com/Carthage/Carthage/issues/2472 et j'ai utilisé leur solution suggérée qui consiste à définir EXPANDED_CODE_SIGN_IDENTITY='' lorsque je transférais des éléments vers Xcode 10.

Apparemment, cette ligne est ce qui cause des problèmes à Carthage lors de la copie des frameworks, provoquant l'erreur. J'ai téléchargé la version la plus récente de Carthage pour régler le problème, puis j'ai supprimé la ligne EXPANDED_CODE_SIGN_IDENTITY='' et tout a fonctionné. Quelle perte de temps.

5voto

mihai1990 Points 246

Je ne sais pas si c'est également votre cas, mais j'ai récemment rencontré cette erreur en essayant d'exécuter une application React Native sur iPhone. Cela a commencé après avoir intégré la bibliothèque Lottie pour React Native

Le problème a été causé par ce script ajouté dans les phases de construction : http://ikennd.ac/blog/2015/02/stripping-unwanted-architectures-from-dynamic-libraries-in-xcode/. Le script a échoué à extraire les architectures de Lottie.framework en donnant une erreur "input file (.../Lottie.framework/Lottie) must be a fat file when the -extract option is specified

Pour résoudre ce problème, j'ai ajouté une vérification dans le script pour éviter les fichiers non fat :

# ...
echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"

if lipo -info "$FRAMEWORK_EXECUTABLE_PATH" | grep -iq "Non-fat file"
then
echo "This is a non-fat file, skipping"
continue
fi

EXTRACTED_ARCHS=()
# ...

4voto

Alfi Points 997

Pour moi, c'étaient les signes de code de mes frameworks Carthage. Je les ai corrigés en les configurant comme sur cette image :

entrez la description de l'image ici

3voto

J'ai eu le même problème avec xcode 10.0 (10A255).

Signature invalide - Une ressource scellée est manquante ou invalide. Le fichier à l'emplacement [xxxx.app/xxxxx] n'est pas correctement signé.

xcode 9.4.1 (9F2000) était toujours capable de soumettre l'application sans problème.

J'ai pu résoudre le problème en supprimant tous les fichiers de support (txt, json, rtf, html, ttf, etc.) et en les ajoutant de nouveau.

Je vous suggère de soumettre une version sans les fichiers. Si cela fonctionne, vous pouvez les ajouter de nouveau étape par étape.

1voto

wcribbs Points 46

Dans mon cas, j'avais à la fois une provision iPhoneXS invalide et un conflit d'identifiant de bundle. Mon projet a été tenté après une mise à niveau de Xcode et un nouveau téléphone connecté. Après avoir effectué les étapes ci-dessus (re-création complète du trousseau et des profils, suppression du dossier persistant, etc...).

Sur les paramètres du projet cible :

  1. Définir l'identifiant du bundle de com.proj.app à autre chose, par exemple : com.proj.app2
  2. Changer le nom du produit de Produit à Produit123

Je suis assez sûr que seul le conflit d'identifiant de bundle a bloqué l'entrée automatique normale de mon appareil dans les appareils provisionnés.

  1. Revenir aux identifiants normaux (si désiré)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X