{ "id": "152886", "key": "TIMOB-19911", "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": "17608", "name": "Release 6.1.0", "archived": false, "released": true, "releaseDate": "2017-05-26" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2016-12-22T14:13:51.000+0000", "created": "2015-11-11T02:51:46.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "Capabilities", "ios" ], "versions": [ { "id": "16904", "description": "Release 5.0.2", "name": "Release 5.0.2", "archived": true, "released": true, "releaseDate": "2015-10-01" } ], "issuelinks": [ { "id": "49768", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "150123", "key": "TIMOB-19311", "fields": { "summary": "iOS: Configuring capabilities (app group) and team identity via tiapp.xml", "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": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } } ], "assignee": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "updated": "2017-01-24T22:35:28.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" }, { "id": "10207", "name": "Tooling" } ], "description": "Currently the only way to add e.g. associated domains for [Universal Links|https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW1] or the HealthKit entitlement for the [HealthKit Module|http://labs.appcelerator.com/project/55c3c788e014044625e9b2a1/HealthKit-Module] is by using a custom {{Entitlements.plist}} file in the project root:\r\n\r\n{code}\r\ncom.apple.developer.associated-domains \r\n \r\n applinks:mydomain.com \r\n \r\n{code}\r\n\r\nThe problem is that the {{Entitlements.plist}} if you do so Titanium [will no longer automatically add|https://github.com/appcelerator/titanium_mobile/blob/17dc8754653daaff170ea0c18f74218168a5633e/iphone/cli/commands/_build.js#L2219-L2258] any other require entitlements, like TIMOB-19311.\r\n\r\nWhat we need is for this to work exactly [like we handle|https://github.com/appcelerator/titanium_mobile/blob/17dc8754653daaff170ea0c18f74218168a5633e/iphone/cli/commands/_build.js#L1939] {{Info.plist}}:\r\n\r\n# Load/Create our default {{Entitlements.plist}}.\r\n# Merge custom {{Entitlements.plist}} in the project root.\r\n# Merge keys set in {{tiapp.xml}} under {{/}}\r\n# Do whatever we automatically generate, but only if the key does not already exist (alternatively, do this step after the first so it will be overwritten by the user's keys)\r\n\r\nIdeally we would rename {{/}} to {{/}} but that would break all apps ;)", "attachment": [], "flagged": false, "summary": "iOS: Set Entitlements.plist keys from tiapp.xml like we do for Info.plist", "creator": { "name": "rramirez", "key": "rramirez", "displayName": " Ricardo Ramirez", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "rramirez", "key": "rramirez", "displayName": " Ricardo Ramirez", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "Xcode 7.1\r\niOS 9.X\r\n", "closedSprints": [ { "id": 786, "state": "closed", "name": "2016 Sprint 26 Tooling", "startDate": "2016-12-17T01:25:00.289Z", "endDate": "2016-12-31T01:25:00.000Z", "completeDate": "2017-01-03T02:13:58.775Z", "originBoardId": 199 } ], "comment": { "comments": [ { "id": "370077", "author": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "[~rramirez] I updated the ticket to address the actual need to be able to customise {{Entitlements.plist}} via {{tiapp.xml}}.\r\n\r\n/CC [~cbarber]", "updateAuthor": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2015-11-12T10:43:58.000+0000", "updated": "2015-11-12T10:44:32.000+0000" }, { "id": "395254", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Good ticket. I would use the {{}} tag instead of renaming the {{plist}} key afterwards. The behavior could be duplicated 1:1 from how we currently handle the Info.plist-merge.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-09-02T22:57:12.000+0000", "updated": "2016-09-02T22:57:12.000+0000" }, { "id": "396333", "author": { "name": "anvil_martin", "key": "anvil_martin", "displayName": "Martin Williamson", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Would really like to see this now cert entitlements are no longer merged in xcode 8", "updateAuthor": { "name": "anvil_martin", "key": "anvil_martin", "displayName": "Martin Williamson", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2016-09-16T13:29:17.000+0000", "updated": "2016-09-16T13:29:17.000+0000" }, { "id": "396737", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "[~rramirez] Nope. Tied up with TIMOB-23908, TIMOB-23518, and TIMOB-23786. All of which are critical. I'll get to this ticket when I get to it.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2016-09-20T23:42:20.000+0000", "updated": "2016-09-20T23:42:20.000+0000" }, { "id": "403767", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Ti SDK master PR: https://github.com/appcelerator/titanium_mobile/pull/8708\r\n\r\nTo test, add the following to your {{tiapp.xml}}:\r\n\r\n{code}\r\n\r\n \r\n \r\n com.apple.developer.associated-domains \r\n \r\n applinks:mydomain.com \r\n \r\n \r\n \r\n\r\n{code}", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2016-12-21T22:08:20.000+0000", "updated": "2016-12-22T14:06:56.000+0000" }, { "id": "405211", "author": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Can confirm that this works fine and the console logs show no errors whatsoever. Tested with;\r\niPhone 7\r\nMacOS 10.11.6 (15G31)\r\nStudio 4.8.1.201612050850\r\nTi SDK 6.1.0.v20170124071525\r\nAppc NPM 4.2.8\r\nAppc CLI 6.1.0\r\nTi CLI 5.0.11\r\nAlloy 1.9.5\r\nArrow 1.10.1\r\nXcode 8.2 (8C38)\r\nNode v4.6.0\r\nJava 1.7.0_80", "updateAuthor": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-01-24T22:35:17.000+0000", "updated": "2017-01-24T22:35:17.000+0000" } ], "maxResults": 11, "total": 11, "startAt": 0 } } }