Xcode 14 désactive le Bitcode par défaut, augmentant le poids des apps iOS
- Alban Martin
- Il y a 2 ans
- 💬 1 com
- 🔈 Écouter
Si vous êtes développeur iOS, vous savez certainement qu'Apple désactive désormais la fonction Bitcode apparue en 2015 depuis la publication de Xcode 14 en septembre dernier. En conséquence, Apple ne "nettoie" plus le code binaire des applications soumises à l'App Store, ce qui fait que le paquet final voit son poids sensiblement augmenter, à cause des données inutiles qu'il embarque.
Apple fait une croix sur Bitcode
Emerge Tools, une plateforme de performance mobile, a constaté que les développeurs iOS qui passent à Xcode 14 pour builder leurs applications peuvent voir augmenter la taille de leurs binaires de manière significative. La société a analysé l'augmentation de la taille des applications parce que Xcode 14 désactive la fonction Bitcode par défaut, et Apple n'agit plus sur l'applicatif soumis par les développeurs, ce qui fait que le fichier final contient beaucoup de données inutiles.
Le dernier Xcode 14 d'Apple présente un certain nombre d'améliorations en termes de performances et de capacité, avec une taille globale réduite de 30 %, un meilleur calcul parallèle accélérant de 25 % les constructions de projets et exécutant les tests à long terme 30 % plus rapidement. Sans oublier les nouveautés fonctionnelles comme l'icône unique, les pushs sur simulateur, etc. Mais pour Josh Cohenzadeh, PDG d'Emerge Tools, l'abandon du Bitcode est une mauvaise nouvelle pour les consommateurs.
La société analyse régulièrement les applications téléchargées sur l'App Store et a observé que la taille de nombreuses applications a augmenté peu de temps après la sortie de Xcode 14. C'est le cas de Nike qui est passée de 182,2 Mo à 322,1 Mo, Zillow qui passe de 49,9 Mo à 204,6 Mo, American Airlines qui est passée de 182,2 Mo à 389,1 Mo ou, pire, iRobot qui passe de 94,2 Mo à 533,5 Mo ! Pour information, notre app iSoft est passée de 12 Mo à 26 Mo.
Emerge Tools a comparé le poids de l'application Nike avant et après l'utilisation de Xcode 14. La taille totale de l'installation était de 191,7 Mo et le framework représentait 163,7 Mo dans l'analyse de la version 22.35.0 du 8 octobre, contre 322,1 Mo dans la version 22.36.1 du 15 octobre. Emerge Tools a constaté que cette augmentation de la taille était due à une augmentation de la table DYLD.String dans tous les frameworks embarqués, qui est un élément de type metadata non requis en version de production, ce qui signifie que l'application Nike iOS avait augmenté de 130 Mo sans que des changements de fonctionnalités majeurs aient été apportés.
La raison en est que Xcode 14 désactive par défaut l'option Bitcode et que la possibilité d'utiliser celle-ci sera supprimée dans les futures versions de Xcode (comprenez Xcode 15). Le Bitcode est une méthode de conditionnement d'une application qui laisse la fin du processus de complication à Apple, qui supprime une partie du code pour l'appareil cible après que le développeur a soumis l'application à l'App Store. Sans cela, l'app compilée par le développeur est celle qui arrivera sur votre iPhone.
Concrètement, la fonction Bitcode supprime certains types de post-données des fichiers binaires qui peuvent être utiles avant l'environnement du produit, mais qui ne sont pas utiles pour les applications fonctionnant dans l'environnement du produit, comme la génération de fichiers dSYM, qui ne font qu'agrandir la version du produit et sont uniquement là pour permettre de symboliser les crashs afin d'analyser les plantages. La société d'analyse explique d'ailleurs comment supprimer ces binary symbols à la main...
On ne connait pas la raison pour laquelle Apple a décidé d'arrêter le support du Bitcode, Xcode affichant désormais un avertissement :
La construction avec bitcode est dépréciée. Veuillez mettre à jour les paramètres de votre projet et/ou de votre cible pour désactiver le bitcode.
La possibilité de construire avec le bitcode sera supprimée dans une prochaine version de Xcode. Les IPAs qui contiennent du bitcode seront dépouillés avant d'être soumis à l'App Store. Les symboles de débogage pour les soumissions passées de bitcode restent disponibles au téléchargement.
En bref, le Bitcode optimise la construction des applications en supprimant une partie du code binaire. Josh Cohenzadeh nous rappelle que la taille des applications est importante, car c'est l'un des facteurs les qui influent le plus sur l'installation et la suppression par les utilisateurs.