In an announcement posted to Apple’s developer portal today, the company notified all iOS developers that any submissions to the App Store after June 1 must include 64-bit support and must be built with the iOS SDK.
“As a reminder, beginning June 1, 2015 app updates submitted to the App Store must include 64-bit support and be built with the iOS 8 SDK.”
In order to enable 64-bit in your project, Apple recommends that you use the default Xcode build setting of “Standard architectures.” This allows you to build a single app binary with both 32-bit and 64-bit code.
The most well known reason for switching to a 64-bit architecture is to take advantage of more RAM (random access memory). Having a 64-bit architecture allows the machine to use more than 4GB of RAM. A common misconception is that 64-bit architectures are only beneficial if the device has more then 4GB of RAM, however, this is not the only advantage.
A 64-bit architecture provides other advantages that can be taken advantage of on devices with reduced amounts of memory (for example, a smartphone). The 64-bit architecture supports a new streamlined instruction set that supports double the amount of integer and floating point registers. Apple’s native LLVM compiler has also been optimized to take advantage of the new instruction set.
The table below illustrates the size and alignment of integer data types on iOS. As you can see, the size and alignment of many data types increased after transitioning to 64-bit.
Overall, the 64-bit architecture allows an app to work with more data at once for improved performance. Another advantage of switching to a 64-but architecture is that low level programs such as encoders, decoders, and encryption software greatly benefit from the larger registers sizes. The encryption software used in Touch ID is an example of a feature that is greatly improved when the operating system and the hardware both provide 64-bit support.
Apple has developed iOS with a well-rounded memory management system. Apple is using a memory management feature called Automatic Reference Counting (ARC). ARC is a complier feature that provides automatic memory management (garbage collection) in Objective-C. Developers no longer have to think about retain and release (allocate and deallocating memory) operations in their code. Instead, developers can now concentrate on the code that is central to their application.
Last month, it was reported that Apple notified all Mac developers that any submissions to the Mac App Store after May 1 must use their ARC memory management feature. The report contains details about the transition and provides a closer look at memory management and garbage collection in Mac OS X (also applies to iOS development).
If you are an iOS developer, be sure to read Apple’s full guide on transitioning to 64-bit using Cocoa Touch.