{ "id": "152203", "key": "TIMOB-19753", "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": "14826", "description": "Release 5.1.0-remaining iOS9 features, Android M features", "name": "Release 5.1.0", "archived": false, "released": true, "releaseDate": "2015-11-20" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2015-10-22T22:16:05.000+0000", "created": "2015-10-20T19:06:53.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [], "versions": [ { "id": "16925", "description": "WatchKit Support--all going into 5.0 now", "name": "Release 5.0.0", "archived": true, "released": true, "releaseDate": "2015-09-16" } ], "issuelinks": [], "assignee": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2015-11-20T04:28: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": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "Two [Q&A users reported|https://community.appcelerator.com/topic/3597/apple-reject-app-because-it-detect-handoff-feature] it has app was rejected by Apple because:\r\n\r\n{quote}\r\n2.3 Details\r\n\r\nWe were unable to locate some of the features described in your marketing materials or release notes. Specifically, your app uses the Handoff API, but does not provide Handoff functionality.\r\n\r\nPlease revise your app to ensure that these features are fully implemented or revise your application to remove the Handoff API from use.\r\n\r\nWe look forward to reviewing your revised app.\r\n\r\nBest Regards,\r\n\r\nApp Store Review\r\n{quote}\r\n\r\nI know we're not including API classes that are not being used, but of course for Handoff, App Shortcuts and other features we set up delegates in our bootstrapping as well. It looks like we might need to somehow do this only if it is actually used.\r\n\r\nOptions:\r\n\r\n* Have users enable these features via a {{tiapp.xml}} property.\r\n* Scan the code for usage of the APIs (which we do anyway) and then set a build flag which we can then use in the bootstrapping code.", "attachment": [], "flagged": false, "summary": "Apple rejects app because it detected Handoff API reference with no use", "creator": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "subtasks": [], "reporter": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "environment": "SDK 5.0.0.GA", "closedSprints": [ { "id": 503, "state": "closed", "name": "2015 Sprint 21 SDK", "startDate": "2015-10-10T00:32:18.011Z", "endDate": "2015-10-24T00:32:00.000Z", "completeDate": "2015-10-26T02:20:47.579Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "367388", "author": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "The [PR|https://github.com/appcelerator/titanium_mobile/pull/7324] might cause problems because when {{Titanium.App.iOS.UserActivity}} is not used, then {{Titanium.App.iOS.SearchableIndex}} still might be, which uses {{application:continueUserActivity:restorationHandler:}} as well. I'm not sure if there are other cases. Perhaps Universal Links?\r\n\r\nIf Apple is getting more strict in this we might need to split up code in separate classes more to prevent using {{#ifdef}} all over the place.", "updateAuthor": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2015-10-21T07:45:42.000+0000", "updated": "2015-10-21T07:45:42.000+0000" }, { "id": "367482", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "PR merged.Waiting for backports.", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-10-22T00:36:51.000+0000", "updated": "2015-10-22T00:36:51.000+0000" }, { "id": "367562", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "PR (5_1_X): https://github.com/appcelerator/titanium_mobile/pull/7335\r\nPR (5_0_X): https://github.com/appcelerator/titanium_mobile/pull/7336", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2015-10-22T20:20:51.000+0000", "updated": "2015-10-22T20:20:51.000+0000" }, { "id": "367837", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~hansknoechel] let's merge the backport.", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-10-26T17:30:17.000+0000", "updated": "2015-10-26T17:30:17.000+0000" }, { "id": "368154", "author": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Verified fixed, using:\r\n\r\nMacOS 10.11.2 (15C27e)\r\nStudio 4.4.0.201510280736\r\nTi SDK 5.1.0.v20151028061258\r\nAppc NPM 4.2.1\r\nAppc CLI 5.1.0-38\r\nTi CLI 5.0.5\r\nAlloy 1.7.16\r\nArrow 1.3.13\r\nXcode 7.2 (7C46l)\r\nNode v0.12.7\r\nJava 1.7.0_80\r\nproduction\r\n\r\nSubmitted app was not rejected when using APIs from the Ti.App.iOS.* namespace", "updateAuthor": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-10-28T18:11:20.000+0000", "updated": "2015-10-28T18:11:20.000+0000" } ], "maxResults": 9, "total": 9, "startAt": 0 } } }