{ "id": "81742", "key": "TIMOB-5823", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "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": "15703", "description": "2013 Sprint 22", "name": "2013 Sprint 22", "archived": true, "released": true, "releaseDate": "2013-11-01" }, { "id": "15705", "description": "2013 Sprint 22 Core", "name": "2013 Sprint 22 Core", "archived": true, "released": true, "releaseDate": "2013-11-01" }, { "id": "14982", "description": "Release 3.2.0", "name": "Release 3.2.0", "archived": false, "released": true, "releaseDate": "2013-12-19" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2013-11-02T00:59:07.000+0000", "created": "2011-10-19T12:03:42.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "module_cli", "planning-3.2.0", "qe-closed-3.2.0" ], "versions": [], "issuelinks": [ { "id": "28145", "type": { "id": "10000", "name": "Blocks", "inward": "is blocked by", "outward": "blocks" }, "outwardIssue": { "id": "113399", "key": "TISTUD-4400", "fields": { "summary": "Update Studio workflows for iOS device launches, directly to the device", "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" } }, "priority": { "name": "Critical", "id": "1" }, "issuetype": { "id": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } } }, { "id": "32024", "type": { "id": "10020", "name": "Depends", "inward": "is dependent of", "outward": "depends on" }, "inwardIssue": { "id": "120228", "key": "TIDOC-1267", "fields": { "summary": "Guides: Update for new iOS device workflow", "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" } }, "priority": { "name": "Medium", "id": "3" }, "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } }, { "id": "18665", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "outwardIssue": { "id": "89826", "key": "TIMOB-8676", "fields": { "summary": "R&D: Prototype a method of deploying to iOS devices without iTunes", "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" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "5", "description": "The sub-task of the issue", "name": "Sub-task", "subtask": true } } } }, { "id": "30153", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "117032", "key": "TIMOB-14531", "fields": { "summary": "iOS: Install development app on device without iTunes or Xcode", "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" } }, "priority": { "name": "Low", "id": "4" }, "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } }, { "id": "33744", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "123554", "key": "TIMOB-15970", "fields": { "summary": "Can't select ad-hoc provisioning profile", "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" } }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "updated": "2016-07-07T09:06:49.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": "13103", "name": "CLI", "description": "Node-based command line interface" }, { "id": "10206", "name": "iOS", "description": "iOS Platform" }, { "id": "10207", "name": "Tooling" } ], "description": "When building to device, it would be good to build directly to the device rather then building, then having to sync via iTunes.\r\n\r\nHere is a good jumping off point:\r\nhttp://stackoverflow.com/questions/5010062/xcodebuild-simulator-or-device\r\n\r\nFor those people who wish to sync to iTunes, we will inject a fake \"device ID\" that represents iTunes Sync and this will revert to using the existing mechanism.", "attachment": [], "flagged": false, "summary": "iOS: Support building to device, directly to the device, skipping iTunes", "creator": { "name": "mofle", "key": "mofle", "displayName": "Sindre Sorhus", "active": true, "timeZone": "Europe/Oslo" }, "subtasks": [], "reporter": { "name": "mofle", "key": "mofle", "displayName": "Sindre Sorhus", "active": true, "timeZone": "Europe/Oslo" }, "environment": "Mac OS X 10.7.2\r\nTitanium Studio 1.0.4\r\nTitanium Mobile 1.7.3", "comment": { "comments": [ { "id": "169713", "author": { "name": "mapperson", "key": "mapperson", "displayName": "Matthew Apperson", "active": true, "timeZone": "America/Los_Angeles" }, "body": "What are the specs of your box, because a \"warm\" run for me (just tested) takes about 2min.", "updateAuthor": { "name": "mapperson", "key": "mapperson", "displayName": "Matthew Apperson", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-10-19T12:05:31.000+0000", "updated": "2011-10-19T12:05:31.000+0000" }, { "id": "169715", "author": { "name": "mofle", "key": "mofle", "displayName": "Sindre Sorhus", "active": true, "timeZone": "Europe/Oslo" }, "body": "I'm on a MacBook Pro 3,1:\r\nProcessor 2,4 GHz Intel Core 2 Duo\r\nMemory 4 GB 667 MHz DDR2 SDRAM\r\nGraphics NVIDIA GeForce 8600M GT 256 MB\r\n\r\nBtw. 2 min is still too much for a hot start, in my opinion.\r\n\r\nMy test was just with the start project, a big project will probably take even more time.\r\n\r\nIs there a reason Titanium Studio can't deploy the app directly to the device like Xcode does?\r\n", "updateAuthor": { "name": "mofle", "key": "mofle", "displayName": "Sindre Sorhus", "active": true, "timeZone": "Europe/Oslo" }, "created": "2011-10-19T12:16:54.000+0000", "updated": "2011-10-19T12:16:54.000+0000" }, { "id": "170069", "author": { "name": "rseagraves", "key": "rseagraves", "displayName": "Reggie Seagraves", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Yes, deploying directly to a device requires the use of private undocumented Apple APIs. This is an ongoing area of research for our platform.", "updateAuthor": { "name": "rseagraves", "key": "rseagraves", "displayName": "Reggie Seagraves", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-10-21T09:53:23.000+0000", "updated": "2011-10-21T09:53:44.000+0000" }, { "id": "202679", "author": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Duplicate of install-to-device task: TIMOB-8676", "updateAuthor": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-07-11T10:04:45.000+0000", "updated": "2012-07-11T10:04:45.000+0000" }, { "id": "238570", "author": { "name": "ygbr", "key": "ygbr", "displayName": "Ygor Lemos", "active": true, "timeZone": "America/Sao_Paulo" }, "body": "Any news on that? I guess Rubymotion can deploy directly to device like XCode does using their rack scripts (maybe using xcodebuild under the hood?!?)\r\n\r\niTunes completely breaks the dev workflow as it is too slow and unpredictable (specially for people with lots of iOS devices and apps). If you have many apps chances are that the sync will take forever.\r\n\r\nWe really need to move this forward...", "updateAuthor": { "name": "ygbr", "key": "ygbr", "displayName": "Ygor Lemos", "active": true, "timeZone": "America/Sao_Paulo" }, "created": "2013-02-14T17:42:24.000+0000", "updated": "2013-02-14T17:42:24.000+0000" }, { "id": "252803", "author": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "body": "Please take a look at TIMOB-7053. I request that, since this is being built now, we implement the better workflow right from the get go. Maybe even bring parity to the platforms :)", "updateAuthor": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "created": "2013-05-20T15:46:37.000+0000", "updated": "2013-05-20T15:46:37.000+0000" }, { "id": "274441", "author": { "name": "farwayer", "key": "farwayer", "displayName": "Far", "active": true, "timeZone": "Europe/Minsk" }, "body": "I am using Intellij IDEA for developing with Titanium and it's real bad that there is no CLI command to run app directly on device without manipulation with iTunes sync.", "updateAuthor": { "name": "farwayer", "key": "farwayer", "displayName": "Far", "active": true, "timeZone": "Europe/Minsk" }, "created": "2013-10-09T20:22:31.000+0000", "updated": "2013-10-09T20:22:31.000+0000" }, { "id": "275420", "author": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "body": "Someone just pointed me to https://github.com/Sophrinix/xcode-build-to-device . Perhaps platform can borrow some command line commands :)", "updateAuthor": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "created": "2013-10-17T14:46:06.000+0000", "updated": "2013-10-17T14:46:06.000+0000" }, { "id": "275421", "author": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "updateAuthor": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2013-10-17T14:54:40.000+0000", "updated": "2013-10-17T14:54:40.000+0000" }, { "id": "275445", "author": { "name": "ygbr", "key": "ygbr", "displayName": "Ygor Lemos", "active": true, "timeZone": "America/Sao_Paulo" }, "body": "I second this one... This would make the iOS on-device testing far easier and remove crappy iTunes syncing with all its problems from the process.\r\n\r\nPlease consider merging this to master, developers are screaming for this! :)", "updateAuthor": { "name": "ygbr", "key": "ygbr", "displayName": "Ygor Lemos", "active": true, "timeZone": "America/Sao_Paulo" }, "created": "2013-10-17T18:01:19.000+0000", "updated": "2013-10-17T18:01:19.000+0000" }, { "id": "275452", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "I built a prototype using libimobiledevice back in Feb 2013, but I couldn't merge it because it was GPL licensed. I found a way to license it under LGPL and still use libimobiledevice. I'm racing to get this done for the 3.2 release. Stay tuned.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-10-17T18:13:25.000+0000", "updated": "2013-10-17T18:13:25.000+0000" }, { "id": "275527", "author": { "name": "farwayer", "key": "farwayer", "displayName": "Far", "active": true, "timeZone": "Europe/Minsk" }, "body": "Some time ago I found awesome TiShadow http://tishadow.yydigital.com. This allow to make changes in application without recompilation project. It's real speed up development process!", "updateAuthor": { "name": "farwayer", "key": "farwayer", "displayName": "Far", "active": true, "timeZone": "Europe/Minsk" }, "created": "2013-10-17T21:37:53.000+0000", "updated": "2013-10-17T21:39:12.000+0000" }, { "id": "275593", "author": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "[~farwayer], TiShadow is awesome but a whole different story. Let's keep this ticket about deploying the actual apps to devices.", "updateAuthor": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2013-10-18T07:59:53.000+0000", "updated": "2013-10-18T07:59:53.000+0000" }, { "id": "275617", "author": { "name": "farwayer", "key": "farwayer", "displayName": "Far", "active": true, "timeZone": "Europe/Minsk" }, "body": "Ok, I think that it may be temporary solution to someone.\r\nAbout libimobiledevice: as I know there is some problems with iOS7 now. But they promise to solve the problem soon.\r\n", "updateAuthor": { "name": "farwayer", "key": "farwayer", "displayName": "Far", "active": true, "timeZone": "Europe/Minsk" }, "created": "2013-10-18T10:52:22.000+0000", "updated": "2013-10-18T10:52:22.000+0000" }, { "id": "275618", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "[~farwayer] Yeah, I heard that too, but we only need 3% of libimobiledevice and I'm hoping that part isn't the part that has problems. :)", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-10-18T10:59:25.000+0000", "updated": "2013-10-18T10:59:25.000+0000" }, { "id": "275630", "author": { "name": "farwayer", "key": "farwayer", "displayName": "Far", "active": true, "timeZone": "Europe/Minsk" }, "body": "The problem is with new security check known as \"Trust dialog\". I don't know architecture of this lib so let's hope that everything will be fine.\r\nBut look like resolve this issue is necessary for any action with device.", "updateAuthor": { "name": "farwayer", "key": "farwayer", "displayName": "Far", "active": true, "timeZone": "Europe/Minsk" }, "created": "2013-10-18T13:20:16.000+0000", "updated": "2013-10-18T13:22:55.000+0000" }, { "id": "276146", "author": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "body": "I use libimobiledevice in SugarTi and it works pretty neat, you can have a look if you want - https://github.com/rborn/SugarTi/tree/dev\r\n", "updateAuthor": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "created": "2013-10-22T14:40:30.000+0000", "updated": "2013-10-22T14:40:30.000+0000" }, { "id": "276642", "author": { "name": "farwayer", "key": "farwayer", "displayName": "Far", "active": true, "timeZone": "Europe/Minsk" }, "body": "Dan Tamas, what iOS version you are using? This issue for iOS7 only.\r\nAnyway fix for this issue was merged to master today https://github.com/libimobiledevice/libimobiledevice/issues/20.", "updateAuthor": { "name": "farwayer", "key": "farwayer", "displayName": "Far", "active": true, "timeZone": "Europe/Minsk" }, "created": "2013-10-24T18:16:04.000+0000", "updated": "2013-10-24T18:16:39.000+0000" }, { "id": "276649", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Quick update: After analyzing and comparing libimobiledevice to a reverse engineered MobileDevice.framework, we are going down the path of using MobileDevice.framework. Many factors went into this decision. Using MobileDevice allows us to avoid LGPL, easier to wrap in a Node.js C++ addon and thus cleaner integration into the Titanium CLI, and I don't have to spend time trying to build libimobiledevice for Mac OS X. I did prototypes of each and MobileDevice is the better way for what we are trying to accomplish. libimobiledevice isn't entirely out of the running; I have plans to use it on something else. We may have to ditch MobileDevice if I run into issues which I'll know in the next day.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-10-24T18:32:12.000+0000", "updated": "2013-10-24T18:32:12.000+0000" }, { "id": "276656", "author": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "body": "Cool Chris, keep us posted please :)\r\n\r\n@Far - Last deploy using SugarTi was done on a 7.0., but as I said, for me is working pretty smooth, I don't have any issue.\r\nAnyway, if the license is an issue for Ti, there is no way to use it.\r\n\r\n", "updateAuthor": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "created": "2013-10-24T18:47:01.000+0000", "updated": "2013-10-24T18:47:01.000+0000" }, { "id": "276745", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Titanium CLI pull request: https://github.com/appcelerator/titanium/pull/63\r\nTitanium Mobile (master branch) pull request: https://github.com/appcelerator/titanium_mobile/pull/4857\r\n\r\nNOTE: These PRs do NOT resolve this ticket! Still need to add --device-id support the iOS build.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-10-25T07:52:37.000+0000", "updated": "2013-10-25T21:37:05.000+0000" }, { "id": "276816", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Here's a link to the world's most awesome iOS device module written by yours truly: https://npmjs.org/package/node-ios-device", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-10-25T18:00:49.000+0000", "updated": "2013-10-25T18:00:49.000+0000" }, { "id": "276821", "author": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "body": "@[~cbarber] can't wait to play with :)", "updateAuthor": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "created": "2013-10-25T18:24:50.000+0000", "updated": "2013-10-25T18:24:50.000+0000" }, { "id": "276908", "author": { "name": "francoisvl", "key": "francoisvl", "displayName": "Francois van Lille", "active": true, "timeZone": "Australia/Sydney" }, "body": "Gave node-ios-device a whirl, but...\r\n\r\n-- it installed without a hitch,\r\n-- it successfully identified my connected device (an iPad 3 running 7.02), but\r\n-- calling installApp just returned \"[Error: Failed to copy app to device (-402653177)]\"\r\n\r\nI pointed to the .app file generated by ti build at \"/build/iphone/build/Debug-iphonesimulator/.app\".\r\nAny ideas?\r\nWould be pretty sweet to get this working (congratulations on whipping up the module, btw)...", "updateAuthor": { "name": "francoisvl", "key": "francoisvl", "displayName": "Francois van Lille", "active": true, "timeZone": "Australia/Sydney" }, "created": "2013-10-27T05:45:39.000+0000", "updated": "2013-10-27T05:45:39.000+0000" }, { "id": "276909", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "[~francoisvl] You can't install a Titanium app that was built for the simulator for 2 reasons:\n\n1) This library cannot install an app if the .app folder contains symlinks, which simulator builds do. We symlink as many files as possible for speed. I've updated the library to display a more meaningful message in this case.\n\n2) You still need to sign the app with a valid provisioning profile, which simulator builds skip. Do a device build and then try installing the app again. It should work like a champ.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-10-27T08:26:30.000+0000", "updated": "2013-10-27T08:26:30.000+0000" }, { "id": "276912", "author": { "name": "dezinezync", "key": "dezinezync", "displayName": "Nikhil N", "active": true, "timeZone": "America/Los_Angeles" }, "body": "This just works so damn well! I'll probably have to write a CLI based wrapper around this, so one can quickly invoke it to see a list of connected devices, select one, and point to the path of the .app file to install it. Great work!", "updateAuthor": { "name": "dezinezync", "key": "dezinezync", "displayName": "Nikhil N", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-10-27T10:42:01.000+0000", "updated": "2013-10-27T10:42:01.000+0000" }, { "id": "276914", "author": { "name": "dezinezync", "key": "dezinezync", "displayName": "Nikhil N", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I've written a quick CLI implementation for this. Can someone please help with converting this bit to a NPM package https://github.com/dezinezync/DZMob Cheers!", "updateAuthor": { "name": "dezinezync", "key": "dezinezync", "displayName": "Nikhil N", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-10-27T11:18:57.000+0000", "updated": "2013-10-27T11:18:57.000+0000" }, { "id": "276920", "author": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Awesome [~dezinezync], event better would be to just loop all devices and transfer the app in {{/build/iphone...}} to all of them :)\r\n\r\n[~cbarber], I guess you will add this to the {{titanium}} CLI?", "updateAuthor": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2013-10-27T12:36:13.000+0000", "updated": "2013-10-27T12:36:13.000+0000" }, { "id": "276928", "author": { "name": "sophrinix", "key": "sophrinix", "displayName": "Andrew McElroy", "active": true, "timeZone": "America/Los_Angeles" }, "body": "One thing to keep in mind when using the mobiledevice library ( I ran into this with b2i) is that sometimes it will build the project in the DerivedData folder and completely fail to copy over assets.\r\n\r\nhttp://blog.codexlabs.com/blog/2013/09/22/titanium-alloy-app-js-not-found-what-is-going-on-and-how-to-fix-it/\r\n\r\nThis is why build-to-xcode https://github.com/Sophrinix/xcode-build-to-device is written the way it is.\r\n\r\n xcodebuild -project \"`pwd`\"/build/iphone/*.xcodeproj -configuration Debug -sdk iphoneos CONFIGURATION_BUILD_DIR=\"`pwd`/build/iphone/build/\"\r\n\r\n\r\nI specifically had to make sure that I knew where the project was being built, so that it would copy over my assets reliably. \r\n\r\n\r\nLast note:\r\nAt the end of the day the only reason why I used MobileDevice library is because I needed the private API call AMDeviceSecureTransferPath\r\n\r\n\r\nI really hope this feature makes it in to 3.2.0. If there's anything I can do to move this along, please let me know.", "updateAuthor": { "name": "sophrinix", "key": "sophrinix", "displayName": "Andrew McElroy", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-10-27T16:25:22.000+0000", "updated": "2013-10-27T16:25:22.000+0000" }, { "id": "276934", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "[~dezinezync] Awesome! I had thought of including something similar directly in node-ios-device, but didn't have time. Plus I didn't want to introduce dependencies like Commander, so if we could make a dependency free version, then we could just add it to node-ios-device itself.\n\n[~fokke] and everyone, you will be able to run {{\"ti info \\-t ios\"}} to get all attached devices. If you're writing tooling, you can also run {{\"ti info \\-t ios \\-o json\"}} to make the output easier to parse. {{\"ti info\"}} in 3.2 will also return attached Android devices as well as iOS Simulators and Android emulators (including Genymotion). Quick note on the iOS Simulators: I have introduced the concept of iOS Simulator profiles that set the {{\"\\-\\-sim-type\"}}, {{\"\\-\\-retina\"}}, {{\"\\-\\-tall\"}}, and {{\"\\-\\-sim-64bit\"}} just by select a profile such as \"iPhone Retina (4 inch)\".\n\nIn Titanium 3.2, when you do an iOS device build, you will be required to specify the {{\"\\-\\-device-id \"}} option. It defaults to {{\"itunes\"}} and installs apps the same as today. There is a CLI config option called {{\"ios.autoSelectDevice\"}} that defaults to {{true}}. So if you do not specify {{\"\\-\\-device-id\"}} and {{\"ios.autoSelectDevice\"}} is {{true}}, it'll install the app using iTunes. If you do not specify {{\"\\-\\-device-id\"}} and {{\"ios.autoSelectDevice\"}} is {{false}}, then it will prompt you with a list of connected iOS devices using my handy dandy fields (https://npmjs.org/package/fields) node module.\n\nI'm hoping that the integration of node-ios-device into the CLI will be so smooth that you won't need additional tools to install iOS apps to a device.\n\n[~sophrinix] I'm hoping to avoid a lot of those issues since node-ios-device will only be called for device builds and device builds do not symlink files and forces you to select a provisioning profile. Don't worry, this stuff will all be sorted out in the next couple days. When this ticket is resolved, that means it will have been merged into master and you can play with it. :)", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-10-27T18:42:56.000+0000", "updated": "2013-10-27T18:42:56.000+0000" }, { "id": "276936", "author": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "[~cbarber] this will be awesome!\r\n\r\nWhy not, when no {{device-id}} is given, install the app to all connected devices, without iTunes?", "updateAuthor": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2013-10-27T19:09:48.000+0000", "updated": "2013-10-27T19:09:48.000+0000" }, { "id": "276947", "author": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "body": "Cool stuff guys, I think I'm going to steal some code from each of you and use it in SugarTi :)", "updateAuthor": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "created": "2013-10-28T09:17:23.000+0000", "updated": "2013-10-28T09:17:23.000+0000" }, { "id": "276995", "author": { "name": "dezinezync", "key": "dezinezync", "displayName": "Nikhil N", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~cbarber] I shall try that out.\r\n\r\n[~fokke] Interesting point! Shall implement that first thing tomorrow morning. \r\n\r\n\r\nI've updated the repo to include details about using the script as is directly as a non-npm version. Once I refactor it to work without commander, I'll send a PR to the mothership repo.", "updateAuthor": { "name": "dezinezync", "key": "dezinezync", "displayName": "Nikhil N", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-10-28T17:23:04.000+0000", "updated": "2013-10-28T17:23:04.000+0000" }, { "id": "277624", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Final pull request? https://github.com/appcelerator/titanium_mobile/pull/4898", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-11-01T06:23:26.000+0000", "updated": "2013-11-01T06:23:26.000+0000" }, { "id": "277844", "author": { "name": "likeant", "key": "likeant", "displayName": "likeant", "active": true, "timeZone": "Asia/Shanghai" }, "body": "how to pull request ??", "updateAuthor": { "name": "likeant", "key": "likeant", "displayName": "likeant", "active": true, "timeZone": "Asia/Shanghai" }, "created": "2013-11-02T18:22:30.000+0000", "updated": "2013-11-02T18:22:30.000+0000" }, { "id": "283695", "author": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Closing ticket as fixed. Verified I was able to build apps directly to device.\n\nTested on:\n\nAppcelerator Studio, build: 3.2.0.201312091648\nSDK build: 3.2.0.v20131210112451\nCLI: 3.2.0-cr\nAlloy: 1.3.0-cr\nXcode: 5.0.2\nDevice: iphone 5 (7.0.2), iphone 4s (6.0.1)", "updateAuthor": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2013-12-11T00:17:21.000+0000", "updated": "2013-12-11T00:17:21.000+0000" }, { "id": "287622", "author": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~cbarber] I sometimes have issues with deploying to the device (ios)\r\nI get this\r\n{code}\r\n[INFO] Installing app on device: Muf\r\n[ERROR] Failed to install app on device (0xe800002d)\r\n[INFO] Project built successfully in 1m 21s 225ms\r\n{code}\r\n\r\nand I either need to rebuild few times, which is painful or deploy using other ways.\r\nAny idea what can be wrong?\r\n\r\nThnx\r\n", "updateAuthor": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "created": "2014-01-10T13:13:10.000+0000", "updated": "2014-01-10T13:13:10.000+0000" }, { "id": "287623", "author": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "body": "Oh, and sometimes it doesn't even start the install.\r\n{code}\r\n[TRACE] ** BUILD SUCCEEDED **\r\n[LiveView] No active servers\r\n[INFO] Project built successfully in 55s 126m\r\n{code}\r\n\r\nand exists here.", "updateAuthor": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "created": "2014-01-10T13:17:14.000+0000", "updated": "2014-01-10T13:17:14.000+0000" }, { "id": "287624", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "[~rborn] I've certainly seen the \"Failed to install app on device\", but I don't recall if I've specifically seen the error \"0xe800002d\". Some of these errors are borderline impossible to reproduce. You just need to be in a funky state.\n\nTurns out you can Google \"0xe800002d\" or any other hex error code and almost always find a bunch of relevant results. Based on some quick searching, some people claim to resolve it by restarting the device, restarting the device AND doing an iTunes sync, or by backing up, then restoring the device. Another guy said turn off the device, deauthorize iTunes, authorize iTunes, turn on device.\n\nSince restarting the device is pretty easy, try that. Possibly do a quick iTunes sync after restarting.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2014-01-10T13:42:11.000+0000", "updated": "2014-01-10T13:42:11.000+0000" }, { "id": "287625", "author": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "body": "Did so, it seems to have the same issues with fruitstrap. Interesting because libmobiledevice almost never fails.\r\nDon't take me wrong, I'm just saying :)", "updateAuthor": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "created": "2014-01-10T13:52:52.000+0000", "updated": "2014-01-10T13:52:52.000+0000" }, { "id": "287626", "author": { "name": "ygbr", "key": "ygbr", "displayName": "Ygor Lemos", "active": true, "timeZone": "America/Sao_Paulo" }, "body": "I got this bizarre hex error and found out somewhere that reinstalling MobileDevice.pkg would solve it... I did it and indeed it solved the matter.\r\n\r\nGo to /Applications/, do a Show Package Contents on Xcode.\r\nGo to: Xcode/Contents/Resources/Packages\r\nExecute and Install MobilePackage.pkg\r\n\r\nsolved it for me.", "updateAuthor": { "name": "ygbr", "key": "ygbr", "displayName": "Ygor Lemos", "active": true, "timeZone": "America/Sao_Paulo" }, "created": "2014-01-10T13:55:19.000+0000", "updated": "2014-01-10T13:55:19.000+0000" }, { "id": "287627", "author": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "body": "Ok reading this: https://discussions.apple.com/message/22259434#22259434\r\n\r\n\"_apple-mobdev._tcp.local. has already appeared on interface 4. Suppressing duplicate attach notification.\"\r\n\r\nreminded me I have attached a syslog to see the device logs. Killed that process and it seems to install :D\r\n\r\nBTW have a look at this, I use it in a terminal but would be amazing to have it in ti https://github.com/eswick/deviceconsole\r\nIf I'll ever have the time to work again on SugarTi I'll implement it for sure :)\r\n\r\nSorry for the mess.", "updateAuthor": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "created": "2014-01-10T14:00:10.000+0000", "updated": "2014-01-10T14:00:10.000+0000" }, { "id": "287628", "author": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~ygbr] interesting....I'll have a look, thnx :)\r\n", "updateAuthor": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "created": "2014-01-10T14:04:49.000+0000", "updated": "2014-01-10T14:04:49.000+0000" }, { "id": "287629", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "[~rborn] libimobiledevice has basically reimplemented all of Apple's APIs, so there's no telling what they are doing that make things work. As I'm sure you know, I use MobileDevice, not libimobiledevice. This was because of ease to implement and license. Here's the source for what we use https://github.com/appcelerator/node-ios-device.\n\nTHANK YOU for the link to deviceconsole! This is amazing. I have been wanting to implement this for quite some time now. I should be able to add support for that to node-ios-device. I created a ticket for you to watch here TIMOB-16162.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2014-01-10T14:33:27.000+0000", "updated": "2014-01-10T14:33:27.000+0000" }, { "id": "287645", "author": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "body": "I know they reimplemented everything, and we cannot use due the license issues. I was just saying that their implementation doesn't have this issue, BEFORE finding out I was having the syslog active :)\r\n\r\ndeviceconsole - Glad to know you can use it :)\r\n\r\n", "updateAuthor": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "created": "2014-01-10T16:03:30.000+0000", "updated": "2014-01-10T16:03:30.000+0000" } ], "maxResults": 45, "total": 45, "startAt": 0 } } }