How to update your app and modules for 64-bit support

With the Titanium 3.5.0 release expected to come out early next week, you’ll be just in time to build your iOS apps with 64-bit support. While updates on existing apps won’t be required to include 64-bit until June 1, this new requirement will be enforced for new apps starting February 1.

Modules also need to include 64-bit support

While Appcelerator has done a great job updating their SDK and modules to include 64-bit support, your apps probably also use third-party modules. These modules also need to be updated in order for your app to support 64-bit.

Find out which modules need updates

To find out if your project uses modules that do not include 64-bit support, you can use a new handy CLI I made.

$ npm install -g ti-64
$ cd yourTiProject
$ ti-64

This will give you a summary like this:

As you can see all modules required for this project have a version that includes 64-bit support.

Update your own and OSS modules

If you’ve developed your own modules you can follow the simple steps in the 3.5.0.GA Release Notes to update them for 64-bit. For OSS modules be so kind to fork the repo and do a PR.

List of OSS 64-bit modules

giTio indexes the new architectures property in module manifests, allowing you to search for 64-bit modules. So far only 6% of all OSS modules have been updated, but fortunately this number is growing everyday.

App imagineer: Imagining, Engineering & Speaking about Native mobile Apps with Appcelerator Titanium & Alloy • Meetup organizer • Certified Expert • Titan


Comments

  • Paul Ryan

    I get “No project found” on every ti project I have tried this on

  • Fokke Zandbergen Post author

    What ti-64 version (ti-64 -v) and command do you use?

  • Vincent

    I get “No modules found”,
    ti-64 -v
    2.1.2

    Any idea?

  • Fokke Zandbergen Post author

    @Vincent, where do you run the command?

  • Vincent

    From the root of my Titanium project, should I move to the xcode build project?

  • Fokke Zandbergen Post author

    No, that should work fine. And you do have modules in that project’s ‘modules’ dir?

  • Mohit Gupta

    I get the following error: /usr/local/lib/node_modules/ti-64/index.js:126
    projectModules = flatten(res.modules.project.iphone, true);
    ^
    TypeError: Cannot read property ‘iphone’ of undefined
    at handle (/usr/local/lib/node_modules/ti-64/index.js:126:53)
    at /usr/local/lib/node_modules/ti-64/node_modules/timodules/lib/timodules.js:48:7
    at /usr/local/lib/node_modules/ti-64/node_modules/timodules/lib/timodules.js:29:7
    at /usr/local/lib/node_modules/ti-64/node_modules/timodules/node_modules/tiapp/lib/tiapp.js:19:15
    at Parser. (/usr/local/lib/node_modules/ti-64/node_modules/timodules/node_modules/xml2js/lib/xml2js.js:255:20)
    at Parser.EventEmitter.emit (events.js:95:17)
    at Object.saxParser.onclosetag (/usr/local/lib/node_modules/ti-64/node_modules/timodules/node_modules/xml2js/lib/xml2js.js:225:24)
    at emit (/usr/local/lib/node_modules/ti-64/node_modules/timodules/node_modules/xml2js/node_modules/sax/lib/sax.js:615:33)
    at emitNode (/usr/local/lib/node_modules/ti-64/node_modules/timodules/node_modules/xml2js/node_modules/sax/lib/sax.js:620:3)
    at closeTag (/usr/local/lib/node_modules/ti-64/node_modules/timodules/node_modules/xml2js/node_modules/sax/lib/sax.js:861:5)

  • Fokke Zandbergen Post author

    @Mohit, that error occurs when you run it in a project that has no (local) iphone modules at all. I’ve pushed a new version with a fix.

  • Plb

    I get no project found. Please help

  • Fokke Zandbergen Post author

    You have to run it in a Titanium project root.

  • Seif Sayed

    I am at the project root and still getting the same ” no project found”

  • Fokke Zandbergen Post author

    You are running it in the directory that has your tiapp.xml?

  • seif sayed

    Yep, pretty sure

    Thanks for your time

  • Fokke Zandbergen Post author

    Odd. What version are you running? 2.1.3 should use the version of https://github.com/dbankier/timodules that was fixed to work with the Appcelerator CLI. Do you have the Titanium CLI installed? Or only the AppC CLI?

  • Plb

    Yes, I am on root directory and running 2.1.3. Thanks.

    ITs-iMac:DemoProject itdept$ ti-64 -v
    2.1.3

  • Fokke Zandbergen Post author

    And in that directory you have a tiapp.xml file? Does it have a ‘‘ tag?

  • Plb

    ITs-iMac:DemoProject itdept$ ls
    CHANGELOG.txt MarketplaceArtwork.png app manifest tiapp.xml
    LICENSE README build platform
    LICENSE.txt Resources iTunesConnect.png plugins

    What is a ” tag? are u referring to its content?

  • Fokke Zandbergen Post author

    WordPress took out the XML :) I meant the ‘modules’ element in the tiapp.xml – is that there? Could you install https://github.com/dbankier/timodules as global CLI and try that on the same project to see if it fails as well?

  • Alex

    Hello,

    I had this problem “No modules found”.
    After running “npm install titanium -g” it works !
    hope it could help, and thanks to Fokke.

    config:
    Mac OS x 10.10.5
    appc 5.0.2
    Titanium sdk 5.0.1
    ti-64 2.1.3

  • Fokke Zandbergen Post author

    Alex you are right. I’ve just pushed a new version of ti-64 that relies on the master version of timodules which DOES support the new AppC CLI.

  • Rodrigo Ferreira

    When I run sudo npm install -g ti-64
    I get the error below. I already installed the dependencies (

    npm ERR! not a package /tmp/npm-31374-awsGlnB_/github.com/dbankier/timodules.git
    npm ERR! Error: ENOENT, open ‘/tmp/npm-31374-awsGlnB_/github.com/dbankier/timodules.git-unpack/package.json’
    npm ERR! If you need help, you may report this *entire* log,
    npm ERR! including the npm and node versions, at:
    npm ERR!

    npm ERR! System Darwin 13.4.0
    npm ERR! command “node” “/usr/local/bin/npm” “install” “-g” “ti-64”
    npm ERR! cwd /Users/rodrigorosalin
    npm ERR! node -v v0.10.37
    npm ERR! npm -v 1.4.28
    npm ERR! path /tmp/npm-31374-awsGlnB_/github.com/dbankier/timodules.git-unpack/package.json
    npm ERR! code ENOENT
    npm ERR! errno 34
    npm ERR! not ok code 0
    eduardo-Aspire-E1-546:~

  • Fokke Zandbergen Post author

    @Rodrigo, could you try again? I think it was a temporary issue since I had no issues installing it just now.