La solution la plus simple et la plus courante :
Vous pouvez décocher "Inclure Bitcode" lorsque vous soumettez l'application via Xcode.
Si vous utilisez xcodebuild
vous pouvez utiliser le passage d'un exportOptionsPlist avec la valeur de uploadBitcode
mis à faux. Dans mon cas, nous utilisons xctool
pour construire l'application et n'ont pas la possibilité de passer une exportOptionsPlist
Nous avons donc dû retirer le bitcode de tous nos cadres.
Si quelqu'un utilise cocoapods et veut désactiver le bitcode pour ses frameworks, vous pouvez simplement ajouter ce qui suit à votre podfile :
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
end
end
end
Via https://stackoverflow.com/a/32685434/1417922
Pour clarifier un peu plus ce qui se passe avec cette question :
Il semble qu'Apple ait commencé à appliquer cette règle hier. Si votre binaire principal a le bitcode désactivé, mais que vous incluez une bibliothèque statique ou un framework qui a le bitcode activé, la validation échouera. Cela fonctionne également dans l'autre sens : si votre binaire principal a le bitcode activé, mais que vous incluez une bibliothèque ou un framework dont le bitcode est désactivé, la validation échouera.
J'avais quelques dépendances de GoogleMaps et Amazon qui rendaient non trivial le fait de tout changer pour activer le bitcode, donc je l'ai simplement désactivé et supprimé le bitcode d'une bibliothèque statique que j'avais importée dans mon projet. Vous pouvez supprimer le bitcode de n'importe quel binaire en utilisant la commande suivante
$ xcrun bitcode_strip -r {Framework}.dylib -o tmp.dylib
$ mv tmp.dylib {Framework}.dylib
https://developer.apple.com/library/content/documentation/Xcode/Conceptual/RN-Xcode-Archive/Chapters/xc7_release_notes.html
Bien que les solutions ci-dessus soient des solutions au problème, je ne suis pas d'accord que si le binaire principal a le bitcode désactivé, tous les binaires inclus devraient en avoir besoin aussi. Le bitcode n'est qu'un code IR qu'Apple peut utiliser pour éclaircir les applications - pourquoi ne le supprime-t-il pas simplement des autres binaires (ce que je suppose être ce qu'ils faisaient auparavant) ? Cela n'a pas beaucoup de sens pour moi.
Fil de la pomme https://forums.developer.apple.com/thread/48071