Corona’s iOS 64-bit Transition Plan

Corona’s iOS 64-bit Transition Plan

[UPDATE] Please go here for the latest.

Starting Feb 1, 2015, Apple is requiring all new app submissions to be 32/64-bit-universal.

Before diving in, I should emphasize that between now and Jan 31, 2015, you can continue to submit your apps to the iTunes App Store using the current public release, just as you are doing today. The 64-bit requirement only comes into play starting Feb 1.

Alright, so here’s what we are going to do to address this to make your lives as iOS app developers as smooth as possible. We’ll cover this across various categories:

  • CoronaCards developers
  • Corona Enterprise developers
  • Corona SDK developers
  • Plugin Users, i.e. Corona devs that use plugins in their projects
  • Plugin Developers, i.e. 3rd party partners that are creating plugins

CoronaCards

CoronaCards developers will not have to worry about Corona-specific issues. This is because CoronaCards.framework is already 32/64-bit universal.

However, you may have existing code and/or legacy Xcode projects that need to be transitioned. Please refer to Apple’s 64-bit transition guide to ensure your project is ready.

Our CoronaCards iOS samples have been updated and should be emitting 32/64-bit universal binaries.

Corona Enterprise

Corona Enterprise developers will be able to build 32/64-bit universal binaries starting with daily build 2014.2515 or after. This is compatible with older Corona Enterprise projects and new ones.

Before diving in, I should mention that older Corona Enterprise projects are designed to be 32-bit only so if you are not ready to transition your Corona Enterprise project to 32/64-bit universal, you can still use the latest 32/64-bit universal daily builds of Corona Enterprise. Your older Xcode projects are already setup to ignore the 64-bit slice available in the latest versions of CoronaEnterprise.

The primary reason you would not be ready to transition is that you may depend on plugins which do not have 32/64-bit universal binaries available yet. If that’s the case, then the plugin will appear to be missing when run on a 64-bit device such as an iPhone 6 — see 32-bit-only plugins: No Forward Compatibility for more information.

For those of you who have decided you are ready to make the transition, here’s what you need to know:

  • For existing Corona Enterprise Xcode projects, you will need to make simple changes to your Xcode project settings. These changes are explained under the ‘Xcode’ section of our 64-bit Transition Guide. These changes will ensure that both 32-bit and 64-bit slices available in 2014.2515 are bundled into your app executable.
  • For new projects, you should model off the projects off the project templates and/or samples in this daily build (or after) so that you are building 32/64-bit universal binaries.
  • Most likely, as a Corona Enterprise developer, you have native (C/C++/Obj-C) code. If that’s the case, you need to make sure that code is 64-bit compliant. Please refer to Apple’s 64-bit transition guide for additional guidance.

REMINDER: If you are transitioning and are using plugins, you must ensure that the plugin binary files include both 32-bit and 64-bit slices. See ‘Plugin Users’ for additional details.

Corona SDK

Starting in early Jan 2015, we will be making a 32/64-bit universal version of Corona SDK available to all subscription tiers. Depending on the progress of our plugin partners, we may make daily builds available to Pro (and higher) subscribers earlier than that.

When this build becomes available, you will just need to rebuild your app with this version of Corona SDK.

The primary reason for not making this available sooner is because we want to give our 3rd party plugin partners time to update their plugins.

We could make a 32/64-bit universal version of Corona SDK available immediately, but we have decided that it makes more sense to wait:

  1. You can continue to submit apps to Apple using 32-bit only builds until Jan 31, 2015.
  2. We do not want to disrupt your app development plans prior to the holiday rush.
  3. A 32/64-bit universal Corona SDK requires 32/64-bit plugin binaries to be available to operate correctly.
    • In particular, if (instead) a 32-bit-only plugin binary is used, this plugin will appear to be missing when run on a 64-bit device (e.g. iPhone 6) – see 32-bit-only plugins: No Forward Compatibility for more information.
    • 3rd party partner plugins need time to upgrade their plugins to 32/64-bit universal.

For these reasons, we have decided it makes the most practical and pragmatic sense to wait until early Jan 2015.

[UPDATE] Please go here for the latest.

Plugin Users

Plugin binaries are being migrated to be 32/64-bit universal:

  • Plugins offered by Corona have already been transitioned to universal and are posted on our servers.
    • These will not affect existing daily builds. The pre-existing Corona SDK and Corona Enterprise are setup to ignore 64-bit slices.
    • Once a 32/64-bit universal version of Corona SDK is available, both 32-bit and 64-bit slices of the plugin will automatically be bundled into your app binary.
  • 3rd party plugin partners are in the process of upgrading their plugins to 32/64-bit universal.

For Corona Enterprise developers who want to transition, you should check whether a plugin binary is 32/64-bit universal. You can use the file command line tool to perform this check, as explained in the ‘Plugin Submission’ of our 64-bit transition guide.

