0

According to Apple after June 1st, apps that are not built for 64-bit will be automatically rejected, when uploaded to app store. My app is using "Standard architectures" and BaseSDK is 8.0. With the first glance this means that the app is OK with these rules, however what happens when external libraries are not 64 bit? For example

$ lipo -info libssl.a 
Architectures in the fat file: libssl.a are: armv6 armv7 

This libssl.a files seems to be compiled for 32bit. However I do need it in my app, therefore it is linked. My app is at the AppStore for a long time and it was first built with 32 bit. Now with "Standard architectures" it compiles with 32 and 64 bit support.

Is this OK, or do I need 64bit version of my static libraries as well?

cateof
  • 6,608
  • 25
  • 79
  • 153

2 Answers2

1

EVERYTHING needs to be 64 bit for the final app to be 64 bit

EVERYTHING means

  • the app itself
  • all linked static libraries
  • all linked dynamic libraries
  • all linked frameworks (apple's usually are!)
  • all included 'extensions' (which are apps of its own)
Community
  • 1
  • 1
Daij-Djan
  • 49,552
  • 17
  • 113
  • 135
  • My project is using Standard architectures (armv7, arm64) and BaseSDK (ios 8.1) according to the guidelines. However this is not a new app. It is an old app that can use 32 and 64 bit together. How can I figure out that the binary is OK before submitting? – cateof Mar 24 '15 at 09:22
  • For example my folder that contains the static libraries is lib/debug and when I run lipo -info libWeb.a, I get "libWeb.a is architecture: armv7". That probably means that even if I have standard architectures in Xcode static libraries are still in 32 bit, therefore the app will be rejected. COrrect??? – cateof Mar 24 '15 at 09:26
  • 1
    lip the binary - it has to say 64bit included -- yes, armv7 is 32bit it needs to be arm64 – Daij-Djan Mar 24 '15 at 10:55
0

Yes.

If your project is 64 bit while the external libraries are 32 bit, your project won't even compile.

Zhang Zhan
  • 815
  • 8
  • 27