SUPPORT.TWILIO.COM END OF LIFE NOTICE: This site, support.twilio.com, is scheduled to go End of Life on February 27, 2024. All Twilio Support content has been migrated to help.twilio.com, where you can continue to find helpful Support articles, API docs, and Twilio blog content, and escalate your issues to our Support team. We encourage you to update your bookmarks and begin using the new site today for all your Twilio Support needs.

Why is the iOS SDK binary size for Programmable Video so large?

Twilio Programmable Video for iOS lists the compressed and uncompressed sizes for Universal and arm64 architectures under the "Size Impact" section in the latest iOS changelog

 

Twilio Programmable Video for iOS supports Bitcode, which allows Apple to dynamically re-compile your app after you submit the binary to the App Store. Unfortunately, this means that the binary including Bitcode sections is quite large. Rest assured that this should not increase the size of your app on the store. Bitcode support will likely be mandatory sooner than later, but if this size is too large to work with in your development environment you can always strip the Bitcode sections out.

Stripping instructions:
https://github.com/twilio/video-quickstart-swift/issues/110

Apple provides tools which allow you to perform a size estimate of your app. We've done this using one of our QuickStart apps and would encourage you to do the same for your own application. Apple's sizing tools showed that Twilio Video adds between 8.5 MB (armv7 app thinning) and 18.6 MB (iOS 8 no app thinning) of uncompressed size. You can find detailed information about this on Github:

https://github.com/twilio/video-quickstart-swift/issues/124

Finally, if you're building an app for enterprise distribution you should probably enable the "Recompile Bitcode" setting when you export your .ipa file. This can be done in the GUI, or by using an export options .plist file (see attachment).

        xcodebuild \
            -exportArchive \
            -archivePath "${IOS_ARCHIVE_PATH}" \
            -exportPath "${IOS_IPA_PATH}" \
            -exportOptionsPlist ${EXPORT_PLIST} \

Where the EXPORT_PLIST variable points to the path of your .plist file.

Have more questions? Submit a request
Powered by Zendesk