13 votes

La génération de build VSTS lance une erreur de version de bitcode non valide

Pour générer des versions destinées aux testeurs, nous utilisons VSTS dans notre projet. Lorsque nous vérifions et exécutons la branche sur notre mac avec xcode, tout fonctionne bien. Cependant, lorsque j'essaie de publier une version via VSTS, une erreur se produit comme ci-dessous et la génération échoue.

ld: impossible de reparser le fichier objet dans le bundle de bitcode : 'Version de bitcode invalide (Producteur : '902.0.39.2_0' Lecteur : '900.0.39.2_0')', en utilisant libLTO version 'LLVM version 9.0.0, (clang-900.0.39.2)' pour l'architecture arm64

Je comprends que le problème pourrait être dû au fait qu'il y a deux versions différentes du compilateur qui traînent. J'utilise Xcode 9.2 et le serveur qui compile le code source à télécharger a également Xcode 9.2. Une autre chose, dans le passé, j'ai effectué un commit avec la version bêta de Xcode 9.4 dans la branche. Est-ce que cela pourrait créer un problème ou est-ce autre chose que je n'ai pas pris en compte ici.

De plus, j'ai entendu dire par certains commentaires sur stack-overflow et git que la mise à jour de Xcode réglera le problème. Je suis d'accord avec cela, mais je veux garder cette option en dernier recours car il y a des serveurs et des génération en attente dans le serveur, comme la génération d'Android et de WebApp, que nous avons automatisées via VSTS et qui seront momentanément interrompues.

Toute aide ou indication serait grandement appréciée.

Remarque : En interne, le serveur VSTS tente d'archiver la génération. Ainsi, la réponse acceptée dans erreur : Version de bitcode invalide (Producteur : '800.0.35.0_0' Lecteur : '703.0.31_0') pourrait fournir la solution. Mais encore une fois, le scénario est différent car VSTS pourrait essayer quelque chose de différent en interne.

47voto

Marián Černý Points 1511

Cela m'est arrivé lorsque j'essayais de créer une archive d'un projet avec un framework binaire (dans mon cas Crashlytics/Fabric). Le framework a été compilé avec Xcode 9.4, mais j'utilisais Xcode 9.2 (il semblerait que 900.0.39.2_0 soit Xcode 9.2 et 902.0.39.2_0 soit Xcode 9.4). J'ai résolu le problème en définissant temporairement Enable Bitcode sur Non dans les paramètres de construction.

Remarque : Le Bitcode n'est pas obligatoire pour soumettre une application iOS sur l'App Store. (Cependant, il est obligatoire pour les applications Apple Watch.)

Une autre solution serait de revenir à une version antérieure du framework binaire (compilée avec une version compatible de Xcode).

5voto

Dans mon cas, j'ai désactivé le bitcode de la Cible entrez la description de l'image ici

mais je n'ai pas désactivé le bitcode de Mon Projet entrez la description de l'image ici

J'ai simplement changé les paramètres bitcode de mon projet en "Non" et ça marche....

3voto

Karthick Ramesh Points 840

J'ai trouvé une solution au problème auquel je faisais face. Comme le problème le mentionne, le serveur VSTS avait Xcode 9.2 avec la version 900.0.39.2_0 et donc la mise à jour de la version de Xcode sur le serveur VSTS a résolu le problème. La chose à laquelle nous devons faire attention est que lorsque nous mettons à jour la version de Xcode sur notre machine locale, il est préférable de mettre à jour la version de Xcode sur le serveur VSTS pour éviter de tels problèmes à l'avenir.

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