{ "id": "61673", "key": "TIMOB-1041", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "11239", "name": "Release 1.6.0 M06", "archived": true, "released": true, "releaseDate": "2011-01-24" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2011-04-17T01:55:02.000+0000", "created": "2011-04-15T02:42:09.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [ "application", "binary", "developer", "feature", "ios", "ipad", "iphone", "release-1.6.0", "rplist", "titanium", "universal" ], "versions": [], "issuelinks": [], "assignee": { "name": "kwhinnery", "key": "kwhinnery", "displayName": "Kevin Whinnery", "active": true, "timeZone": "America/Chicago" }, "updated": "2011-04-17T01:55:02.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "{html}

It would be good to support iPhone/iPad projects in the same\nTitanium project so that developers could build universal binaries.\nIt's an oft requested feature from folks to the community, so I\nthought I would put in a ticket so folks could track its\nprogress.

{html}", "attachment": [], "flagged": false, "summary": "Universal binary support", "creator": { "name": "kevinwhinnery", "key": "kevinwhinnery", "displayName": "kevinwhinnery", "active": false, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "kwhinnery", "key": "kwhinnery", "displayName": "Kevin Whinnery", "active": true, "timeZone": "America/Chicago" }, "environment": null, "comment": { "comments": [ { "id": "124628", "author": { "name": "pedrob.", "key": "pedrob.", "displayName": "Pedro B.", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

This should definitely go into the \"ToDo\", instead of just being\npart of a \"WishList\".

{html}", "updateAuthor": { "name": "pedrob.", "key": "pedrob.", "displayName": "Pedro B.", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:42:10.000+0000", "updated": "2011-04-15T02:42:10.000+0000" }, { "id": "124629", "author": { "name": "damienelmes", "key": "damienelmes", "displayName": "Damien Elmes", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

What I'm worried about is if there are two similar applications,\none of which has iPad support as well, the customer is\nunfortunately less likely to choose the Ti one.

{html}", "updateAuthor": { "name": "damienelmes", "key": "damienelmes", "displayName": "Damien Elmes", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:42:10.000+0000", "updated": "2011-04-15T02:42:10.000+0000" }, { "id": "124630", "author": { "name": "mofle", "key": "mofle", "displayName": "Sindre Sorhus", "active": true, "timeZone": "Europe/Oslo" }, "body": "{html}

This should really be a part of 1.5.0

{html}", "updateAuthor": { "name": "mofle", "key": "mofle", "displayName": "Sindre Sorhus", "active": true, "timeZone": "Europe/Oslo" }, "created": "2011-04-15T02:42:11.000+0000", "updated": "2011-04-15T02:42:11.000+0000" }, { "id": "124631", "author": { "name": "cameron", "key": "cameron", "displayName": "Cameron", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Bit surprised it wasn't done like this to begin with - how is\nipad different from other mobile devices?

{html}", "updateAuthor": { "name": "cameron", "key": "cameron", "displayName": "Cameron", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:42:12.000+0000", "updated": "2011-04-15T02:42:12.000+0000" }, { "id": "124632", "author": { "name": "brionvibber", "key": "brionvibber", "displayName": "Brion Vibber", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Some hints on how 'universal apps' work: \nhttp://oleb.net/blog/2010/04/universal-app-is-not-a-universal-binary/

\n

Unlike the 'universal binary' system for PPC+Intel or\narmv6+armv7, this actually runs the exact same code on\nboth systems. It's more like checking what version of OS X you're\nrunning on and tailoring your library calls to either use or avoid\nnew features, rather than building separate binaries for each\nsystem.

\n

A few general notes:
\nTARGETED_DEVICE_FAMILY should be set to the 'iPhone/iPad'\noption (3?) any alternate code paths between iPhone and iPad\nneed to be selectable at runtime. The link above has examples of\nhow to check this. * Since a single .app bundle and binary will be\nrun on both systems, any needed resources for both need to be\nincluded; that means things like the application icon and\ndefault.png splash screen need to be separately settable for iPhone\nand iPad, but coexisting in the same project and the same output\nbuild.

{html}", "updateAuthor": { "name": "brionvibber", "key": "brionvibber", "displayName": "Brion Vibber", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:42:12.000+0000", "updated": "2011-04-15T02:42:12.000+0000" }, { "id": "124633", "author": { "name": "damienelmes", "key": "damienelmes", "displayName": "Damien Elmes", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

I shipped the latest version of my app with the build hack you\nguys provided, and apart from table view backgrounds it's been\nrunning fine, and has resulted in a lot of happy iPad users.

{html}", "updateAuthor": { "name": "damienelmes", "key": "damienelmes", "displayName": "Damien Elmes", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:42:13.000+0000", "updated": "2011-04-15T02:42:13.000+0000" }, { "id": "124634", "author": { "name": "panman", "key": "panman", "displayName": "PanMan", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

@Damien which Build Hack are you referring to?? Any\npointers?

{html}", "updateAuthor": { "name": "panman", "key": "panman", "displayName": "PanMan", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:42:13.000+0000", "updated": "2011-04-15T02:42:13.000+0000" }, { "id": "124635", "author": { "name": "ctredway1", "key": "ctredway1", "displayName": "ctredway", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Its not really a hack, its adding a device family (iPad) to the\nbuilder.py file. If you go to HD/Library/Application\nSupport/Titanium/mobilesdk/osx/the_build_you_are_using/iphone/builder.py\nline 682 and TARGETED_DEVICE_FAMILY=1 to TARGETED_DEVICE_FAMILY=1,2\nand that will work.

{html}", "updateAuthor": { "name": "ctredway1", "key": "ctredway1", "displayName": "ctredway", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:42:14.000+0000", "updated": "2011-04-15T02:42:14.000+0000" }, { "id": "124636", "author": { "name": "blainhamon", "key": "blainhamon", "displayName": "Blain Hamon", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Either way, this is an Titanium Developer, not the runtime\nissue. (Setting up the info.plist right). Bouncing back to\nRalf.

{html}", "updateAuthor": { "name": "blainhamon", "key": "blainhamon", "displayName": "Blain Hamon", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:42:14.000+0000", "updated": "2011-04-15T02:42:14.000+0000" }, { "id": "124637", "author": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "body": "{html}

A pro client is interested in this feature.

\n

Associated Helpdesk Ticket

\n

http://developer.appcelerator.com/helpdesk/view/65581

{html}", "updateAuthor": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "created": "2011-04-15T02:42:15.000+0000", "updated": "2011-04-15T02:42:15.000+0000" }, { "id": "124638", "author": { "name": "jacquescrocker", "key": "jacquescrocker", "displayName": "Jacques Crocker", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

+1

\n

currently working with the hack solution provided, but would be\nreally great to have this streamlined.

\n

thanks!

{html}", "updateAuthor": { "name": "jacquescrocker", "key": "jacquescrocker", "displayName": "Jacques Crocker", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:42:15.000+0000", "updated": "2011-04-15T02:42:15.000+0000" }, { "id": "124639", "author": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

ETA is end of week. Lots of builder changes to go along with\nthis.

{html}", "updateAuthor": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:42:15.000+0000", "updated": "2011-04-15T02:42:15.000+0000" }, { "id": "124640", "author": { "name": "doney", "key": "doney", "displayName": "Doney", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Great that this is being worked on. For now, using the hack\nsolution, is there a way to define an iPad version of the\nDefault.png image that you see when the app opens up?

{html}", "updateAuthor": { "name": "doney", "key": "doney", "displayName": "Doney", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:42:15.000+0000", "updated": "2011-04-15T02:42:15.000+0000" }, { "id": "124641", "author": { "name": "damienelmes", "key": "damienelmes", "displayName": "Damien Elmes", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

It's covered in the Apple docs. Put the images in the iphone\nfolder rather than the resources directory.

{html}", "updateAuthor": { "name": "damienelmes", "key": "damienelmes", "displayName": "Damien Elmes", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:42:16.000+0000", "updated": "2011-04-15T02:42:16.000+0000" }, { "id": "124642", "author": { "name": "jhaynie", "key": "jhaynie", "displayName": "Jeff Haynie", "active": false, "timeZone": "America/Los_Angeles" }, "body": "{html}

(from [61fbf1550144115ed21cdaf69c37d24d85d1afbb])\n[#1041 state:fixed-in-qa] Addition of universal\nbinary support to build scripts. \nhttps://github.com/appcelerator/titanium_mobile/commit/61fbf1550144...

{html}", "updateAuthor": { "name": "jhaynie", "key": "jhaynie", "displayName": "Jeff Haynie", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:42:16.000+0000", "updated": "2011-04-15T02:42:16.000+0000" }, { "id": "124643", "author": { "name": "doney", "key": "doney", "displayName": "Doney", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Good job Jeff, now can you give a brief explanation on how to\nmake an app universal? :)

{html}", "updateAuthor": { "name": "doney", "key": "doney", "displayName": "Doney", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:42:16.000+0000", "updated": "2011-04-15T02:42:16.000+0000" }, { "id": "124644", "author": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Jeff didn't write this feature, I did.

\n

Wait for TiDev 1.3.0.

{html}", "updateAuthor": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:42:16.000+0000", "updated": "2011-04-15T02:42:16.000+0000" }, { "id": "124645", "author": { "name": "doney", "key": "doney", "displayName": "Doney", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Ah okay, my excuses Stephen, great job. Any ETA for TiDev\n1.3.0?

{html}", "updateAuthor": { "name": "doney", "key": "doney", "displayName": "Doney", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:42:16.000+0000", "updated": "2011-04-15T02:42:16.000+0000" }, { "id": "124646", "author": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

We're going to try and make it drop around the same time as\n1.6.0. You can take advantage of the new universal support by\nmanually using the builder.py script if you want but that's an\nexercise left to the reader.

{html}", "updateAuthor": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:42:16.000+0000", "updated": "2011-04-15T02:42:16.000+0000" }, { "id": "124647", "author": { "name": "penrique", "key": "penrique", "displayName": "Pedro Enrique", "active": false, "timeZone": "America/Los_Angeles" }, "body": "{html}

Same as:
\n\nhttps://appcelerator.lighthouseapp.com/projects/32238/tickets/2916-...

\n

Steps to take:

\n
\n1. Open Titanium Developer V. 1.3 (still in beta as of 01/26/2010)\n2. Create new project and select \"Universal iOS\"\n3. On \"Test and Package\" select iPhone and click \"Launch\"\n4. App launches in iPhone Simulator as an iPhone app.\n5. Click Stop\n6. Select iPad and click Launch\n7. App launches as in iPad Simulator as an iPad app.\n
\n

Working as expected.

\n

Ti SDK 1.6 (Jan 26 2011 16:47 rb481fe0b)
\nTi Dev. 1.3
\niPhone and iPad simulators 4.2

{html}", "updateAuthor": { "name": "penrique", "key": "penrique", "displayName": "Pedro Enrique", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:42:17.000+0000", "updated": "2011-04-15T02:42:17.000+0000" }, { "id": "124648", "author": { "name": "bricelechatellier", "key": "bricelechatellier", "displayName": "Brice Lechatellier", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

When using the hack, on the Iphone the splashscreen flashes\ntwice. It first loads Default.png then Default-Portrait.png\ntargeted to the iPad.

\n

Is there a workaround or will that be fixed in the new\nrelease?

{html}", "updateAuthor": { "name": "bricelechatellier", "key": "bricelechatellier", "displayName": "Brice Lechatellier", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:42:17.000+0000", "updated": "2011-04-15T02:42:17.000+0000" }, { "id": "124649", "author": { "name": "stefanocecere(atkrur)", "key": "stefanocecere(atkrur)", "displayName": "Stefano Cecere (at krur)", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

hi.. how can i compile Titanium Developer beta 1.3 from sources?\n(https://github.com/appcelerator/titanium_developer\n) ?

\n

opening that project with Titanium Developer 1.2.1 and creating\na package, it gives error (like \"the app was created by a different\nuser\")..

\n

any idea? or even better: any .dmg to download anywhere?

\n

thanks

{html}", "updateAuthor": { "name": "stefanocecere(atkrur)", "key": "stefanocecere(atkrur)", "displayName": "Stefano Cecere (at krur)", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:42:18.000+0000", "updated": "2011-04-15T02:42:18.000+0000" } ], "maxResults": 22, "total": 22, "startAt": 0 } } }