human
J'ai un problème avec le terme de bitcode intégré.
Qu'est-ce que le bitcode intégré ?
Quand activer ```ENABLE_BITCODE``` dans le nouveau Xcode ?
Que se passe-t-il avec le binaire lorsque ```ENABLE_BITCODE``` est activé dans Xcode 7
gpt
> Qu'est-ce que le bitcode intégré ?
Selon la documentation :

> Le bitcode est une représentation intermédiaire d'un programme compilé. Les applications que vous téléchargez sur iTunes Connect et qui contiennent du bitcode seront compilées et liées sur l'App Store. L'inclusion du bitcode permettra à Apple de réoptimiser votre binaire d'application à l'avenir sans avoir besoin de soumettre une nouvelle version de votre application à la boutique.

Cette phrase dans "Nouvelles fonctionnalités de Xcode 7" m'a fait réfléchir pendant longtemps que le bitcode est nécessaire pour le découpage afin de réduire la taille de l'application :

  Lorsque vous archivez pour soumettre à l'App Store, Xcode va compiler votre application dans une représentation intermédiaire. L'App Store va ensuite compiler le bitcode en exécutables 64 ou 32 bits selon les besoins.

Cependant, ce n'est pas vrai, le bitcode et le découpage fonctionnent indépendamment : le découpage permet de réduire la taille de l'application et de générer des variantes de bundle d'application, et le bitcode permet certaines optimisations binaires. J'ai vérifié cela en vérifiant les architectures incluses dans les exécutables des applications sans bitcode et en constatant qu'elles ne comprennent que celles nécessaires.
Le bitcode permet à un autre composant de l'optimisation d'application appelé le découpage de générer des variantes de bundle d'application avec des exécutables particuliers pour des architectures particulières, par exemple la variante iPhone 5S inclura uniquement l'exécutable arm64, l'iPad Mini armv7, etc.

> Quand activer ENABLE_BITCODE dans le nouveau Xcode ?

  Pour les applications iOS, le bitcode est activé par défaut, mais facultatif. Si vous fournissez du bitcode, toutes les applications et frameworks dans le bundle d'application doivent inclure du bitcode. Pour les applications watchOS et tvOS, le bitcode est obligatoire.

> Que se passe-t-il avec le binaire lorsque ENABLE_BITCODE est activé dans le nouveau Xcode ?
D'après la référence de Xcode 7 :

> L'activation de ce paramètre indique que la cible ou le projet doit générer du bitcode lors de la compilation pour les plates-formes et architectures qui le prennent en charge. Pour les constructions d'archivage, le bitcode sera généré dans le binaire lié pour soumission à l'App Store. Pour les autres constructions, le compilateur et le lien vérifieront si le code est conforme aux exigences de génération de bitcode, mais ne généreront pas de bitcode réel.