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

illustration magazine 25 ans

MacGeneration a 25 ans !

Participez à la fête et découvrez l’histoire de votre site favori en précommandant notre magazine exclusif.

Je précommande le magazine

Amazon brade les accessoires Magic en Lightning, avec de bonnes affaires

17:00

• 13


Molotov TV et Picard victimes de fuites de données : protégez-vous rapidement avec Incogni 📍

16:51


La tasse et la gourde des 25 ans de MacGeneration en images

16:40

• 66


Prévoyez un clavier USB si vous achetez un Mac mini M4 et que vous avez de vieux périphériques Bluetooth

16:15

• 10


Framework joue à RISC-V avec ses cartes

15:30

• 1


Warcraft I et II reviennent, mais pas sur Mac… alors que le Macintosh avait la meilleure version

14:00

• 15


macOS 15.1 bloque totalement certaines applications qui ne sont pas signées et notarisées

13:00

• 50


Windows 11 ARM va améliorer l'émulation du code x86… comme Apple l'a fait avec Sequoia

10:45

• 9


Apple annonce Final Cut Pro 11 avec de nouveaux outils améliorés par l’IA

07:04

• 55


Découvrez les offres Black Friday 2024 sur pCloud : jusqu’à 60% de réduction ! 📍

13/11/2024 à 22:20


Faille critique sur les NAS D-Link : elle ne sera pas bouchée, changez de matériel

13/11/2024 à 21:30

• 75


Molotov victime d’une cyberattaque, 10 millions d’adresses email compromises

13/11/2024 à 18:15

• 57


DaVinci Resolve 19.1 sait exporter des vidéos spatiales

13/11/2024 à 16:26

• 5


Un SSD de 60 To, ça vous dit ?

13/11/2024 à 15:00

• 36


En réponse à B&You Pure fibre, SFR RED baisse un petit peu le prix de son offre fixe

13/11/2024 à 13:00

• 52


Lexar présente une station de (dé)stockage modulaire très professionnelle

13/11/2024 à 11:15

• 0