Support armv6 and armv7 in the same ipa

2019-04-08 10:00发布

I have an XCode project configured like this:

  • Project Format: XCode 3.1-compatible
  • Architectures : Standard (armv6 armv7)
  • Base SDK : Latest iOS (currently set to iOS 4.2)
  • Build Active Architecture Only : UNCHECKED
  • Valid Architecures: armv6 armv7

My question: Does the resulting binary (.ipa) have 2 executables in it - one for each architecture, or just some different object files for each architecture or is the split even finer grained than that?

Just curious. Thanks.

2条回答
家丑人穷心不美
2楼-- · 2019-04-08 10:25

From what you described, the ipa should have a multi-architecture binary with both arm6 and arm7. You can check it with the file command in terminal. Inside of your app bundle is a executable that will have the same name as the app, myApp.app/myApp. Entering:

file myApp.app/myApp

in terminal will then print what it contains for you to double check. It should list the 2 architectures.

查看更多
Anthone
3楼-- · 2019-04-08 10:35

It will produce two binaries and then stick them together in a so-called "fat binary". You can play around with sticking multiple architectures in the same executable yourself using the lipo command.

To clarify: You will have two executables inside a single file. This is logically a single executable (both are your app), but one version targets one architecture and the other version targets the other architecture.

查看更多
登录 后发表回答