Introducing Titanium Mobile 1.4

The failure of business shown by global network connection in hand of businessman is broken

OK, so this release took way longer than we all anticipated. We tried our best working days and nights and weekends to make it faster, but sometimes this stuff just takes longer than you’d like. In our case, we ran into a lot of major issues with iOS4 and between the various devices, versions and permutations. There’s quite a bit of more work we intend to do starting tomorrow for 1.5 but we feel like this release is much improved over the 1.3.2 drop we did 2 weeks ago.

Thanks for everyone’s patience and assistance during this time. We fixed well over 200 reported bugs as well as worked through many many more we found in our own testing. There’s a lot of great improvements in this release and a few new things. The full release notes can be found on the documentation page for the release.

Next up is 1.5. We’ll be publishing more information about the next release once we’ve had some time to rest, review with the engineering, support and QA teams and write it all up.

We also have a bunch of new high quality documentation that will roll out soon, thanks to two of our newest members of our official Training team we added awhile back. We hope to have more information about that very soon. Stay tuned!

UPDATE (7/27 10:30PM ):

There’s a logging issue that Apple introduced with 4.0.1 that affects logging while running your app in the simulator.

You can get the hot patch for this by downloading this file (name it Drop this into your /Library/Application Support/Titanium/mobilesdk/osx/1.4.0/iphone directory. Make sure that you chmod a+x the file to make it executable. No need to restart Titanium Developer. Just re-launch your app in the simulator.


  1. There is no Hallmark card to say how much we appreciate the dedication and hard work from the Appcelerator team! Keep up the great work!

  2. Congratulations!

    Except it seems that logging is still broken (

    Your API docs aren’t up to date, so I can’t see how to use Geolocation.purpose (it appears to do nothing for my app).

    Table rows don’t render at all anymore either.

    Did I get some bum build?

    • @Paul – yeah, looks like our push of docs didn’t pick up the Geo change. We’ll address that tomorrow. We’ve also had a few people report logging issues but we can’t (yet) reproduce it as it’s working with us fine. On the table rows, we’ve got many unit tests around that so most likely it could be something that got fixed and maybe broke something on your end or something weird like that. can you pastie some sample code we can test on our end?

  3. @Trong – if you look under build/iphone/build/build.log – there should be a error in that file that explains why packaging failed. You can either post the pastie to that or open Helpdesk issue.

  4. Started a new iPad project and only put an info log in app.js

    Output from debug log doesn’t show the message I expected:

    [INFO] iPhone SDK version: 4.0
    [DEBUG] executing command: /usr/bin/killall iPhone Simulator
    [DEBUG] No matching processes belonging to you were found
    [DEBUG] finding old log files
    [DEBUG] executing command: mdfind -onlyin /Users/paularms/Library/Application Support/iPhone Simulator/4.0 -name 417046da-cd7c-4c5f-bbd5-c789a424b466.log
    [INFO] Launching application in Simulator
    [DEBUG] App Spec: specified by path /Users/paularms/Documents/Projects/cubiclewindow/CubicleWindow/build/iphone/build/Debug-iphonesimulator/
    [DEBUG] SDK Root: path=/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.0.sdk version=4.0 name=Simulator – iPhone OS 4.0
    [DEBUG] using device family ipad
    [INFO] Launched application in Simulator (3.51 seconds)
    [DEBUG] Session started
    [DEBUG] executing command: xcodebuild -version
    [DEBUG] Xcode 3.2.3
    [DEBUG] Component versions: DevToolsCore-1691.0; DevToolsSupport-1591.0
    [DEBUG] BuildVersion: 10M2262

  5. As for tables, it appears rows can’t have anything added to them anymore:

    The following will just give me a single row with nothing in it. In the previous version, it would render the label correctly into the row.
    var thewindow = Ti.UI.createWindow({});

    var table = Ti.UI.createTableView({
    height: 44

    var row_label = Ti.UI.createLabel({
    text: ‘Foobar’
    var row = Ti.UI.createTableViewRow({});

  6. @paul, I just figured out the problem.

    Apple’s update for 4.0.1 seems to break their normal versioning. Everywhere for 4.0.1 reports 4.0 but for logging they now use 4.0.1. I should have a patch you can apply here in a few minutes once I can figure out how to determine if you’ve got the patch applied.

  7. For your table row, you have no “height” or “width” on your label. You’ll need to set them to “auto” if you want them to automatically use the sized width of the text. This was an error in an earlier release and I guess when we fixed this it broke any apps that incorrectly assumed auto. The assumption for positioning constraints in undefined – which in certain components would position in the “middle”. Sorry ’bout that.

  8. Here’s the hot patch for simulator logging issues specific to 4.0.1 SDK update.

    You can drop this file into

    /Library/Application Support/Titanium/mobilesdk/osx/1.4.0/iphone

    directory. No need to restart Titanium Developer. Simply restart your application.

  9. I cannot package my project when choosing sdk 1.4 or 1.3. The error message “Packaging error” appears (very disappointed). Anyway, thanks for your hard work.

  10. Thank you Appcelerator Team, for working so hard on this release. I’m sure it’s worth the wait. Titanium DOES rock!

  11. Well done guys.
    Really glad to see you got to the bottom of the iPhone logging issue….Now go and get some much deserved sleep and dream up some more really cool ideas….

  12. Umm… sorry if this is a dumb question, but this is my first SDK upgrade.

    How does one go about upgrading to 1.4?

    I downloaded the 1.4 stuff from GitHub, and put the contents in /Library/Application Support/Titanium/mobilesdk/osx/1.4.0/

    Is that all there is to it?

    • @Clifton. Titanium Developer will automatically notify you and upgrade for you. If you look up in the top right hand window, there should be a notice and link you can click on. It only periodically checks, so if you want to force it you can restart Titanium Developer. Otherwise, you could build from github and just install the zip directly, too by extracting into /Library/Application Support/Titanium and restarting developer.

  13. Thanks to all concerned for your hard work, it is much appreciated even though sometimes all you hear is people moaning!

  14. @Jeff – I’ve copy the logging patch, but the problem still remains, no log messages in Titanium Developer (Mobile SDK 1.4.0, iOS 4.0.1, KitchenSink from source).

  15. @Jeff. Here is the error message in build.log file

    ** BUILD FAILED **

    The following build commands failed:
    PhaseScriptExecution Pre-Compile /omnirepos/Test/build/iphone/build/
    (1 failure)


    Exception detected in script:
    Traceback (most recent call last):
    File “/Library/Application Support/Titanium/mobilesdk/osx/1.4.0/iphone/”, line 1015, in main
    execute_xcode(“iphoneos%s” % iphone_version,args,False)
    File “/Library/Application Support/Titanium/mobilesdk/osx/1.4.0/iphone/”, line 758, in execute_xcode
    output =,False,False,o)
    File “/Library/Application Support/Titanium/mobilesdk/osx/1.4.0/iphone/”, line 31, in run
    SystemExit: 1

    And I see that sdk 1.4 doesn’t have swipe event. Is it removed in sdk 1.4?

  16. Hi there, thanks for this big effort to get 1.4 out !

    I got an error on a completly blank project (created before 1.4)

    ** BUILD FAILED **

    The following build commands failed:
    CompileC build/ “/Users/bgp/Mobile Dev/Titanium/blank/build/iphone/Classes/TiMapView.m” normal i386 objective-c
    (1 failure)


    Exception detected in script:
    Traceback (most recent call last):
    File “/Library/Application Support/Titanium/mobilesdk/osx/1.4.0/iphone/”, line 836, in main
    execute_xcode(“iphonesimulator%s” % iphone_version,[“GCC_PREPROCESSOR_DEFINITIONS=__LOG__ID__=%s DEPLOYTYPE=development TI_DEVELOPMENT=1 DEBUG=1 TI_VERSION=%s” % (log_id,sdk_version)],False)
    File “/Library/Application Support/Titanium/mobilesdk/osx/1.4.0/iphone/”, line 758, in execute_xcode
    output =,False,False,o)
    File “/Library/Application Support/Titanium/mobilesdk/osx/1.4.0/iphone/”, line 31, in run
    SystemExit: 1

    Tell me if you need more details 😉

    Have a good day guys

  17. I haven’t had logging working for some time (at least since 4.0.1, but possibly earlier).

    In terms of this patch, it looks like the code in is also going for the simulator in the 4.0 directory, and I don’t see any of the print statements in appear in the console, let alone the log from the application (I’ve put in the hot patch). So the subprocess.POpen is called on (and looks like the right one is called), but then I can’t find the actually running (don’t know squat about python.

    So far I’ve been looking at the log in Console, since it seemed to be popping up there, but even that doesn’t seem to be happening right now. Very frustrating.

  18. Great work getting this out. While we can’t complain about a free product, it’s unfortunate that there is quite a large gap growing between the actual iOS API and the Titanium iPhone API. I’m not sure if it’s going to tip the scale for me yet, as Titanium makes development quite a bit easier for me personally, but the lag in features available can make or break some companies, or ideas. All the same, keep up the good work, but wanted to share my feelings on the state of Titanium for iPhone.

  19. Sorry, still investigating, but this log comment from

    [DEBUG] executing command: mdfind -onlyin /Users/lukas/Library/Application Support/iPhone Simulator/4.0 -name edf1a787-e9e2-469b-8183-366ef6d92f79.log

    when in reality, the log is in the 4.0.1 directory:

    mdfind -onlyin /Users/lukas/Library/Application Support/iPhone Simulator/ -name edf1a787-e9e2-469b-8183-366ef6d92f79.log
    /Users/lukas/Library/Application Support/iPhone Simulator/4.0.1/Applications/B89F7020-4D55-4DA5-9D2C-018249B2017B/Documents/edf1a787-e9e2-469b-8183-366ef6d92f79.log

  20. OK, the fix works!, but!!!!

    I ended up setting the permissions on incorrectly, which was causing execution of the logger to fail. No error whatsoever is reported.

    After putting in place, you need to execute:

    chmod +x

    Also, the cleanup of old log files in needs to be patched as well.

  21. Installed the 1.4 update, with the latest iOS 4.01 SDK. Tested all 4 of our Apps in the simulator and the device. Happy to report they are all running great!

    Thanks again for the hard work guys!

  22. iphone contacts still not working in 1.4. This has been a problem for several releases now, but the contact picker is broken.

    Kitchen Sink displays “[ERROR] Script Error = Result of expression ‘contacts’ [null] is not an object. at contacts.js (line 10).” Kitchen Sink is failing on this call “Titanium.Contacts.getAllContacts();” My app is failing on “Titanium.Contacts.showContactPicker()”.

    This has been a problem since at least 1.3.2 and I reported it when the 1.3.3 beta was released. I’ll investigate further and report anything I find. I’d hope bugs that break existing functionality would be high priority.

  23. I was able to install 1.4 no problem, and my app ran just fine. Unfortunately it doesn’t seem like your 200 fixes included the TableView performance bug. It still takes 12 seconds for my TableView to draw 64 rows on my iPhone 3GS. Each row just has 2 different Titanium.UI.Label objects. I know I’m not the only one who was noticing this. Is it on your radar? This fix was what I was hoping for in 1.4.

  24. Curtis, if you could please provide more information on your problem either via a bug report on our Lighthouse page, or send me an email directly with your sample code that you’re using (including information about how many contacts are stored on the device) I can look into your problem. Contacts has not been an issue in testing for us.

  25. @Daniel – is this for android or iphone? we’re definitely not seeing any HTTPS issues. Can you give more details and example? are you using self-signed cert, etc.

    @Andrew – we made quite a number of performance improvements around table views. and our tests load much faster with many more elements and rows so probably something app specific. can you pastie some example of what you’re doing? are you using classNames on your rows?

  26. Congratulations Titanium team for the release.

    Thanks @Lukas Oberhuber for finding the permissions issue.

    @Jeff, it might be handy if you can update the blog to alert the user to give execute permissions for file.

  27. @Bryan – thanks, we’ll looking this. this appears related to a fix for UTF-8 character escaping that was fixed in URLs but breaks this case above. I’ll open an issue and we’ll have that fixed soon. Thanks.

  28. Jeff,

    There is a thread on the QA on HTTPS being broken. This broke in a fairly recent build as we were using the nightly from a week or two ago with no issue. URL formats like this: will fail 100% of the time. Take out https and just go with http and it works fine. Our cert is not self signed.

  29. Are you sure that this is the final 1.4?

    Apps that worked fine for 1.3.2 (and even some nightlies prior 1.4) worked just fine. Now they have tons of UI problems (scrolls do not work properly, some buttons too, activity indicator gets jammed) not to mention sockets on iPhone and stuff I haven’t yet tested.

    My question is, if there is going to be another update soon I would not bother trying to work around the issues. Otherwise I might have to.


  30. Jeff, after i copy into users/luna/Library/Application Support/Titanium/mobilesdk/osx/1.4.0/iphone, restart Titanium and launch app in simulator, the stop button in console not have effect. I can’t stop de app from Titanium. I use iOS SDK 4.0.1 and SDK 1.4. Thanks.

  31. Went to add the logging hot patch and found that i don’t have a /mobilesdk/osx/1.4.0 folder. i’m up-to-date on everything and the Ti 1.4 sdk is running fine. can’t figure out what i’m missing. can i just create this folder? thx!

  32. I agreed with Daniel posts, HTTPClient in 1.4 is broken…failed completely. Reversed back to 1.3.2 or 1.3.3 work perfectly.

  33. I have just done a clean install of Titanium Developer with 1.4 sdk. I also added the logger fix AND chgmod +x

    A clean new project ( with nothing added after create) runs fine.

    I then downloaded kitchensink, imported it and tried to build. It failed with the following in the log. It looks like is looking in the wrong place.

    Performing clean build…

    Exception detected in script:
    Traceback (most recent call last):
    File “/Users/johnoakley/Library/Application Support/Titanium/mobilesdk/osx/1.4.0/iphone/”, line 835, in main
    File “/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/”, line 88, in copy
    copyfile(src, dst)
    File “/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/”, line 53, in copyfile
    fdst = open(dst, ‘wb’)
    IOError: [Errno 2] No such file or directory: u’/Users/johnoakley/apps/KitchenSink/build/iphone/Classes/defines.h’

  34. Stephen,
    Contacts are working properly. I had old syntax in Titanium.Contacts.showContactsPicker() instead of Titanium.Contacts.showContacts(). I think that must have changed from 1.3.2 go 1.3.3. Not sure how I missed that or if it were in the release notes. I know I saw more than a few developers thinking it was broken in new releases.

    Thanks for the reply!

    PS. When can I get some Android love for Contacts? 🙂

  35. This must have been a nightmare to do, so all your hard work is appreciated…even if my next message is to moan about something 🙂 LOL

Comments are closed.