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 !) :
- Effacer les données dérivées
- Supprimer et rétélécharger tous les profils de provisioning sur mon ordinateur
- Nettoyer le répertoire de build (cmd + k & cmd + shft + k)
- Supprimer l'application originale de mon téléphone
- Redémarrer Xcode (Version 10.0 (10A254a) [le GM])
- Redémarrer mon Mac (Macbook Pro 2018 sous macOS High Sierra)
- Redémarrer mon appareil (iPhone X sous iOS 12.0 GM)
- De nombreuses combinaisons diverses des éléments ci-dessus, y compris tous en même temps
- Régénérer les profils de provisioning pour l'application sur developer.apple.com (nous utilisons une signature manuelle)
- Supprimer et recréer les profils de provisioning pour l'application sur developer.apple.com
- Offrir un sacrifice à Tim Cook
- S'assurer que le certificat de signature correspond au profil de provisioning
- 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
- Supprimer & réinstaller Xcode 10.0 GM
- S'assurer que tous les frameworks copiés ont
code sign on copy
coché - Reconstruire tous les frameworks via Carthage en utilisant le compilateur swift 4.2 (rappelez-vous, tout fonctionne sur le simulateur).
- Veiller à ce que la signature du code soit requise et définie sur OUI dans le SDKSettings.plist
- Supprimer tous les anciens certificats de signature sur mon ordinateur
- Supprimer et recréer les certificats sur developer.apple.com
- Supprimer et réajouter mon appareil sur developer.apple.com
- Passer de la signature manuelle à automatique
- Veiller à ce que les certificats de signature soient de type
Développeur
et nonDistribution
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.