Plugin Developers

If you are a 3rd party partner, you should consult our Corona 64-bit Transition Guide so you can update your plugins that are hosted on our servers.

Starting today, any plugin binary updates posted to our server are required to be 32/64-bit universal. In addition, by Jan 5, 2015, your plugin binaries MUST BE universal. We will remove all plugins that have not been updated to be 32/64-bit universal.

walter
17 Comments
  • Lerg
    Posted at 15:47h, 03 December

    Are all plugins gonna be updated or some will be abandoned?

    • Walter
      Posted at 16:06h, 03 December

      Most of them should. All plugins that are developed by Corona have been updated. And we are already in touch with 3rd party plugin partners to let them know how to update.

  • GameThrive
    Posted at 15:57h, 03 December

    In case anyone is wondering, the GameThrive plugin will be updated to 32/64-bit in time for this change.

  • Stephen Lewis
    Posted at 17:30h, 03 December

    Can you update the plugin Directory page with something to indicate which ones have been upgraded to 64 bit? Maybe a little icon or note “64-bit compatible” or whatever. As the deadline approaches that would give us developers some insight into which plugins have been possibly abandoned and give us at least a little time to do something about it. It would be very annoying, and inconvenient, if the January 5 deadline hits and bunch of plugins disappear with no warning.

    • Alan Thomson
      Posted at 03:13h, 04 December

      That sounds like a great idea, certainly removes any doubt when devs are trying to work out whether they should publish or wait a few extra days.

  • Alan Thomson
    Posted at 03:17h, 04 December

    “If that’s the case, then the plugin will appear to be missing when run on a 64-bit device such as an iPhone 6”

    I presume this will only be the case after Jan 31st? Our current builds will still work on an iPhone 6 at the moment?
    We’ve recently published some Enterprise-built updates for our last 5 games, and we haven’t had any reports of apps freezing (which would happen if some of the plugins were not found), so I’m hoping that they would all be working ok at the moment. We don’t have an iPhone 6/6+ to test on, so we made the assumption that it would work.

    • Walter
      Posted at 12:43h, 04 December

      Correct. The relevant statement is:

      “Your older Xcode projects are already setup to ignore the 64-bit slice available in the latest versions of CoronaEnterprise.”

      So you would only encounter this issue if you have made the transition to 64-bit which requires both (a) upgrading to the latest Corona Enterprise dailybuild, and (b) modifications to your Xcode project (as described in our guide).

  • Ske
    Posted at 04:25h, 05 December

    I know OpenUDID is pretty outdated but some of our apps are still using it, any news on an update there?

  • Dave Haynes
    Posted at 06:20h, 08 December

    What about Flurry? That’s about the only non-Corona created plugin that I use, and seems to be the only good, easy-to-use analytics available for Corona SDK.

    • Walter
      Posted at 17:10h, 08 December

      That’s actually a plugin we wrote. It’s already been updated.

  • Haakon
    Posted at 13:34h, 08 December

    Hi,

    what about the social popu plugin, it does not include the xcode simulator 64 bit slice.

    • Walter
      Posted at 17:09h, 08 December

      All the slices are present in CoronaEnterprisePlugins.2014.2517.tgz:

      Architectures in the fat file: ./native-popup-social/2013.1164/iphone/libnative-popup-social.a are: armv7 i386 x86_64 arm64

  • Januar Tanzil
    Posted at 21:15h, 11 December

    Hi,
    I’m just going nuts here with the latest transition to 64bit build. I used the latest daily build 2517 and everytime I build the app and test it on 64bit device/simulator, it always crashes.

    This doesn’t happen if my build settings is for armv7 and not $archs_standard ord if I run the build on 32 bit devices/simulator..
    I tried to look up at the forum and it seems I’m the only one that has this problem 🙁 ?

    Already been on my 2nd day testing any value possible in my project settings but to no avail. What do you think could be the issue here?

    Thanks

  • David
    Posted at 10:51h, 18 January

    I do not use any plugins in my application. Will the transition to 32/64 bit universal affect me and will I still be able to submit my application to the apple app store after Jan. 31st? From what I read above, it sounds like I need to wait for Corona to come out with a new build/public release that provides 32/64-bit support, which Corona plans to come out with sometime in early January (I haven’t seen one yet), before it will be possible to submit an app to the app store after Jan. 31st. Am I interpreting this correctly?

  • Space Wolf
    Posted at 14:40h, 02 February

    Hi there Corona!

    It’s February 2nd today and it appears there isn’t a new public build out for 64 bit support. I am anxiously awaiting an update! Please advise

  • Babis
    Posted at 03:50h, 03 February

    Hello,

    Do you have any news about the public build for 64 bit suport??