Alpha Version of Titanium SDK 64-bit Support Now Available

Composite image of nature superimposed on a woman's profile

Update! New RC2 Posted

Starting February 1st 2015 Apple will require that all App Store submissions be compiled using the iOS 8 SDK, and support 64-bit architectures.

We’ve completed the first pass at our support for 64-bit builds on iOS. You will note the bump in versions to 3.5.0, as this build requires iOS modules to be recompiled (see below). What was previously slated for our original 3.5.0 has been moved to a new version, 3.6.0.

To Test

To test, please download the latest SDK build from the 3.5.0 stream (https://builds.appcelerator.com/#3.5.0). You do not need to download any CLI or Studio updates. You then just need to build your application using this latest version.

This build contains the following changes:

  • New, 64-bit build of JavaScript core, now 80% smaller, and based on a much newer codebase.
  • Updated 64-bit supporting libraries
  • 64-bit clean Titanium iOS SDK
  • Updated 64-bit modules
  • 64-bit module and project templates

There are a few remaining tasks to complete before we can release a GA version:

  • Debugger support: TIMOB-17924
  • Profiling fixes (profiling works, but functions currently report as “anonymous”): TIMOB-18064
  • Updated CoreMotion and UrlSession modules: TIMOB-17928

Important Notes

ALL iOS modules will need to be 64-bit compatible.

This is because 64-bit support requires 64-bit code all the way through. To do so:

  1. Open the Xcode project for the module.
  2. You should have at least one warning asking you to update the project to the “recommended settings”. Update the project as recommended.
  3. Go to the project settings and set the iOS Deployment Target to at least iOS 6.0.
  4. In Build Settings, change all the architectures to “$(ARCHS_STANDARD)”.

That’s it, build the module normally and it should now be 64-bit compatible. To verify it, run this on the command line:

cd module_root_dir
xcrun lipo -info build/lib.your_module_here.a

And the output should be this:

Architectures in the fat file: build/lib.your_module_here.a are: armv7 i386 x86_64 arm64

To advertise your modules as 64-bit compatible, add the compiled architectures to module manifest

For more information, see TIMOB-18065. We recommend you update your modules to include this line, as future versions of Studio and the CLI will use this to verify your modules are built correctly. We will help automate this process in the future. Module site gitt.io has also been updated to show the module’s supported architectures.

If you run into any issues, please file JIRA tickets and let us know ASAP.

13 COMMENTS

  1. I hope that *ALL* modules devs out there know about this.

    I’m sure there are a hell of a lot of old modules out there which haven’t been touched in a while.

    I predict modulageddon.

  2. You said: “To advertise your modules as 64-bit compatible, add the compiled architectures to module manifest”

    But how exactly?

  3. Does it mean that if my app can be successfully built with 3.5.0 then it is 64 bit compatible and can be submitted to Apple after Feburary?

  4. Awesome work – thanks to the team in Mountain view!

    I have recompiled all my modules from github and I see some problems in 64-bit world:

    1. Ti.Carousel: Swiping on main view is now seamless, only swipung on border works
    2. dk.napp.social: on iPad the popover with social stuff will not open.

    I think the new SDK changes UI event bubbling an/or other weired stuff. I’m looking forward …

Comments are closed.