{ "id": "165317", "key": "TIMOB-24314", "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": "18928", "name": "Release 6.0.2", "archived": false, "released": true, "releaseDate": "2017-02-27" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2017-01-25T11:49:35.000+0000", "created": "2017-01-16T18:58:52.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "haptic-engine", "ios", "ios10", "iphone7" ], "versions": [], "issuelinks": [], "assignee": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2017-01-25T11:49: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": "TIMOB-23891 brought us iOS 10 haptic engine support for the iPhone 7 and later. This is great! But unfortunately, it crashes when running on kroll-thread, because the methods require the main-thread internally. Since I caused this, I'll fix it :-)", "attachment": [], "flagged": false, "summary": "iOS: Ti.UI.iOS.FeedbackGenerator crashes on kroll-thread", "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": null, "closedSprints": [ { "id": 796, "state": "closed", "name": "2017 Sprint 02 SDK", "startDate": "2017-01-15T00:00:41.845Z", "endDate": "2017-01-29T00:00:00.000Z", "completeDate": "2017-01-30T21:10:44.640Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "404657", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "PR: https://github.com/appcelerator/titanium_mobile/pull/8756\r\n\r\nTest-Case:\r\n{code:js}\r\nvar win = Ti.UI.createWindow({\r\n backgroundColor: '#fff'\r\n});\r\n\r\nvar btn = Ti.UI.createButton({\r\n title: 'Trigger'\r\n});\r\n\r\nbtn.addEventListener('click', function() {\r\n var feedback = Ti.UI.iOS.createFeedbackGenerator({\r\n type: Ti.UI.iOS.FEEDBACK_GENERATOR_TYPE_SELECTION\r\n });\r\n feedback.prepare();\r\n feedback.selectionChanged();\r\n});\r\n\r\nwin.add(btn);\r\nwin.open();\r\n{code}", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-01-16T19:00:47.000+0000", "updated": "2017-01-16T19:00:47.000+0000" }, { "id": "405062", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "PR (6_0_X): https://github.com/appcelerator/titanium_mobile/pull/8771", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-01-23T13:44:30.000+0000", "updated": "2017-01-23T13:44:30.000+0000" }, { "id": "405101", "author": { "name": "awaldman", "key": "awaldman", "displayName": "Andy Waldman", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Tested 23th january 2017:\r\nAfter creating a new classic app with environment:\r\nMacOS:10.12.1\r\nXCODE: 8.2.1 GM (golden master)\r\nAPPC CLI Core: 6.1.0\r\nAPPC CLI NPM: 4.2.8\r\nSDK: 6.0.2.v20170123062940\r\nStudio build: 4.8.1.201612050850\r\nNPM: 2.15.9\r\nNode: 4.5.0\r\nSteps:\r\n\r\n1) create a new classic app\r\n2) copy into app.js\r\n{code:java}\r\nvar win = Ti.UI.createWindow({\r\n backgroundColor: '#fff'\r\n});\r\n \r\nvar btn = Ti.UI.createButton({\r\n title: 'Trigger'\r\n});\r\n \r\nbtn.addEventListener('click', function() {\r\n var feedback = Ti.UI.iOS.createFeedbackGenerator({\r\n type: Ti.UI.iOS.FEEDBACK_GENERATOR_TYPE_SELECTION\r\n });\r\n feedback.prepare();\r\n feedback.selectionChanged();\r\n});\r\n \r\nwin.add(btn);\r\nwin.open();\r\n{code}\r\n\r\n3) change the main thread to false \r\n{code:java}\r\nfalse\r\n{code}\r\n\r\n4) run the code in the current 6.0.2 sdk\r\n5) using an iphone 7, the taptic engine works on press and no longer forces a close\r\n6) do the same as step 3 but change to \"true\"\r\n7) The same outcome, the app does not crash \r\n8) To make sure that the crash did happen i used the 6.0.1GA and did steps 3-7 and when the main thread was false the app did crash when it was true the app did not crash\r\n9) To finalize this fix has been verified for 6.0.2\r\n\r\nThis ticket has been verified ", "updateAuthor": { "name": "awaldman", "key": "awaldman", "displayName": "Andy Waldman", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-01-23T21:03:04.000+0000", "updated": "2017-01-23T21:03:04.000+0000" } ], "maxResults": 3, "total": 3, "startAt": 0 } } }