{ "id": "119449", "key": "TIMOB-15040", "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": "15695", "description": "2013 Sprint 20", "name": "2013 Sprint 20", "archived": true, "released": true, "releaseDate": "2013-10-04" }, { "id": "15697", "description": "2013 Sprint 20 Core", "name": "2013 Sprint 20 Core", "archived": true, "released": true, "releaseDate": "2013-10-04" }, { "id": "15715", "description": "2013 Sprint 25", "name": "2013 Sprint 25", "archived": true, "released": true, "releaseDate": "2013-12-13" }, { "id": "15717", "description": "2013 Sprint 25 Core", "name": "2013 Sprint 25 Core", "archived": true, "released": true, "releaseDate": "2013-12-13" }, { "id": "14982", "description": "Release 3.2.0", "name": "Release 3.2.0", "archived": false, "released": true, "releaseDate": "2013-12-19" }, { "id": "15422", "description": "Release 3.3.0", "name": "Release 3.3.0", "archived": false, "released": true, "releaseDate": "2014-07-16" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2013-12-07T02:20:06.000+0000", "created": "2013-09-04T15:55:32.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [], "versions": [], "issuelinks": [ { "id": "32809", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "121631", "key": "TIDOC-1329", "fields": { "summary": "Guide: Update CLI guide for new features", "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-09T10:36:42.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": "10207", "name": "Tooling" } ], "description": "When I went to do an Enterprise build of an app, I got these error messages in the console:\r\n\r\n{code}\r\n[ERROR] : tiapp.xml contains an invalid version \"2013.09.04b\"\r\n[ERROR] : The version may only contist of letters, numbers, dashes, underscores, pluses, and spaces.\r\n{code}\r\n\r\nSo, either the validation broke, or the error message is incorrect. Either way, we need to fix it. I also tried \"2013.09.04-2\", which also failed.", "attachment": [], "flagged": false, "summary": "Tooling: Allow version number validation to be skipped", "creator": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "subtasks": [], "reporter": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "environment": "3.2.0.v20130828101643\r\niOS SDK 7", "comment": { "comments": [ { "id": "269513", "author": { "name": "kwcoffman", "key": "kwcoffman", "displayName": "Kevin Coffman", "active": true, "timeZone": "America/New_York" }, "body": "This exists in 3.1.2.GA as well.", "updateAuthor": { "name": "kwcoffman", "key": "kwcoffman", "displayName": "Kevin Coffman", "active": true, "timeZone": "America/New_York" }, "created": "2013-09-04T18:04:44.000+0000", "updated": "2013-09-04T18:04:44.000+0000" }, { "id": "269569", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Your version numbers \"2013.09.04b\" and \"2013.09.04-2\" are not valid version numbers according to Apple: https://developer.apple.com/library/mac/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/TP40009249-102364-TPXREF106. The CFBundleVersion must be in the format X.Y.Z.\n\nAndroid \"versionName\" also recommends X.Y.Z, but doesn't appear to enforce it.\n\nMobile web does not care. You could set the version number to \"hello world\" and it would be like \"oh, hey\".\n\nHere's the regex we use: /^\\d+(\\.\\d+(\\.\\d+(\\..+)?)?)?$/. Even if we allowed those version numbers, any segments over 3 would get cut off and be forced into the X.Y.Z format. Personally I don't like the idea of Titanium doing that. The developer should know exactly what's going on.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-09-04T20:54:18.000+0000", "updated": "2013-09-04T20:54:18.000+0000" }, { "id": "269586", "author": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "body": "This is for an Enterprise app, and such apps don't need to follow the App Store requirements there. We've used this style version number pre-Ti 3.x without problems on enterprise app stores.\n\nI think a console warning would be better than preventing enterprise customers from having what they want.", "updateAuthor": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "created": "2013-09-04T21:28:51.000+0000", "updated": "2013-09-04T21:28:51.000+0000" }, { "id": "269613", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "[~iotashan] A good point you have.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-09-04T22:28:24.000+0000", "updated": "2013-09-04T22:28:24.000+0000" }, { "id": "272548", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "This is fixed for Titanium SDK 3.2.0. You will need to set the Titanium CLI config variable \"android.skipAppIdValidation\" to true.\r\n\r\n{code}\r\nti config android.skipAppIdValidation true\r\n{code}\r\n\r\nNote: we still validate that you have specified at least 1 character for the in the tiapp.xml and is not an empty string.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-09-23T21:15:13.000+0000", "updated": "2013-09-23T21:15:13.000+0000" }, { "id": "272553", "author": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "body": "Perhaps a dumb question, but why is the property prefixed with \"android\"?", "updateAuthor": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "created": "2013-09-23T21:55:20.000+0000", "updated": "2013-09-23T21:55:20.000+0000" }, { "id": "272574", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Because this is an Android specific flag. iOS will most likely also have ios.skipAppIdValidation option too, but none of our other platforms have app id issues to begin with.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-09-23T23:32:17.000+0000", "updated": "2013-09-23T23:32:17.000+0000" }, { "id": "272575", "author": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "body": "That's why I'm confused then... This ticket was complaining about building for iOS, and the use-case explained how we might build iOS enterprise apps that don't have version format restrictions. This ticket needs to be reopened, then, as android.skipAppIdValidation does not address the problem.", "updateAuthor": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "created": "2013-09-23T23:34:56.000+0000", "updated": "2013-09-23T23:34:56.000+0000" }, { "id": "272577", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Correction, iOS will have an ios.skipAppIdValidation option!", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-09-23T23:38:20.000+0000", "updated": "2013-09-23T23:38:20.000+0000" }, { "id": "282653", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "It seems the PR might not have included this fix", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-12-05T18:56:34.000+0000", "updated": "2013-12-05T18:56:34.000+0000" }, { "id": "283002", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Master pull request: https://github.com/appcelerator/titanium_mobile/pull/5089\n3.2.x pull request: https://github.com/appcelerator/titanium_mobile/pull/5090", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-12-07T00:59:47.000+0000", "updated": "2013-12-07T00:59:47.000+0000" }, { "id": "283003", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "By default app version numbers are validated in the format X.Y.Z. You can globally disable version checking by setting the following:\n\n{code}\nti config app.skipVersionValidation true\n{code}\n\nYou can set it per app by adding the following property to the tiapp.xml:\n\n{code}\ntrue\n{code}\n\nI've also added the ability to skip the app id validation:\n\n{code}\nti config app.skipAppIdValidation true\n{code}\n\nand\n\n{code}\ntrue\n{code}\n", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-12-07T01:02:27.000+0000", "updated": "2013-12-07T01:02:27.000+0000" }, { "id": "283004", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "To test:\n\n1) create an app\n2) change the to \"foo\"\n3) build the app (any platform) and notice the error\n4) add true to tiapp.xml\n5) build again\n6) notice no more error messages!", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-12-07T01:03:33.000+0000", "updated": "2013-12-07T01:03:33.000+0000" }, { "id": "283189", "author": { "name": "dpandey", "key": "dpandey", "displayName": "Deepti Pandey", "active": true, "timeZone": "Asia/Kolkata" }, "body": "VERIFIED fixed USING :\r\n\r\nAppcelerator Studio: 3.2.0.201312081316\r\nSDK:mobilesdk-3.2.0.v20131209000852\r\nalloy: 1.3.0-beta\r\nacs: 1.0.10\r\nnpm: 1.3.2\r\ntitanium: 3.2.0-beta\t\r\ntitanium-code-processor: 1.1.0-beta\r\n\r\nNo error messages noticed related to version number validation. ", "updateAuthor": { "name": "dpandey", "key": "dpandey", "displayName": "Deepti Pandey", "active": true, "timeZone": "Asia/Kolkata" }, "created": "2013-12-09T10:36:08.000+0000", "updated": "2013-12-09T10:36:08.000+0000" }, { "id": "283191", "author": { "name": "dpandey", "key": "dpandey", "displayName": "Deepti Pandey", "active": true, "timeZone": "Asia/Kolkata" }, "body": "Verified on Mavericks 10.9 and Windows 8.1", "updateAuthor": { "name": "dpandey", "key": "dpandey", "displayName": "Deepti Pandey", "active": true, "timeZone": "Asia/Kolkata" }, "created": "2013-12-09T10:36:42.000+0000", "updated": "2013-12-09T10:36:42.000+0000" } ], "maxResults": 15, "total": 15, "startAt": 0 } } }