{ "id": "110385", "key": "TIMOB-12897", "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": "14162", "description": "Release 3.1.0", "name": "Release 3.1.0", "archived": true, "released": true, "releaseDate": "2013-04-16" }, { "id": "15279", "description": "2013 Sprint 05 JS", "name": "2013 Sprint 05 JS", "archived": true, "released": true, "releaseDate": "2013-03-11" }, { "id": "14815", "description": "2013 Sprint 05", "name": "2013 Sprint 05", "archived": true, "released": true, "releaseDate": "2013-03-11" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2013-03-11T08:25:11.000+0000", "created": "2013-02-28T19:15:22.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "cli-review", "module_cli", "qe-manualtest", "qe-port" ], "versions": [ { "id": "14162", "description": "Release 3.1.0", "name": "Release 3.1.0", "archived": true, "released": true, "releaseDate": "2013-04-16" } ], "issuelinks": [ { "id": "26341", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "109492", "key": "AC-1819", "fields": { "summary": "Fix appid validation regression.", "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": "2014-08-07T16:49:11.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" } ], "description": "When the user attempts to create an app with app id that contains a dash studio will not accept it.\r\n\r\n\"I found that the regex that validates the app ids doesn't work for ids that contains a dash (com.trip-speed.owners).\r\n\r\nThe id is valid and published to appstore, but when I wanted to do an update I got this error.\r\n\r\nThe fix is in the_sdk_path/node_modules/titanium-sdk/lib/titanium.js line 156, change the regex to\r\n{code}\r\n if (!/^([a-zA-Z_]{1}[a-zA-Z0-9_]*(\\.[a-zA-Z0-9_-]*)*)$/.test(tiapp.id)) {\r\n{code}\r\nbefore was\r\n{code}\r\n if (!/^([a-zA-Z_]{1}[a-zA-Z0-9_]*(\\.[a-zA-Z0-9_]*)*)$/.test(tiapp.id)) {\r\n{code}\r\n\r\nTests cases:\r\n\r\nProject creation:\r\n\r\n{code}\r\n# should fail\r\nti create --name test --id com.appc.test_app --platforms ios --workspace-dir .\r\n{code}\r\n\r\n{code}\r\n# should fail\r\nti create --name test --id com.appc.test-app --platforms android --workspace-dir .\r\n{code}\r\n\r\n{code}\r\n# will work, but shows warning that app id not compatible with android\r\nti create --name test --id com.appc.test-app --platforms ios --workspace-dir .\r\n{code}\r\n\r\n{code}\r\n# will work, but shows warning that app id not compatible with ios\r\nti create --name test --id com.appc.test_app --platforms android --workspace-dir .\r\n{code}\r\n\r\n{code}\r\n# should fail\r\nti create --name test --id com.appc.1testapp --platforms android --workspace-dir .\r\n{code}\r\n\r\n{code}\r\n# should fail\r\nti create --name test --id com.appc.final --platforms android --workspace-dir .\r\n{code}\r\n\r\n{code}\r\n# will work, but shows warning that app id not compatible with android\r\nti create --name test --id com.appc.1testapp --platforms ios,mobileweb --workspace-dir .\r\n{code}\r\n\r\n{code}\r\n# will work, but shows warning that app id not compatible with android\r\nti create --name test --id com.appc.final --platforms ios,mobileweb --workspace-dir .\r\n{code}\r\n\r\n{code}\r\n# should fail\r\nti create --name test --platforms ios --workspace-dir .\r\napp id prompt> com.appc.test_app\r\n{code}\r\n\r\n{code}\r\n# should fail\r\nti create --name test --platforms android --workspace-dir .\r\napp id prompt> com.appc.test-app\r\n{code}\r\n\r\n{code}\r\n# will work, but shows warning that app id not compatible with android\r\nti create --name test --platforms ios --workspace-dir .\r\napp id prompt> com.appc.test-app\r\n{code}\r\n\r\n{code}\r\n# will work, but shows warning that app id not compatible with ios\r\nti create --name test --platforms android --workspace-dir .\r\napp id prompt> com.appc.test_app\r\n{code}\r\n\r\n{code}\r\n# will work, but shows warning that app id not compatible with android\r\nti create --name test --platforms ios,mobileweb --workspace-dir .\r\napp id prompt> com.appc.1testapp\r\n{code}\r\n\r\n{code}\r\n# will work, but shows warning that app id not compatible with android\r\nti create --name test --platforms ios,mobileweb --workspace-dir .\r\napp id prompt> com.appc.final\r\n{code}\r\n\r\nBuilding an app:\r\n\r\n{code}\r\n# should fail\r\n# set in tiapp.xml to com.appc.test_app\r\nti build -p ios\r\n{code}\r\n\r\n{code}\r\n# should fail\r\n# set in tiapp.xml to com.appc.test-app\r\nti build -p android\r\n{code}\r\n\r\n{code}\r\n# should fail\r\n# set in tiapp.xml to com.appc.1testapp\r\nti build -p android\r\n{code}\r\n\r\n{code}\r\n# should fail\r\n# set in tiapp.xml to com.appc.final\r\nti build -p android\r\n{code}\r\n", "attachment": [], "flagged": false, "summary": "CLI: iOS, Mobile Web should allow App IDs with dashes", "creator": { "name": "jbuckley", "key": "jbuckley", "displayName": "Jamie Buckley", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "jbuckley", "key": "jbuckley", "displayName": "Jamie Buckley", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "3.1.0\r\nMac\r\niOS 5.0", "comment": { "comments": [ { "id": "240267", "author": { "name": "mxia", "key": "mxia", "displayName": "Michael Xia", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Studio does allow dash in the Titanium project creation wizard unless Android platform is selected. The description here looks to refer to the CLI code where the dash isn't allowed.\r\n", "updateAuthor": { "name": "mxia", "key": "mxia", "displayName": "Michael Xia", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-02-28T22:11:58.000+0000", "updated": "2013-02-28T22:11:58.000+0000" }, { "id": "240275", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Android does not allow you to put dashes in the package name (http://developer.android.com/guide/topics/manifest/manifest-element.html). Titanium does not let you compile an app for Android if it contains a dash. This is works correctly.\n\niOS allows dashes in the CFBundleIdentifier (http://developer.apple.com/library/ios/#documentation/general/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/TP40009249-SW1). Titanium does NOT allow dashes in app ids. This is incorrect and we'll fix this.\n\nMobile Web doesn't care and allows whatever your heart desires for the app id.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-02-28T22:55:39.000+0000", "updated": "2013-02-28T22:55:39.000+0000" }, { "id": "240482", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Master pull request: https://github.com/appcelerator/titanium_mobile/pull/3928", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-03-03T22:20:19.000+0000", "updated": "2013-03-03T22:20:19.000+0000" }, { "id": "242286", "author": { "name": "oromero", "key": "oromero", "displayName": "Olga Romero", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Closing as fixed.\nCreated an app with dash in app id for ios and mobileweb.\nTested with:\nTitanium Studio, build: 3.0.3.201302201202\nTitanium SDK, build: 3.1.0.v20130313215655\nCLI 3.0.25", "updateAuthor": { "name": "oromero", "key": "oromero", "displayName": "Olga Romero", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-03-14T19:01:49.000+0000", "updated": "2013-03-14T19:01:49.000+0000" } ], "maxResults": 4, "total": 4, "startAt": 0 } } }