Translating an ARM iOS app to Intel macOS using Bitcode

What is Bitcode? Well, bitcode with a small b is an architecture-specific intermediate representation used by LLVM, and capital-B Bitcode pertains to a set of features allowing you to embed this representation in your Mach-O binary and the mechanisms by which you can provide it to Apple in your App Store submissions.


Of course, the specter of macOS on ARM has been in the public psyche for many years now, and many have pondered whether Bitcode will make this transition more straightforward. The commonly held belief is that Bitcode is not suited to massive architectural changes like moving between Intel and ARM.

I was unconvinced, so I decided to test the theory!

By Steven Troughton-Smith, so you know you’re going to learn more than you bargained for.