web-dev-qa-db-fra.com

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

J'ai récemment mis à niveau vers Xcode 10 et commencé le processus de mise à jour de notre application pour passer à la version 4.2. Après une journée de reconstruction des frameworks tiers et l'ajout de solutions de contournement à divers problèmes, j'ai pu exécuter notre application sur les nouveaux simulateurs.

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

Je sais qu'il existe un lot sur déjà _ { réponse _ { questions concernant ce sujet sur SO et Internet, mais était incapable de faire fonctionner l'un d'entre eux.

Cela me bloque depuis environ un jour et demi maintenant, donc je me demandais si quelqu'un avait une idée de la façon dont cela pourrait être atténué.

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

  1. Effacement des données dérivées
  2. Suppression et re-téléchargement de tous les profils d'approvisionnement sur mon ordinateur
  3. Nettoyage du répertoire de construction (cmd + k & cmd + shft + k)
  4. Supprimer l'application d'origine de mon téléphone
  5. Redémarrage de Xcode (version 10.0 (10A254a) [the GM])
  6. Redémarrage de mon Mac (Macbook Pro 2018 sous macOS High Sierra)
  7. Redémarrage de mon appareil (iPhone X sous iOS 12.0 GM)
  8. Nombreuses combinaisons de ce qui précède, y compris toutes en même temps
  9. Re-génération de profils d'approvisionnement pour l'application sur developer.Apple.com (nous utilisons la signature manuelle)
  10. Suppression et recréation de profils d'approvisionnement pour l'application sur developer.Apple.com
  11. Sacrifié une chèvre à Tim Cook
  12. S'assurer que le certificat de signature correspond au profil d'approvisionnement
  13. Suppression de l'ancienne version de Xcode de mon ordinateur et assurance que les outils de ligne de commande figurent dans la version xcode 10.0 gm
  14. Suppression et réinstallation de Xcode 10.0 GM
  15. Vérifier que code sign on copy est coché dans tous les cadres copiés
  16. Reconstruire tous les frameworks via Carthage en utilisant le compilateur Swift 4.2 (rappelez-vous, tout fonctionne sur le simulateur).
  17. _ { La signature de code assurée requise est définie sur YES dans le fichier SDKSettings.plist } _
  18. supprimé tous les anciens certificats de signature sur mon ordinateur
  19. Certificats supprimés et recréés sur developer.Apple.com
  20. Suppression et ajout de mon appareil à developer.Apple.com
  21. Modification de la signature de code de manuelle à automatique
  22. Assuré que les certificats de signature sont Developer et non Distribution

Toute aide serait grandement appréciée :)

Update: J'ai essayé de retélécharger et de reconstruire à partir de zéro sur une machine neuve, et le même problème se produit. Fait intéressant, je peux bien archiver et valider l'application. 

J'ai également essayé de signer un projet vide avec le même identifiant de paquet et cela a bien fonctionné. Le problème se situe donc soit dans nos frameworks tiers, soit dans un paramètre étrange activé lors de la transition à partir de Xcode 9.4. Je vais commencer par supprimer les frameworks tiers un par un jusqu'à ce que je puisse le compiler.

Update 2: Toujours pas de chance. Essayé de dégager la plupart des cadres et rien. Voici les journaux de périphérique, vous demandant si Skipping a profile because of error 0xe8008012 a quelque chose à voir avec cela:

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

Update 3: J'ai donc pu l'installer en commentant le script carthage copy-frameworks dans les phases de construction (puis en nettoyant/en modifiant les données dérivées). Bien sûr, cela signifie qu'il se bloque 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. Nous allons essayer de supprimer ces frameworks un par un et je vais mettre à jour ici.

Final Update l'a finalement compris. La solution s’est avérée être un joli créneau (voir ci-dessous), mais heureusement, cette question sert de compilation de toutes les solutions liées à ce problème sur Internet haha.

18
Josh

Deviner:

J'ai rencontré ce problème avec carthage: https://github.com/Carthage/Carthage/issues/2472 et ai utilisé leur solution suggérée consistant à régler EXPANDED_CODE_SIGN_IDENTITY = '' lors du transfert d'éléments vers xcode 10. 

À l’évidence, c’est cette ligne qui fait que carthage se blesse lors de la copie de cadres, ce qui cause l’erreur. J'ai téléchargé la version la plus récente de carthage pour résoudre le problème, puis j'ai supprimé la ligne EXPANDED_CODE_SIGN_IDENTITY='' et tout a fonctionné. Quelle perte de temps.

7
Josh

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

Le problème a été causé par l'exécution de ce script d'exécution dans Build Phases: http://ikennd.ac/blog/2015/02/stripping-unwanted-architectures-from-dynamic-libraries-in-xcode/ . Le script n'a pas réussi à extraire les architectures de Lottie.framework, donnant une "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 ignorer les fichiers non gras:

# ...
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=()
# ...
4
mihai1990

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 dans le chemin [xxxx.app/xxxxx] n'est pas correctement signé.

xcode 9.4.1 (9F2000) était toujours en mesure de soumettre l'application sans problèmes.

Je pourrais résoudre le problème en supprimant tous les fichiers de support (txt, json, rtf, html, ttf, etc.), puis en les rajoutant.

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

3
user10389784

Dans mon cas, j'avais à la fois une disposition iPhoneXS non valide et un conflit d'identificateur de paquet. Mon projet a été tenté après une mise à niveau de Xcode et un nouveau téléphone a été connecté. Après avoir suivi les étapes ci-dessus (chaîne de clés et profils entièrement recréés, dossier persistant supprimé, etc.). 

Paramètres du projet cible:

  1. Définissez l'identifiant de bundle de com.proj.app à autre chose, ex: com.proj.app2
  2. Modifier le nom du produit de produit en produit123

Je suis pratiquement sûr que seul le conflit d'identifiants de bundles a bloqué l'entrée automatique normale de mon périphérique dans les périphériques provisionnés. 

  1. Changez les identifiants en normaux (si vous le souhaitez)
1
wcribbs

Dans les phases de construction/Carthage de la cible du projet, mettez la commande carthage comme suit:

EXPANDED_CODE_SIGN_IDENTITY = '' carthage copy-frameworks 

Ce n'est qu'une solution temporaire, tandis que le problème get environnements var est résolu.

0
user23