{ "id": "150123", "key": "TIMOB-19311", "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": "16925", "description": "WatchKit Support--all going into 5.0 now", "name": "Release 5.0.0", "archived": true, "released": true, "releaseDate": "2015-09-16" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2015-08-11T18:09:24.000+0000", "created": "2015-08-04T05:02:25.000+0000", "epic": { "id": 139983, "key": "TIMOB-18052", "name": "iOS: Support WatchKit", "summary": "iOS: Support WatchKit", "color": { "key": "color_1" }, "done": false }, "priority": { "name": "High", "id": "2" }, "labels": [], "versions": [], "issuelinks": [ { "id": "50726", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "155259", "key": "TIDOC-2466", "fields": { "summary": "Update Integrate a Native iOS App Extension or WatchKit App page with info from TIMOB-19311", "status": { "description": "This issue is being actively worked on at the moment by the assignee.", "name": "In Progress", "id": "3", "statusCategory": { "id": 4, "key": "indeterminate", "colorName": "yellow", "name": "In Progress" } }, "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 } } } }, { "id": "49768", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "152886", "key": "TIMOB-19911", "fields": { "summary": "iOS: Set Entitlements.plist keys from tiapp.xml like we do for Info.plist", "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-10-18T22:08:15.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": "To enable watchkit, there is a need to configure app group, and generate a entitlements file. Currently the proposed method described here:\nhttps://wiki.appcelerator.org/display/guides2/Integrate+a+Native+iOS+App+Extension+or+WatchKit+App\nrequires us to manually set it up in the Xcode project, and also to manually create the entitlements file. \nIt will be great if we could just write the app group array in tiapp.xml and let *titanium build* do the rest.\nApple Documentation: https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/AddingCapabilities/AddingCapabilities.html", "attachment": [], "flagged": false, "summary": "iOS: Configuring capabilities (app group) and team identity via tiapp.xml", "creator": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "environment": null, "closedSprints": [ { "id": 465, "state": "closed", "name": "2015 Sprint 16 Tooling", "startDate": "2015-08-03T16:11:05.714Z", "endDate": "2015-08-15T01:11:00.000Z", "completeDate": "2015-08-18T00:59:18.251Z", "originBoardId": 121 } ], "comment": { "comments": [ { "id": "359050", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "*Note:* From the ti developer perspective, he should be doing this in the following manner:\r\n1. Log in to developer.apple.com, and create app group with the App ID consistent to his titanium app id.\r\nfor example, if titanium app id is *com.appcelerator.testWatch*, app group id should be *group.com.appcelerator.testWatch*\r\n2. After which, he should include this group id in tiapp.xml, and also the corresponding team identity.\r\n3. Then ti build will have to map these information to the Xcode project build, as well as generate entitlement files.", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-08-05T05:49:30.000+0000", "updated": "2015-08-05T05:49:30.000+0000" }, { "id": "359262", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "PR #1: https://github.com/appcelerator/titanium_mobile/pull/7012", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2015-08-07T03:12:50.000+0000", "updated": "2015-08-07T03:12:50.000+0000" }, { "id": "359328", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "PR #2: https://github.com/appcelerator/titanium_mobile/pull/7013", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2015-08-07T18:20:34.000+0000", "updated": "2015-08-07T18:20:34.000+0000" }, { "id": "359576", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "PR #3: https://github.com/appcelerator/titanium_mobile/pull/7017", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2015-08-11T18:09:14.000+0000", "updated": "2015-08-11T18:09:14.000+0000" }, { "id": "370061", "author": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "[~cbarber] does this ticket allow users to add any entitlement (for {{Entitlements.plist}}) via {{tiapp.xml}} like they can for {{Info.plist}}? That's not clear to me. It seems like it is for app group and team identity only?\r\n\r\nIf so, I will create a new ticket to add this to make integrating something like HealthKit easier instead of having to maintain a {{Entitlements.plist}} file yourself.\r\n\r\nhttp://labs.appcelerator.com/project/55c3c788e014044625e9b2a1/HealthKit-Module", "updateAuthor": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2015-11-12T09:00:23.000+0000", "updated": "2015-11-12T09:00:23.000+0000" }, { "id": "370075", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "[~fokkezb] Isn't the Entitlements.plist generated? I don't think it's existence is tied to the use of app groups or teams. This ticket was to add support for iOS capabilities. We only support the app group capability. As apart of app groups, we support teams. There are a ton of other capabilities that we do not support.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2015-11-12T10:19:13.000+0000", "updated": "2015-11-12T10:19:13.000+0000" }, { "id": "370076", "author": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "It is, unless you have one in the project root:\r\nhttps://github.com/appcelerator/titanium_mobile/blob/17dc8754653daaff170ea0c18f74218168a5633e/iphone/cli/commands/_build.js#L2219-L2258\r\n\r\nSo my request would be to make it work like {{Info.plist}} where we have a {{/}} section which we merge with whatever we generate (and like recently fixed for {{Info.plist}}, without overwriting keys the user has set).\r\n\r\nI'll modify TIMOB-19911 to request this.", "updateAuthor": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2015-11-12T10:24:21.000+0000", "updated": "2015-11-12T10:27:13.000+0000" }, { "id": "378299", "author": { "name": "rblalock", "key": "rblalock", "displayName": "Rick Blalock", "active": false, "timeZone": "America/Havana" }, "body": "Did any of this ever make it in to the docs? I don't see anything about it.", "updateAuthor": { "name": "rblalock", "key": "rblalock", "displayName": "Rick Blalock", "active": false, "timeZone": "America/Havana" }, "created": "2016-03-01T15:10:17.000+0000", "updated": "2016-03-01T15:10:17.000+0000" }, { "id": "378304", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "No clue. [~bimmel]?", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2016-03-01T15:33:51.000+0000", "updated": "2016-03-01T15:33:51.000+0000" }, { "id": "378339", "author": { "name": "bimmel-defective", "key": "bimmel", "displayName": "(deactived) Brian Immel", "active": false, "timeZone": "America/Los_Angeles" }, "body": "[~rblalock], this was before my time so I have no idea but I'll look for it today. Does anyone know if there was a related TIDOC ticket created for this? Chances are if no TIDOC ticket exists, then it wasn't documented.", "updateAuthor": { "name": "bimmel-defective", "key": "bimmel", "displayName": "(deactived) Brian Immel", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-03-01T17:55:51.000+0000", "updated": "2016-03-01T17:56:48.000+0000" }, { "id": "378341", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "[~bimmel] No clue, but probably not. :)", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2016-03-01T17:58:11.000+0000", "updated": "2016-03-01T17:58:11.000+0000" }, { "id": "378343", "author": { "name": "rblalock", "key": "rblalock", "displayName": "Rick Blalock", "active": false, "timeZone": "America/Havana" }, "body": "I didn't find a TIDOC. I'm not even sure how it works to help you with this one Brian. You'll have to work with Chris on how it works.", "updateAuthor": { "name": "rblalock", "key": "rblalock", "displayName": "Rick Blalock", "active": false, "timeZone": "America/Havana" }, "created": "2016-03-01T18:10:49.000+0000", "updated": "2016-03-01T18:10:49.000+0000" }, { "id": "378354", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Well, this is sorta complicated. If you have a watch app or iOS extension and you want them to be able to communicate with the iOS app, then you have to define an app group. This shows up under the \"capabilities\" in Xcode. This requires you specify a team and app account. Then you pick a app group that was linked with your entitlements that was created in the Apple developer portal.\r\n\r\nHere's an example of how to define this in the tiapp.xml:\r\n\r\n{code}\r\n\r\n\r\n \r\n \r\n foo\r\n \r\n \r\n group.com.appc.foo\r\n group.com.appc.bar\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-03-01T18:29:33.000+0000", "updated": "2016-03-01T18:29:33.000+0000" }, { "id": "378356", "author": { "name": "rblalock", "key": "rblalock", "displayName": "Rick Blalock", "active": false, "timeZone": "America/Havana" }, "body": "The Tiapp.xml is all I was looking for actually.", "updateAuthor": { "name": "rblalock", "key": "rblalock", "displayName": "Rick Blalock", "active": false, "timeZone": "America/Havana" }, "created": "2016-03-01T18:31:24.000+0000", "updated": "2016-03-01T18:31:24.000+0000" }, { "id": "378362", "author": { "name": "bimmel-defective", "key": "bimmel", "displayName": "(deactived) Brian Immel", "active": false, "timeZone": "America/Los_Angeles" }, "body": "From what I can tell, there is no Jira ticket nor any mention of this configuration in any of our docs. Please file a TIDOC ticket with the necessary info and I work on it right away.", "updateAuthor": { "name": "bimmel-defective", "key": "bimmel", "displayName": "(deactived) Brian Immel", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-03-01T19:02:59.000+0000", "updated": "2016-03-01T19:02:59.000+0000" }, { "id": "378366", "author": { "name": "bimmel-defective", "key": "bimmel", "displayName": "(deactived) Brian Immel", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Ok, I'll create a TIDOC and link it to this one and put the info Chris mentioned in the aforementioned page.", "updateAuthor": { "name": "bimmel-defective", "key": "bimmel", "displayName": "(deactived) Brian Immel", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-03-01T19:33:57.000+0000", "updated": "2016-03-01T19:33:57.000+0000" }, { "id": "416553", "author": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Closing ticket as fixed.", "updateAuthor": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-03-31T22:00:21.000+0000", "updated": "2017-03-31T22:00:21.000+0000" } ], "maxResults": 17, "total": 17, "startAt": 0 } } }