{ "id": "173405", "key": "TIMOB-26948", "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": "20432", "name": "Release 8.0.1", "archived": false, "released": true, "releaseDate": "2019-05-15" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2019-04-19T18:42:40.000+0000", "created": "2019-03-28T17:36:29.000+0000", "priority": { "name": "None", "id": "6" }, "labels": [], "versions": [ { "id": "19882", "name": "Release 8.0.0", "archived": false, "released": true, "releaseDate": "2019-03-14" } ], "issuelinks": [], "assignee": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "updated": "2019-04-19T18:42:40.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": "h3. Description\r\nWhile creating an iOS project using the file provider extension, we found that the capability was not appearing correctly in the generated Xcode project\r\n\r\nh3.\r\nSteps to reproduce\r\n1) Create an iOS project\r\n2) Create a file provider target, add the app groups capability\r\n3) Ensure you have the appropriate provisioning profiles\r\n4) Build the project\r\n5) Examine the capabilities in the generated xCode project\r\n\r\nh3.\r\nResult\r\nThe capability is not set correctly.", "attachment": [], "flagged": false, "summary": "CLI: File provider extension capability not appropriately set", "creator": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "closedSprints": [ { "id": 1123, "state": "closed", "name": "2019 Sprint 7", "startDate": "2019-03-18T17:27:25.993Z", "endDate": "2019-03-30T17:27:00.000Z", "completeDate": "2019-03-29T18:02:37.441Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "447350", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Master PR: https://github.com/appcelerator/titanium_mobile/pull/10813\r\n8_0_X PR: https://github.com/appcelerator/titanium_mobile/pull/10814\r\n\r\nTo test:\r\n1. Create a new app\r\n2. Create an {{extensions}} folder in your app (e.g. {{/path/to/my-project/extensions}})\r\n3. Open Xcode, create a new project (name it something meaningful like {{MyExtension}}) and save in the extensions folder\r\n4. In the Xcode project, add a new Target of type FileProvider (check the box to also generate the FileProvider UI target) and name it something like {{MyFileProvider}}\r\n5. In the Xcode project settings, use manual provisioning profile (not managed)\r\n6. Go to the Apple Developer site and create an App Group like {{com.mycompany.test}}\r\n7. Create App IDs for the FileProvider and FileProvider UI targets such as {{com.mycompany.myextension.MyFileProvider}} and {{com.mycompany.myextension.MyFileProviderUI}}.\r\n8. Create provisioning profiles for the FileProvider and FileProvider UI targets using the App IDs created above. Apple requires the Titanium app and each extension to have its own provisioning profile. When creating the profile, enable app groups. You should probably set an explicit App ID and not a wildcard. After saving the profile, edit it, then assign the App Group name, then download it and install it by double clicking it and Xcode will copy it to the correct place.\r\n9. Edit the {{tiapp.xml}} and add an {{}} section under the {{ios}} section:\r\n{code}\r\n\r\n \r\n \r\n     \r\n       UUID GOES HERE\r\n \r\n \r\n \r\n \r\n \r\n \r\n UUID GOES HERE\r\n \r\n \r\n     \r\n  \r\n \r\n\r\n{code}\r\n10. Run {{appc ti info -t ios}} and find the provisioning profiles. Copy and paste the provisioning profile UUIDs for the FileProvider targets into the {{tiapp.xml}}.\r\n11. Add the app groups to the {{tiapp.xml}} under the {{ios}} section:\r\n{code}\r\n\r\n \r\n group.appc.testext\r\n \r\n\r\n{code}\r\n12. Clean the project: {{appc ti clean}}\r\n13. Build the project: {{appc run -p ios -T device}} and supply the Titanium app's provisioning profile UUID and developer name.\r\n14. Open the generated Xcode project {{/path/to/myapp/build/iphone/myapp.xcodeproj}} and verify app groups (under project settings -> capabilities) are enabled for all targets. Also verify the entitlements file under the {{Extensions}} folder in the Xcode project sidebar are correct.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2019-03-28T19:07:42.000+0000", "updated": "2019-03-28T19:07:42.000+0000" }, { "id": "447667", "author": { "name": "kmahalingam", "key": "kmahalingam", "displayName": "Keerthi Mahalingam", "active": false, "timeZone": "America/Los_Angeles" }, "body": "FR passed. Danger failed on master .waiting for that to get resolved to merge .PR merged for 8.0.X only", "updateAuthor": { "name": "kmahalingam", "key": "kmahalingam", "displayName": "Keerthi Mahalingam", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2019-04-12T20:33:19.000+0000", "updated": "2019-04-12T20:33:19.000+0000" }, { "id": "447689", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "Merged to master and 8_0_X", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2019-04-15T12:57:16.000+0000", "updated": "2019-04-15T12:57:16.000+0000" }, { "id": "447782", "author": { "name": "kmahalingam", "key": "kmahalingam", "displayName": "Keerthi Mahalingam", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Verified the fix on SDK 8.1.0.v20190419091515 and 8.0.1.v20190418104938. Entitlements file and capabilities shows as expected. closing.\r\n{code}\r\nOperating System\r\n Name = Mac OS X\r\n Version = 10.13.6\r\n Architecture = 64bit\r\nNode.js\r\n Node.js Version = 8.9.1\r\n npm Version = 5.5.1\r\nTitanium CLI\r\n CLI Version = 5.1.1\r\nTitanium SDK\r\n SDK Version = 8.0.1.v20190418104938 and 8.1.0.v20190419091515\r\nCli=7.0.11-70X.1\r\nStudio = 5.1.2.201903111843\r\n{code}\r\n", "updateAuthor": { "name": "kmahalingam", "key": "kmahalingam", "displayName": "Keerthi Mahalingam", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2019-04-19T18:42:32.000+0000", "updated": "2019-04-19T18:42:32.000+0000" } ], "maxResults": 4, "total": 4, "startAt": 0 } } }