On Oct 13, 2013, at 11:36, Jeffrey Walton < email@hidden> wrote: On Sun, Oct 13, 2013 at 11:14 AM, Chris Lattner < email@hidden> wrote: On Oct 12, 2013, at 6:36 PM, Jeffrey Walton <email@hidden> wrote:
You can submit 64-bit apps for iOS 7 today that take advantage of the power of the iPhone 5s. Xcode can build your app with both 32-bit and 64-bit binaries included so it works across all devices running iOS 7. If you wish to continue to support iOS 6 then you need to build for 32-bit only. Next month we will be making changes so that you can create a single app binary that supports 32-bit on iOS 6, as well as 32-bit and 64-bit on iOS 7."
Thanks Chris.
Forgive my ignorance, but what precisely is this saying?
If I build Crypto++ separately for ARMv7, ARMv7S and ARM64, I can use lipo to combine the architectures into a fat binary. So I know (or believe) I can build the multi-arch library.
Or will there be a ARM64-32 and ARM63-64, too? To me, its all just ARM64.
This is saying that it is not currently possible to include an ARM64 slice in an application that needs to run on OS's earlier than iOS7, regardless of how you produce it.
Oh, I was not aware of that. lipo is more than happy to create that type of binary without warning.
As far as lipo is concerned, there is nothing wrong with such a binary, and in the case of a static library that will be later linked into an application, you’re fine as long as the app’s deployment target is properly restricted. That is, if you build such a library by lipo-ing the individual slices together, as long as the app itself has a deployment target of 7.0, you’ll be fine. There are components in iOS pre-version 7 that were not prepared to see binaries containing 64-bit code, particularly when such binaries are downloaded from the app store (which is why things may appear to work locally for you, but would not work if that code ended up on the app store). Until the changes that Chris mentioned have been made, you will not be able to have an app that both supports iOS 5 or 6 and contains 64-bit code.
|