Developers may have recently noticed that the size of our iOS SDK has increased by over 2x the size of our previous SDKs. This is a direct result of two different factors.

First, we switched from using a dynamic framework to a static framework bundle methodology. Because the dynamic framework is linked at runtime, it does not include any of the Apple iOS SDK in the library. Whereas, the static framework is linked at compile time, so it must also include parts of the Apple iOS SDK in the library. This change happened on version number 3.6.0.6 and increased the size of the SDK by about 80%. We determined that, largely for compatibility reasons, this change was not only useful but also desirable. It is important to keep in mind that the duplicate parts of the Apple iOS SDKs will be removed from the static framework as it’s linked into your application and that the resulting application file size is actually somewhat smaller than with the dynamic framework.

Second, when we released 3.6.0.9 we added bitcode support, and this also increased the size of the SDK considerably. The Apple bitcode technology adds a partially compiled binary image along side the fully compiled binary image of the framework. This allows for reoptimizing the binary at a later date on Apple’s servers. When this technology is added to app thinning, only the parts of the application that are needed are actually downloaded to the device. This not only extends to image assets and texture assets, but also to the application binary slices themselves. In effect, the bitcode representation of the application is never sent to the device, and even though the size of the binaries you upload to Apple increases, the size of the binaries that users download is smaller than before app thinning.

For more information about how app thinning works, please see Apple’s official documentation on the subject: http://apple.co/1R6SEWz.

As always, you can download the latest and greatest SDK from here: http://ibm.co/1R75Ri4.

Join The Discussion

Your email address will not be published. Required fields are marked *