{ "id": "154818", "key": "TIMOB-20373", "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": "17706", "name": "Release 5.4.0", "archived": false, "released": true, "releaseDate": "2016-08-11" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2016-03-25T14:48:27.000+0000", "created": "2016-02-09T09:13:42.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [], "versions": [], "issuelinks": [], "assignee": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2016-07-14T21:18:13.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": "13715", "name": "Hyperloop", "description": "Hyperloop project" } ], "description": "We received a community note that Titanium Mobile applications using the Hyperloop module being rejected by Apple during review because of the usage of private API symbols e.g. {{_JSSynchronousGarbageCollectForDebugging}}. \r\n\r\nAs we clearly state that Hyperloop should not be used in production, yet, it's no critical issue, but should be faced in the 6.0.0 timeline. Original comment:\r\n\r\n{quote}\r\njust tried to submit an app to Testflight. the app uses hyperloop. binary got uploaded but a message from Apple says: \"Non-public API usage: The app references non-public symbols in: _JSSynchronousGarbageCollectForDebugging\"\r\nI found references to _JSSynchronousGarbageCollectForDebugging in libhyperloop-jscore.a and libhyperloop-ticora.a\r\nI used the hyperloop model and plugin as available on github:\r\nhttps://github.com/appcelerator/hyperloop-examples (version 1.0.1) and SDK 5.2.0.v20160114021251\r\n{quote}", "attachment": [], "flagged": false, "summary": "Hyperloop: Apps being rejected by Apple because of using private API's", "creator": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "subtasks": [], "reporter": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "environment": "Application: hyperloop-examples 1.0.1\r\nHyperloop: 1.1.0.beta\r\nTi.SDK: 5.2.0.v20160114021251", "closedSprints": [ { "id": 597, "state": "closed", "name": "2016 Sprint 06 SDK", "startDate": "2016-03-12T01:30:59.982Z", "endDate": "2016-03-26T00:30:00.000Z", "completeDate": "2016-03-28T03:38:09.726Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "376318", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Reported by [~ludolphus] in the TiSlack channel.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-02-09T09:14:45.000+0000", "updated": "2016-02-09T09:14:45.000+0000" }, { "id": "376345", "author": { "name": "ludolphus", "key": "ludolphus", "displayName": "Steven van Loef", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "this was also in the email from Apple:\r\nbq. If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed.", "updateAuthor": { "name": "ludolphus", "key": "ludolphus", "displayName": "Steven van Loef", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2016-02-09T16:54:23.000+0000", "updated": "2016-02-09T16:54:23.000+0000" }, { "id": "378069", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Hi [~ludolphus], can you please try the version [1.1.1|https://www.dropbox.com/s/xv6ith72m0jfkf7/hyperloop-1.1.1.zip?dl=0] which should resolve the submission error as well. If everything works, we will update the hyperloop-examples repository as well as labs. Thank you!", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-02-28T13:45:33.000+0000", "updated": "2016-02-28T13:45:33.000+0000" }, { "id": "378077", "author": { "name": "ludolphus", "key": "ludolphus", "displayName": "Steven van Loef", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Hi Hans, thanks for this build. I've uploaded an app and waiting for a reaction from Apple. I'll let you know as soon as I here back from them. ", "updateAuthor": { "name": "ludolphus", "key": "ludolphus", "displayName": "Steven van Loef", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2016-02-28T15:51:11.000+0000", "updated": "2016-02-28T15:51:11.000+0000" }, { "id": "378078", "author": { "name": "ludolphus", "key": "ludolphus", "displayName": "Steven van Loef", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "The test app uploaded successfully and is now waiting for TestFlight beta approval. With the previous version of Hyperloop I did not get to this stage, so I think build 1.1.1 is no longer using private API's. Will let you know if anything else concerning this is reported back by Apple.", "updateAuthor": { "name": "ludolphus", "key": "ludolphus", "displayName": "Steven van Loef", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2016-02-28T17:42:53.000+0000", "updated": "2016-02-28T17:42:53.000+0000" }, { "id": "378200", "author": { "name": "ludolphus", "key": "ludolphus", "displayName": "Steven van Loef", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "app got rejected, but not because of anything related to this ticket. So as far as I can see v1.1.1 of the Hyperloop module fixes the private API issue.", "updateAuthor": { "name": "ludolphus", "key": "ludolphus", "displayName": "Steven van Loef", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2016-02-29T21:35:08.000+0000", "updated": "2016-02-29T21:35:08.000+0000" }, { "id": "378456", "author": { "name": "ludolphus", "key": "ludolphus", "displayName": "Steven van Loef", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "app got approved for testflight beta yesterday evening and is now in the hands of a few beta testers.\r\n\r\ngood to go!", "updateAuthor": { "name": "ludolphus", "key": "ludolphus", "displayName": "Steven van Loef", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2016-03-02T10:31:08.000+0000", "updated": "2016-03-02T10:31:08.000+0000" }, { "id": "390734", "author": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Closing ticket as fixed as per above comments.\r\n\r\nPlease reopen if you encounter this issue again.", "updateAuthor": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-07-14T21:18:05.000+0000", "updated": "2016-07-14T21:18:05.000+0000" } ], "maxResults": 10, "total": 10, "startAt": 0 } } }