How do i prepare a 64-bit binary for iOS? It is required by Feb 1, 2015, and building currently fails with 5.0.25.

// Expert user has replied.
J Jerrod Blavos 3 years 7 months ago
5 4 0

I have added arm64 in the xCode project, however when archiving i get the following errors:

Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_RhodesBaseDelegate", referenced from:
      _OBJC_CLASS_$_CApplicationDelegate in CApplicationDelegate.o
  "_OBJC_METACLASS_$_RhodesBaseDelegate", referenced from:
      _OBJC_METACLASS_$_CApplicationDelegate in CApplicationDelegate.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Relevant info from Apple:

Missing 64-bit support - Beginning on February 1, 2015 new iOS apps submitted to the App Store must include 64-bit support and be built with the iOS 8 SDK. Beginning June 1, 2015 app updates will also need to follow the same requirements. To enable 64-bit in your project, we recommend using the default Xcode build setting of “Standard architectures” to build a single binary with both 32-bit and 64-bit code.
After you’ve corrected the issues, you can use Xcode or Application Loader to upload a new binary to iTunes Connect.

Please Register or Login to post a reply

4 Replies

R Robert Galvin

We are working on changes to the Rhodes project that will enable the 64-bit binary requirement. We expect to provide something next week sometime. Jerrod, I realize this offers you little time for you, but that is the latest information I have from the engineer.

J Jerrod Blavos

Appreciate the update!  Whew.

J Jerrod Blavos

Unfortunately it is a new app and is still in internal approval process with little hope of submission prior to Feb 1.

From my investigation it looks like the root of the issue is libcurl.a

J Jon Tara

I would like to see some definitive answer on this as well.

I realize that this isn't an answer, but, notice there are two dates.

Is your app already on the App Store? Then you have until June 1. If not, can you get it submitted before February 1? Then you will also have until June 1 to update to 64-bit. Actually, I think it's only on the first update you submit after June 1. I think it will be allowed to stay in the App Store so long as you don't submit an update, but of course it's an uncomfortable position to not be able to update your app.

So, you have some breathing room if you can get it accepted before February 1.

How do you build? It's my understanding that Rhodes 5.x does not currently support Xcode GUI build (even though still in the documentation - I don't know if this is a bug or a feature...) - you need to do only command-line (rake) build (or RhoStudio IDE).

I'd like to know this myself, because my command-line builds don't seem to support 64-bit. I think you would need to alter the Xcode project file that the rake build creates for you. This is not the same as the project file you create with: rake build:iphone:setup_code_project.

I think there is some work needed yet by RhoMobile to support 64-bit build, unless you alter the Xcode project file yourself.

In my case, it may be because I have a native plugin of my own, though. I haven't added 64-bit support to my native plugin. But pretty sure I recently followed my standard practice of creating a simple app from scratch for every new Rhodes version. e.g. I always create a new app from the app generator, e.g. 'test525', just so that I can compare it with the previous 'test520' and see what changed.

CONTACT
Can’t find what you’re looking for?