Aujourd'hui, j'ai téléchargé Xcode 9 et apporté les modifications nécessaires à la compilation de mon application. L'application se compile et s'exécute localement sans aucun problème.
En utilisant Xcode 9, je l'ai téléchargé sur l'App Store. Le téléchargement a réussi sans erreur.
Je passe ensuite l'e-mail suivant d'Apple:
Cher développeur,
Nous avons découvert un ou plusieurs problèmes avec votre livraison récente pour "KiteSpotter - Prévisions de vent et météo de Kitesurf". Pour traiter votre livraison, les problèmes suivants doivent être corrigés:
Invalid Bundle - Instrumentation LLVM non autorisée. Ne soumettez pas d'applications avec l'instrumentation de profilage LLVM ou la collecte de couverture activée. Désactivez le profilage LLVM ou la couverture de code, reconstruisez votre application et soumettez-la à nouveau.
Une fois ces problèmes corrigés, vous pouvez ensuite redistribuer le binaire corrigé.
Cordialement,
L'équipe App Store
Je suis allé et j'ai désactivé la couverture du code pour ma cible et ma cible de cabosses de cacao, qui était le seul paramètre pertinent que j'ai pu trouver:
J'ai de nouveau soumis la demande et j'obtiens la même erreur.
Sur mon projet, j'utilise Carthage, qui a plus de 15 dépendances. À la recherche d'une solution, j'ai trouvé que tous les projets doivent être mis à jour avec le paramètre ci-dessus.
La solution pour automatiser la définition de la couverture du code sur false pour toutes les dépendances consiste à exécuter la commande suivante sur le terminal (veuillez vous rendre dans le répertoire de votre projet):
grep -lR "codeCoverageEnabled" --include *.xcscheme --null Carthage | xargs -0 sed -i '' -e 's/codeCoverageEnabled = "YES"/codeCoverageEnabled = "NO"/g'
Cela définira la couverture du code sur NON et iTunes connect ne se plaindra pas.
La séquence pour que tout fonctionne est la suivante
carthage update --platform iOS --no-use-binaries --no-build
. Cela mettra à jour et téléchargera toutes les dépendances. Lorsque Carthage commence à compiler, vous pouvez appuyer sur ctrl + c pour annuler.carthage build --platform iOS
. Cela va tout construire avec une couverture de code à NONVous pouvez désormais archiver et télécharger sur iTC.
La commande a été donnée par https://github.com/gunterhager , donc le mérite lui revient
Comme alternative pour les utilisateurs de fastlane , ajoutez ce qui suit à votre fichier fastlane, qui automatisera tout:
desc "Update Carthage"
lane :update_carthage do
carthage(
command: "update", # One of: build, bootstrap, update, archive. (default: bootstrap)
use_binaries: false, # Check out dependency repositories even when prebuilt frameworks exist
no_build: true, # When bootstrapping Carthage do not build
platform: "iOS" # Define which platform to build for (one of ‘all’, ‘Mac’, ‘iOS’, ‘watchOS’, ‘tvOS‘, or comma-separated values of the formers except for ‘all’)
)
sh("grep -lR 'codeCoverageEnabled' --include *.xcscheme --null Carthage | xargs -0 sed -i '' -e 's/codeCoverageEnabled = 'YES'/codeCoverageEnabled = 'NO'/g'")
carthage(
command: "build", # One of: build, bootstrap, update, archive. (default: bootstrap)
platform: "iOS" # Define which platform to build for (one of ‘all’, ‘Mac’, ‘iOS’, ‘watchOS’, ‘tvOS‘, or comma-separated values of the formers except for ‘all’)
)
end
Comme solution rapide, exécutez ces commandes dans Terminal (assurez-vous d'aller dans le dossier racine de votre projet):
carthage update --platform iOS --no-use-binaries --no-build
Cela mettra à jour vos dépendances, mais ne créera rien.
grep -lR "codeCoverageEnabled" --include *.xcscheme --null Carthage | xargs -0 sed -i '' -e 's/codeCoverageEnabled = "YES"/codeCoverageEnabled = "NO"/g'
Cela définira la couverture du code sur NO
.
carthage build --platform iOS
Cela va enfin construire tous les frameworks sans couverture de code.
Vous pouvez maintenant archiver votre projet et le télécharger sur iTunes Connect.
Les gens sympas du projet Carthage
travaillent déjà sur un correctif plus convivial, alors assurez-vous de vérifier les versions là-bas.
J'ai également eu la même erreur de Xcode 9.1 même si j'ai mis à jour Carthage vers la dernière version https://github.com/Carthage/Carthage/releases J'ai échoué lors du téléchargement de la construction sur iTunes
A fonctionné pour moi de cette façon: -
Si vous avez mis à jour votre Xcode vers 9.1 alors
Mettez à jour votre carthage.pkg
téléchargement depuis https://github.com/Carthage/Carthage/releases
Installer .pkg
et
Donner carthage update
commande dans Terminal
en faisant référence à votre projet
et
allez ensuite à votre projet Build Settings
trouver Enable Code Coverage Support
modifiez ce paramètre de Yes
à No
Ensuite, archivez et téléchargez sur AppStore
. Votre build sera ready
. Happy
!
Mettez simplement à jour Carthage
vers la version 0.26.0
ou supérieur, puis exécutez le carthage update
commande à nouveau.