{ "id": "166127", "key": "TIMOB-24413", "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": "17608", "name": "Release 6.1.0", "archived": false, "released": true, "releaseDate": "2017-05-26" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2017-03-13T16:41:22.000+0000", "created": "2017-02-17T08:46:56.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "android", "module", "ti.touchid" ], "versions": [], "issuelinks": [], "assignee": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2017-08-31T07:54:10.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": "10202", "name": "Android", "description": "Android Platform" } ], "description": "Ti.TouchID causes a crash on Android devices that don't support fingerprint authentication, or where any fingerprint hasn't been added yet.\r\nIn such devices, the constructor for FingerPrintHelper throws an exception, and every subsequent reference to the object triggers an error of this kind:\r\n{code:java}\r\nJNI ERROR (app bug): attempt to use stale global reference\r\n{code}\r\n\r\n*Steps to reproduce:*\r\n- Create a Titanium app that requires ti.touchid\r\n- Install on a Android device with no fingerprint added by the user\r\n- Call any method of ti.touchid\r\n", "attachment": [], "flagged": false, "summary": "Android: Ti.TouchID crashes app on unsupported devices", "creator": { "name": "ajonus", "key": "ajonus", "displayName": "Andrea Jonus", "active": true, "timeZone": "Europe/Rome" }, "subtasks": [], "reporter": { "name": "ajonus", "key": "ajonus", "displayName": "Andrea Jonus", "active": true, "timeZone": "Europe/Rome" }, "environment": "Ti SDK 6.0.0\r\nTiTouchID 2.1.0\r\nAndroid: Samsung S5 API 23", "closedSprints": [ { "id": 854, "state": "closed", "name": "2017 Sprint 06 SDK", "startDate": "2017-03-12T19:14:58.337Z", "endDate": "2017-03-26T19:14:00.000Z", "completeDate": "2017-03-26T22:01:15.828Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "407274", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Can you try the [Ti.TouchID 2.1.0|https://github.com/appcelerator-modules/ti.touchid/releases/tag/android-2.1.0] version on Android? One of the fixes was exactly for that. In general: Follow Github repos for those updates, since patches are available there before they are distributed with the SDK (2.1.0 will be prepackaged in SDK 6.1.0).", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-02-17T12:11:48.000+0000", "updated": "2017-02-17T12:11:48.000+0000" }, { "id": "407279", "author": { "name": "ajonus", "key": "ajonus", "displayName": "Andrea Jonus", "active": true, "timeZone": "Europe/Rome" }, "body": "I'm currently using the 2.1.0 version. Sorry, i forgot to add the module version in the description.\r\nI saw https://github.com/appcelerator-modules/ti.touchid/pull/24 and https://github.com/appcelerator-modules/ti.touchid/pull/25 , but i don't think they cover this case.", "updateAuthor": { "name": "ajonus", "key": "ajonus", "displayName": "Andrea Jonus", "active": true, "timeZone": "Europe/Rome" }, "created": "2017-02-17T13:07:40.000+0000", "updated": "2017-02-17T13:07:40.000+0000" }, { "id": "407288", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "But if you check with {{TouchID. isSupported()}} and it returns false, you shouldn't call any of the other methods. That's why we have that method exposed. Or do I understand something wrong?", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-02-17T15:27:02.000+0000", "updated": "2017-02-17T15:27:02.000+0000" }, { "id": "407292", "author": { "name": "ajonus", "key": "ajonus", "displayName": "Andrea Jonus", "active": true, "timeZone": "Europe/Rome" }, "body": "The problem is that the app crashes when calling ANY method of TouchID when the device is not supported, INCLUDING {{TouchID.isSupported()}}.", "updateAuthor": { "name": "ajonus", "key": "ajonus", "displayName": "Andrea Jonus", "active": true, "timeZone": "Europe/Rome" }, "created": "2017-02-17T15:39:15.000+0000", "updated": "2017-02-17T15:40:42.000+0000" }, { "id": "407293", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "All others are supposed to fail, otherwise we would need to guard all method as well, which would result in a duplicated check. I'm still wondering why {{isSupported()}} crashes though. Let us check that, moving to TIMOB.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-02-17T15:41:45.000+0000", "updated": "2017-02-17T15:41:45.000+0000" }, { "id": "407945", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Community PR: https://github.com/appcelerator-modules/ti.touchid/pull/27", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-02-24T09:05:43.000+0000", "updated": "2017-02-24T09:05:43.000+0000" }, { "id": "408051", "author": { "name": "awaldman", "key": "awaldman", "displayName": "Andy Waldman", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~hansknoechel] Hi Hans I was wondering whether this is an open ticket or the ticket is needing to be reviewed ?", "updateAuthor": { "name": "awaldman", "key": "awaldman", "displayName": "Andy Waldman", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-02-27T17:47:24.000+0000", "updated": "2017-02-27T17:47:24.000+0000" }, { "id": "408075", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~awaldman] It's open and assigned to [~gmathews], so he'll probably put it into review when he reviews it :-)", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-02-27T22:32:11.000+0000", "updated": "2017-02-27T22:32:11.000+0000" }, { "id": "412715", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Checked the fix by building the {{ti.touchid}} module from source & the app does not crash on unsupported devices.\r\n\r\nClosing.\r\n\r\nAppc Studio : 4.8.1.201612050850\r\nSDK Version : 6.1.0.v20170315131319\r\nMac OS Version : 10.12.3\r\nXcode Version : Xcode 8.2.1 Build version 8C1002\r\nAppc CLI AND Appc NPM : {\"NPM\":\"4.2.8\",\"CLI\":\"6.1.0\"}\r\nTi CLI : 5.0.11\r\nAlloy : 1.9.5\r\nNode : v4.6.0\r\nDevice: running 7.1.1Pixel, Nexus 6 android 6.0.1", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-03-15T22:30:33.000+0000", "updated": "2017-03-15T22:30:33.000+0000" }, { "id": "423277", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~aislam] Updated the {{2.2.0}} pre-release .zip, please re-download and try again?", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-06-30T15:45:54.000+0000", "updated": "2017-06-30T15:45:54.000+0000" }, { "id": "423295", "author": { "name": "aislam", "key": "aislam", "displayName": "Aminul Islam", "active": false, "timeZone": "Etc/GMT-6" }, "body": "Hi, \r\nUnable to reproduce that error with updated the 2.2.0 pre-release and latest SDK 6.1.1.GA on Android 6 (HTC one).\r\n", "updateAuthor": { "name": "aislam", "key": "aislam", "displayName": "Aminul Islam", "active": false, "timeZone": "Etc/GMT-6" }, "created": "2017-06-30T18:43:32.000+0000", "updated": "2017-06-30T18:43:32.000+0000" }, { "id": "427415", "author": { "name": "Snigdha.Nooli", "key": "snigdha.nooli", "displayName": "Snigdha Nooli", "active": true, "timeZone": "Asia/Kolkata" }, "body": "Hi,\r\n\r\nThis issue is not resolved with 6.1.0 GA. We are still facing the issue when trying to access any of the methods of ti.touchId module. Application is crashing when trying to access any method of touchid module on devices which does not support touch id. \r\nSDK : 6.1.2 GA\r\nCrashing on Devices : Nexus 7 (6.0.0) , Moto G3 (6.0.0)\r\n", "updateAuthor": { "name": "Snigdha.Nooli", "key": "snigdha.nooli", "displayName": "Snigdha Nooli", "active": true, "timeZone": "Asia/Kolkata" }, "created": "2017-08-30T14:07:14.000+0000", "updated": "2017-08-30T14:07:14.000+0000" }, { "id": "427418", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~Snigdha.Nooli] Please sure you use the latest module-version ([here|https://github.com/appcelerator-modules/ti.touchid/releases/tag/android-2.2.0], includes some more enhancements since then). The fix-version 6.1.0 just means that the updated module is included in that SDK, but you may still want to manually reference it in case you are running into issues. Example to ensure Ti.TouchID 2.2.0:\r\n{code:xml}\r\nti.touchid\r\n{code}", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-08-30T15:13:28.000+0000", "updated": "2017-08-30T15:13:28.000+0000" }, { "id": "427421", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~Snigdha.Nooli] You can do this for unsupported devices:\r\n\r\n{code}\r\nvar TouchId = require('ti.touchid');\r\n\r\nif (!TouchId.isSupported()) {\r\n Ti.API.warn('unsupported device!');\r\n return;\r\n}\r\n\r\n// use TouchId APIs here...\r\n{code}", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-08-30T15:25:54.000+0000", "updated": "2017-08-30T15:25:54.000+0000" }, { "id": "427444", "author": { "name": "Snigdha.Nooli", "key": "snigdha.nooli", "displayName": "Snigdha Nooli", "active": true, "timeZone": "Asia/Kolkata" }, "body": "Thanks. The issue is resolved with touchid module version 2.2.0.", "updateAuthor": { "name": "Snigdha.Nooli", "key": "snigdha.nooli", "displayName": "Snigdha Nooli", "active": true, "timeZone": "Asia/Kolkata" }, "created": "2017-08-31T07:54:10.000+0000", "updated": "2017-08-31T07:54:10.000+0000" } ], "maxResults": 16, "total": 16, "startAt": 0 } } }