{ "id": "91238", "key": "TIMOB-8967", "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": [], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2020-01-10T18:06:48.000+0000", "created": "2012-05-02T17:36:52.000+0000", "priority": { "name": "Low", "id": "4" }, "labels": [ "SupportTeam", "cb-tooling", "core" ], "versions": [ { "id": "13272", "description": "Release 2.0.1", "name": "Release 2.0.1", "archived": true, "released": true, "releaseDate": "2012-04-16" }, { "id": "14162", "description": "Release 3.1.0", "name": "Release 3.1.0", "archived": true, "released": true, "releaseDate": "2013-04-16" } ], "issuelinks": [], "assignee": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "updated": "2020-01-10T18:06:48.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": "h4. Problem Description\r\nIf the section of tiapp.xml is malformed, compiling completely fails... as in, build.log doesn't even get reset from the previous build, and the Ti Studio log shows nothing. The console outputs this:\r\n{code}\r\n[INFO] One moment, building ...\r\nTraceback (most recent call last):\r\n{code}\r\n\r\nh4. Test case\r\nHere's a sample of malformed code:\r\n{code:xml}\r\n \r\n \t\r\n\t\t\tCFBundleDisplayName\r\n\t\t\tNew Eng Inn\r\n\t\t\tUISupportedInterfaceOrientations\r\n\t\t\t\r\n\t\t\t\tUIInterfaceOrientationPortrait\r\n\t\t\t\tUIInterfaceOrientationPortraitUpsideDown\r\n\t\t\t\r\n \t\r\n \r\n{code}", "attachment": [], "flagged": false, "summary": "iOS: Compiler/Titanium needs to warn if section of tiapp.xml is malformed", "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": "iOS, Ti 2.1 CI", "comment": { "comments": [ { "id": "247741", "author": { "name": "jithinv@exalture.com", "key": "jithinv@exalture.com", "displayName": "jithinpv", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Issue reproduces \n\nTested with\n\nTitanium Studio, build: 3.0.1.201212181159\nTitanium SDK version: 3.1.0 \nTitanium SDK version: 3.0.2 \niOS iPhone Simulator: iOS SDK version: 6.0\n", "updateAuthor": { "name": "jithinv@exalture.com", "key": "jithinv@exalture.com", "displayName": "jithinpv", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-04-16T12:38:31.000+0000", "updated": "2013-04-16T12:38:31.000+0000" }, { "id": "394063", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "This is still broken in Titanium SDK master 6.1.0.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2016-08-24T06:06:30.000+0000", "updated": "2016-08-24T06:06:30.000+0000" }, { "id": "423239", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "I tried linting it but then noticed it actually goes through (even though the key is missing), so it looks like they are merged together properly even if they shouldn't. We could explicitely check for the key, like:\r\n{code:js}\r\nif (ios && ios.plist) {\r\n if (!ios.plist.dict) {\r\n logger.error(__('Could not parse custom Info.plist keys'));\r\n process.exit();\r\n }\r\n this.mergePlist(ios.plist, plist);\r\n}\r\n{code}\r\n\r\nEverything else (plist key-structure, missing values) are processed even before, so we may do this validation in the tiappxml.js already.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-06-30T08:33:54.000+0000", "updated": "2017-06-30T08:33:54.000+0000" } ], "maxResults": 4, "total": 4, "startAt": 0 } } }