Ouvrir le menu principal

MacGeneration

Recherche

Xcode 14 a accidentellement augmenté le poids de nombreuses apps

Nicolas Furno

jeudi 17 novembre 2022 à 10:25 • 26

Logiciels

Xcode 14, l’environnement de développement fourni par Apple, promettait d’alléger les apps compilées par ses soins, en particulier celles qui tournent sous iOS 16 et les versions suivantes. La réalité est pourtant toute autre, puisque cette mise à jour a contribué au contraire à augmenter la taille des apps iOS. Et pas qu’un peu : pour certains apps, le poids a augmenté de 68 % en effectuant la compilation dans Xcode 14 au lieu de Xcode 13.

Devinez la date de sortie de Xcode 14 uniquement avec ce graphique… (image Emerge Tools).

Les créateurs d’Emerge Tools, une série d’outils destinés aux développeurs d’apps mobiles, ont détaillé ce qui s’est passé dans un article publié sur leur blog. Puisque l’un des outils qu’ils proposent est pensé pour analyser le poids d’une app en quête d’optimisations, ils sont particulièrement bien placés pour analyser l’effet de Xcode 14 sur de nombreuses apps et pour comprendre ce qui s’est passé.

L’augmentation du poids des apps compilées avec Xcode 14 est la conséquence malheureuse de la fin du Bitcode, une idée lancée par Apple en 2015 que l’on pourrait résumer grossièrement ainsi. Au lieu d’envoyer sur les serveurs de l’App Store une app compilée prête à être installée, les développeurs envoient un Bitcode, un fichier qui contient en gros des instructions pour compiler la version finale. Ce n’est pas le code source de l’app, mais un intermédiaire qui aurait notamment permis à la firme de Cupertino de simplifier la transition 64 bits sur l’Apple Watch, sans faire appel aux développeurs.

Series 4 : la transition vers le 64 bits facilitée par Bitcode ?

Series 4 : la transition vers le 64 bits facilitée par Bitcode ?

L’avantage du Bitcode, c’est que l’app que vous téléchargez a été optimisée par Apple pour votre matériel. Parmi les optimisations réalisées sur ses serveurs, l’entreprise retirait notamment les « binary symbol », des fichiers de métadonnées qui sont indispensables pendant le développement et la compilation, mais inutiles dans le fichier final. L’air de rien, ces documents peuvent peser lourd et c’est ce qui a provoqué l’augmentation du poids des apps avec Xcode 14. Bitcode étant désactivé, les développeurs ont soumis des binaires finalisés à Apple et ces derniers n’étaient plus optimisés.

Dans le cas de l’app de Nike choisie en guise d’exemple, pas moins de 127 Mo supplémentaires sont liés à ces binary symbols qui n’ont pas été retirés dans la version finale. Ils sont particulièrement visibles dans les frameworks sous-jacents, puisque chaque élément a ses propres symboles et cela finit par peser particulièrement lourd sur le poids final de l’app.

Analyse des frameworks de l’app Nike avec la dernière version compilée sous Xcode 13.
Et la même analyse avec la première version compilée sous Xcode 14 : les « String Table » qui se sont ajoutés un petit peu partout correspondent aux binary symbols.

Le site a analysé de nombreuses apps sur l’App Store et retrouvé des augmentations similaires dans de nombreux cas. Celle de Nike était la plus spectaculaire en termes de volume gagné à cause des binary symbols, mais ils peuvent avoir un impact bien plus léger… même chez Apple ! L’app Shazam, par exemple, a augmenté d’environ 2 Mo suite au passage à Xcode 14.

Pour les développeurs, l’article détaille comment configurer la compilation dans Xcode 14 pour retirer les binary symbols de l’app finale. La méthode recommandée est un script shell à ajouter au processus, juste avant la signature de l’app. Peut-être qu’Apple ajoutera une option plus simple pour le faire automatiquement, mais ce n’est pas le cas dans la version actuelle.

Apple n’a pas justifié l’abandon du Bitcode, si bien que l’on ne connaît pas ses motivations exactes. On sait néanmoins que cette idée aux multiples avantages théoriques avait aussi des inconvénients pratiques. Il y a plusieurs situations où utiliser le Bitcode n’était pas possible ou déconseillé et stocker les apps sur les serveurs de l’App Store dans ce format intermédiaire ne garantit pas autant leur pérennité qu’avec un binaire compilé.

Ces inconvénients n’étaient pas contre-balancés par des avantages aussi évidents que prévu et le format a finalement été bien peu utilisé par la pomme1. Tous ces éléments mis bout à bout ont probablement justifié l’arrêt de cette initiative, sept ans après son arrivée.


  1. On n’est même pas sûrs que Bitcode a été vraiment utilisé un jour par Apple, l’entreprise n’ayant jamais communiqué sur le sujet. L’exemple donné plus tôt de l’Apple Watch Series 4 reste encore une hypothèse.  ↩︎

Source : Michael Tsai

Rejoignez le Club iGen

Soutenez le travail d'une rédaction indépendante.

Rejoignez la plus grande communauté Apple francophone !

S'abonner

iPhone, Mac, accessoires… Quels sont les appareils Apple prévus en 2025 ?

21:30

• 10


Appel à témoins : utilisez-vous l’application Journal d’Apple ?

14:00

• 0


Les SSD SATA rapides sont en voie de disparition, il faut penser à upgrader votre vieux Mac

10:00

• 28


2025 pourrait être compliquée pour l'iPhone malgré le « 17 Air » et Apple Intelligence

11/01/2025 à 12:06


Test du TP-Link Deco BE65 : le Wi-Fi 7 pour le reste d’entre nous

11/01/2025 à 10:00

• 32


𝕏 n’est qu’un outil de développement pour xAI, qui s’installe profondément dans le réseau social

10/01/2025 à 22:00

• 79


Meta supprime son équipe dédiée à la diversité, promettant une équipe plus juste

10/01/2025 à 21:15


Matt Mullenweg s’acharne sur WordPress, jusqu’à la mesquinerie

10/01/2025 à 20:45

• 10


De nouveaux wallpapers pour l’ouverture d’un flagship et de bureaux en Floride

10/01/2025 à 20:15

• 14


Assassin’s Creed Shadows ne sortira finalement que le 20 mars sur Mac et iPad

10/01/2025 à 20:00

• 28


Apple fête le Nouvel An lunaire avec un nouveau court métrage très dansant

10/01/2025 à 19:30

• 7


Les services Proton sont rétablis, premières explications sur la panne 🆕

10/01/2025 à 17:50

• 23


Avec son dernier chargeur Prime 100 W, Anker fait des étincelles

10/01/2025 à 17:00

• 27


Refurb : l'iPhone 15 Pro est disponible en reconditionné par Apple

10/01/2025 à 14:06


Le DisplayPort 2.1 passe aux câbles actifs pour dépasser 1 mètre à 80 Gb/s

10/01/2025 à 14:00

• 12


Google signe un partenariat avec la Fondation Linux pour assurer le futur de Chromium

10/01/2025 à 13:00

• 11