{ "id": "109499", "key": "TIMOB-12661", "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": "15699", "description": "2013 Sprint 21", "name": "2013 Sprint 21", "archived": true, "released": true, "releaseDate": "2013-10-18" }, { "id": "15701", "description": "2013 Sprint 21 Core", "name": "2013 Sprint 21 Core", "archived": true, "released": true, "releaseDate": "2013-10-18" }, { "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-10-19T01:22:31.000+0000", "created": "2013-02-11T16:54:58.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [ "android", "androidbuild", "ay-verified", "cb-verified", "cli", "module_CLI" ], "versions": [ { "id": "13505", "description": "Release 3.0.0", "name": "Release 3.0.0", "archived": true, "released": true, "releaseDate": "2012-12-14" } ], "issuelinks": [ { "id": "29342", "type": { "id": "10020", "name": "Depends", "inward": "is dependent of", "outward": "depends on" }, "outwardIssue": { "id": "91507", "key": "TIMOB-9028", "fields": { "summary": "CLI: \"build\" command for Android apps", "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": "6", "description": "gh.issue.epic.desc", "name": "Epic", "subtask": false } } } }, { "id": "30748", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "91507", "key": "TIMOB-9028", "fields": { "summary": "CLI: \"build\" command for Android apps", "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": "6", "description": "gh.issue.epic.desc", "name": "Epic", "subtask": false } } } }, { "id": "31505", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "119156", "key": "TIMOB-14973", "fields": { "summary": "Android Build: Validate command line arguments and tiapp.xml settings", "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": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } } } ], "assignee": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "updated": "2013-12-06T17:56:08.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": "10202", "name": "Android", "description": "Android Platform" }, { "id": "10207", "name": "Tooling" } ], "description": "It would be extremely helpful, and give the CLI more power with Android, if developers were able to specify specifically which device or emulator for which they would like to build. Right now the build process allows us to specify and avd id which would let you pick an emulator, but even that is not ideal as you don't really have a way of knowing an emulator's id from the *android list avd* as it isn't listed.\r\n\r\nIdeally, I should be able to call *adb devices*, see my listing of emulators and devices, than be able to pass that serial number to the *titanium build* command as an option, directing the build process to that specific emulator or device. The build process _tries_ to be intelligent about this, but more often than not I get errors like:\r\n\r\n* It fails if there is a connected device AND an emulator open\r\n* Even with an emulator already it open, it often attempts to load an entirely different one\r\n* Tries to use emulators not compatible with the app (like a non-Google API emulator with an app that uses maps)\r\n\r\nAllowing a command like the following would make it really easy for developers to have multiple open emulators and connected devices and still get expected behavior:\r\n\r\n{code}\r\ntitanium build -p android -s EMULATOR_OR_DEVICE_SERIAL\r\n{code}\r\n\r\nObviously I leave the choice of the option flag to the implementor. \"-s\" would correspond to the adb command, but this is already in use for *titanium build* for specifying the target Titanium SDK. ", "attachment": [], "flagged": false, "summary": "CLI: Support adb's -s option for pointing a build to a specific emulator or device", "creator": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "Titanium CLI 3.0.23", "comment": { "comments": [ { "id": "240809", "author": { "name": "metal3d", "key": "metal3d", "displayName": "Metal3d", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I agree with the proposition. I'm working on a laptop with a little resolution and I didn't found a way to work out Titanium Studio to launch my app in a specific emulator (that I launch with -scale option to scale down resolution). I'm working on VIM.\r\n\r\nAlloy had a \"run\" command that launched application on current emulator... but since 1.0.0 version this command is deprecated and we must use titanium command.\r\n\r\nBTW I didn't found how you passed serial to titanium build command (I tried to check titanium help build that speaks about id, skin... but no serial)", "updateAuthor": { "name": "metal3d", "key": "metal3d", "displayName": "Metal3d", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-03-05T22:18:49.000+0000", "updated": "2013-03-05T22:18:49.000+0000" }, { "id": "270744", "author": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Any updates on this? This would really help testing on specific Android configurations, not just SDK and ABI.", "updateAuthor": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2013-09-11T13:11:07.000+0000", "updated": "2013-09-11T13:11:07.000+0000" }, { "id": "270765", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "[~fokke] Good news is I just added support for specifying an emulator or device. Bad news is it won't ship until 3.2.0 ships. You'll be able to have multiple devices plugged in and/or multiple emulators running. You just specify the name of the device/emulator.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-09-11T16:38:58.000+0000", "updated": "2013-09-11T16:38:58.000+0000" }, { "id": "270780", "author": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "body": "This is related to TIMOB-7053 too. Would be good if TiStudio had a GUI so we could pick the device from a drop down.", "updateAuthor": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "created": "2013-09-11T18:08:35.000+0000", "updated": "2013-09-11T18:08:35.000+0000" }, { "id": "270785", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "@Shannon, yup, Studio will be able to retrieve a list of all emulators/devices via the \"ti info\" command and present you with a drop down.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-09-11T19:21:36.000+0000", "updated": "2013-09-11T19:21:36.000+0000" }, { "id": "275817", "author": { "name": "ayeung", "key": "ayeung", "displayName": "Allen Yeung", "active": true, "timeZone": "America/Los_Angeles" }, "body": "PR: https://github.com/appcelerator/titanium_mobile/pull/4781", "updateAuthor": { "name": "ayeung", "key": "ayeung", "displayName": "Allen Yeung", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-10-19T01:22:31.000+0000", "updated": "2013-10-19T01:22:31.000+0000" }, { "id": "282206", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "body": "This ticket isn't actually resolved, unless there are undocumented options that aren't shown in {{ti help build}}. The request was for the ability to target an emulator or device based on the serial number (returned by {{adb devices}}. This seems to go by the avd name by default or the device name when used with {{-T device}}, which is not shown in {{adb devices}}. \n\nAs stated above, targeting by serial number is the equivalent of the \"-s\" option in \"adb\", as a point of reference. The resolution to this ticket provides a similar solution, but doesn't actually resolve the request of targeting by serial number. I would still like it if an option could be added to the android build process that allowed for this functionality.", "updateAuthor": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-12-03T21:50:06.000+0000", "updated": "2013-12-03T21:50:06.000+0000" }, { "id": "282207", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "[~tlukasavage] Run \"ti help build\", then look for \"--device-id\". You can call \"ti build -p android -T device --device-id foo\" and it'll prompt you with a list of connected devices.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-12-03T21:54:27.000+0000", "updated": "2013-12-03T21:54:27.000+0000" }, { "id": "282212", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~cbarber] right, I'm familiar with that behavior. That's not connecting via serial number though, which is easily viewable, not to mention parseable for automation, from {{adb devices}}. ", "updateAuthor": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-12-03T22:18:33.000+0000", "updated": "2013-12-03T22:18:33.000+0000" }, { "id": "282219", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "[~tlukasavage] I guess what I meant to say is --device-id EXPECTS the device name returned from adb devices, right?", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-12-03T22:24:52.000+0000", "updated": "2013-12-03T22:24:52.000+0000" }, { "id": "282670", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "To test:\r\nAttach two devices/emulators, specify the --device-id of the one you wish.\r\n\r\nAlso, try (on device, may not work for emulator) \"--device-id all\" and the api should ins all on all connected devices", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-12-05T19:25:15.000+0000", "updated": "2013-12-05T19:26:06.000+0000" }, { "id": "282906", "author": { "name": "lokeshchdhry", "key": "lokeshchdhry", "displayName": "Lokesh Choudhary", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Verified by following the steps Eric mentioned.\r\n\r\nEnvironment:\r\nAppcel Studio : 3.2.0.201312042306\r\nTi SDK : 3.2.0.v20131204220843\r\nMac OSX : 10.8.5\r\nAlloy : 1.3.0-beta\r\nCLI - 3.2.0-beta\r\nSamsung Galaxy S4 running android 4.2.2\r\nNexus 5 - android 4.4", "updateAuthor": { "name": "lokeshchdhry", "key": "lokeshchdhry", "displayName": "Lokesh Choudhary", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2013-12-06T17:56:08.000+0000", "updated": "2013-12-06T17:56:08.000+0000" } ], "maxResults": 12, "total": 12, "startAt": 0 } } }