Emerge is a platform for monitoring and reducing application size, which can continuously monitor and analyze application binary size to help developers write smaller and better code. Emerge recently released a report showing that the latest version of Xcode has a problem that can inadvertently increase the size of the application.
Xcode 14 was officially released in September this year. The new version added support for Swift 5.7 and added SDKs for the latest systems such as macOS Ventura and iOS/iPadOS 16. In addition, the new version of Xcode is faster and smaller 30%, increased parallelism makes building projects 25% faster, and long-running tests 30% faster.
However, shortly after the release of Xcode 14, Emerge found that the size of some iOS applications increased significantly. From mid-September to early October, it was observed that:
- The install size of the Nike iOS app started at 182.2MB and then grew to 322.1MB, a 76% increase in space usage
- American Airlines (American Airlines) increased from 182.2MB to 389.1MB, an increase of 113%
- Chime increased from 162.8MB to 212.8MB, an increase of 31%
In all of the above examples, the sudden increase in application space was due to the fact that these applications were built with Xcode 14 for the first time, and in the final analysis, the cause of this problem was that Xcode 14 disabled Bitcode by default.
The Xcode 14 update documentation says:
Xcode no longer builds Bitcode by default, and the ability to build with Bitcode will be removed in a future Xcode release. IPAs containing Bitcode will be stripped of Bitcode prior to submission to the App Store.
What is Bitcode
Bitcode is a way of packaging apps that leaves parts of the build process to Apple after a developer submits the app to the App Store, and one of the things Apple does is strip binary symbols.
What is Binary Sign Stripping
Binary symbol stripping refers to the removal of certain types of metadata from binaries that are not necessary to run an application in production. That metadata might be helpful before production, but it just bloats users’ phones afterward.
The simple explanation is that Bitcode optimizes production builds by stripping binary symbols. Without Bitcode turned on, developers would need to modify Xcode’s build settings to otherwise strip symbols from the binary.
In other words, when developers update to Xcode 14, any application that relies on Bitcode will no longer strip binary symbols from the application it produces, which means that an application can appear without adding any functionality. A case of a substantial increase in volume.
Emerge did an in-depth analysis of Nike’s iOS app, and in version 22.35.0, the framework accounted for 163.7MB of the 191.7MB install size. With version 22.36.1, the framework ballooned to 293.8MB out of a total of 322.1MB.Note the addition of the dark blue “String Table” found in each frame.
By comparing the two versions, it can be found that almost the increased volume of 130MB comes from DYLD.String Tables. These string tables themselves are non-essential metadata, and they are now in production builds.
The binary symbols for both versions of the application also grew from 213.9KB (0.11% of the total application size) to 127.5MB (40% of the total application size). That means the Nike iOS app has grown by 130MB without any major functional changes. (Above: Xcode 14 Beforebinary symbol size; below: Xcode 14 afterbinary symbol size in
In addition to the applications mentioned above, the substantial increase in volume this time also includes commonly used software such as Chrome, Amazon, Twitter, Twitch, and ESPN.
App size is one of the biggest factors affecting your app’s install and uninstall metrics. Excessive bloat will reduce app install rate and increase app uninstall rate, especially for users with limited mobile space, which will eventually lead to The decline in the number of users will in turn affect the activity of the application and even the revenue. It is an important task for developers to regularly monitor and understand how to reduce the download and install size of their applications.
#Xcode #abandons #Bitcode #resulting #substantial #increase #application #size #News Fast Delivery