ITMS-90668 : The executable file contains incomplete bitcode

Comme toute personne qui développe des applications mobiles iOS avec Xamarin, vous utiliserez certainement à un moment donné des SDKs tierces (réseaux sociaux, régies publicitaires, etc…).

Une fois votre application développée, viendra le moment de la soumettre sur l’AppStore et dans la plupart des cas cela fonctionnera sans aucun problème. Mais il arrivera parfois que des soucis surviennent.

C’est ce qui m’est arrivé il y a 15 jours environ pendant la phase de soumission sur l’AppStore, quand j’ai reçu un message d’erreur comme celui visible ci-dessous (cette capture ne correspond pas à mon application mais la source d’erreur est la même).

Ce message indique qu’un SDK utilisé dans l’application pose un souci car il contient un “bitcode incomplet” alors que très probablement d’autres SDKs dans la même application utilisent pour leur part un bitcode complet. Apple refuse apparemment d’accepter les applications qui mixent les deux.

Après de multiples recherches sur Internet qui traitent dans la majorité des cas de la résolution de cette erreur pour les gens travaillant sur Xcode, je suis tombé sur cette page sur l’outil de suivi de bugs de Xamarin qui fait état d’un problème connu.

La solution de contournement (workaround / fix) évoqué dans le ticket fonctionne parfaitement.

Pour cela, il suffit d’éditer le fichier .csproj de votre application Xamarin.iOS et d’ajouter les lignes suivantes à la fin, juste avec la balise </project> :

<Target Name="BeforeCodesign">
  <Exec Command="$(_SdkDevPath)\Toolchains\XcodeDefault.xctoolchain\usr\bin\bitcode_strip -r %(_Frameworks.FullPath) -o %(_Frameworks.FullPath)" />
</Target>

Ces quelques lignes permettent de supprimer tout le bitcode inutiles des SDKs embarqués dans votre application au moment où celle-ci est compilée et juste avant d’appliquer la signature du package.

Une fois ces quelques lignes ajoutées et l’application recompilée, la soumission sur l’AppStore ne devrait plus poser aucun souci.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s