Je viens de passer à Xcode 6.1 aujourd'hui, et devinez quoi: maintenant, j'ai du mal à soumettre des builds à l'aide de l'application de bureau TestFlight. Voici l'erreur que j'obtiens lorsque l'application commence à créer l'IPA:
erreur: / usr / bin / codesign --force --preserve-metadata = identifiant, droits, règles de ressources --sign 854059d45eed724593debef577a562e1ba96ab55 --resource-rules = / tmp / QYFSJIvu7W / Payload / XX.app / ResourceRules.plist / tmp /QYFSJIvu7W/Payload/XX.app a échoué avec l'erreur 1. Sortie: Avertissement: utilisation de --preserve-metadata avec l'option "resource-rules" (obsolète sous Mac OS X> = 10.10)! Attention: --resource-rules est obsolète sous Mac OS X> = 10.10! /tmp/QYFSJIvu7W/Payload/XX.app/ResourceRules.plist: impossible de lire les ressources
L '«article de support» n'a aucune idée de ce qui se passe.
Cela ne semble pas être un problème TestFlight car la même chose se produit dans un environnement CI comme Jenkins en utilisant le xcrun ou des outils similaires.
L'application n'a pas été mise à jour depuis des mois, je sais donc que je ne devrais pas m'attendre à des mises à jour pour résoudre ce problème de sitôt. Cela fonctionnait très bien pour moi et mes clients, donc je n'ai pas vraiment envie de l'abandonner pour autre chose non plus.
Toute idée de ce qu'est cette erreur et de la manière de la corriger serait très appréciée.
la source
xcrun -sdk iphoneos PackageApplication -v <Path_to_App> -o <Path_to_IPA> --sign <Distribution_certificate> --embed <Provisioning_profile>
. Avec Xcode 6.0.1, tout a bien fonctionné.Réponses:
J'aimerais savoir pourquoi cela fonctionne, mais voici un correctif qui a fonctionné pour moi:
la source
Code Signing Resource Rules Path
dans mes paramètres de compilation. Une idée?Le correctif suivant pour PackageApplications l'a corrigé pour moi, j'ai supprimé les règles de ressources car il dit qu'il est obsolète sur 10.10.
Les builds Testflight fonctionnent sans cela. L'Appstore se construit également.
la source
J'ai envoyé un e-mail au support TestFlight et j'ai obtenu cette réponse:
La solution de contournement suggérée a fonctionné.
la source
La réponse de Tim Gostony ne fonctionne plus depuis la sortie de Xcode 7. Désormais, le processus de soumission de l'App Store échoue lorsque des règles de ressources sont présentes. La solution consiste à effacer le chemin des règles de ressources de signature de code et à remplacer xcrun par l'outil xcodebuild:
Le fichier Options.plist le plus simple pour exporter des fichiers ipa de distribution ad-hoc ressemble à ceci:
Il existe d'autres options disponibles pour ce fichier plist concernant le bitcode, l'amincissement des applications, etc. C'est pourquoi je pense que l'outil xcodebuild est le bon outil pour exporter des fichiers ipa pour iOS 9 et supérieur.
Plus de détails sur les options plist sont disponibles avec la commande xcodebuild -help.
la source
Sur Yosemite avec XCode 6.4, même en utilisant le patch SDKROOT, la signature de code échoue. L'article suivant explique comment patcher le script XCode pour contourner ce problème. Notez que cela corrige XCode, donc il est spécifique à la version, mais résout le problème.
http://www.jayway.com/2015/05/21/fixing-your-ios-build-scripts
la source
La réponse d'Alistra fonctionne pour moi mais je ne veux pas changer un script qui n'est pas le mien (une future version de Xcode pourrait changer ce fichier et la correction sera perdue).
Je pense que la réponse de Vladimir Grigorov est la meilleure si vous avez une archive utilisant:
Dans mon cas, je n'ai pas l'archive, car je modifie l'application après l'avoir créée et je dois changer l'ID du bundle et le certificat de signature.
La solution que j'ai trouvée est de m'appeler
codesign
avant d'être utiliséPackageApplication
et de demanderPackageApplication
à ne pas signer. Comme ça :N'oubliez pas d'intégrer le
.mobileprovision
fichier en utilisant pour vous connectercp
.la source
Comme spécifié dans une autre réponse , vous pouvez également ne pas spécifier le certificat de distribution avec lequel vous connecter et il emballera correctement. TestFlight devrait mettre à jour son application pour ce faire.
la source