{
"id": "174159",
"key": "TIMOB-27419",
"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": "20884",
"name": "Release 8.2.1",
"archived": false,
"released": true,
"releaseDate": "2019-10-25"
}
],
"resolution": {
"id": "1",
"description": "A fix for this issue is checked into the tree and tested.",
"name": "Fixed"
},
"resolutiondate": "2019-10-08T22:15:48.000+0000",
"created": "2019-09-22T23:06:08.000+0000",
"priority": {
"name": "Critical",
"id": "1"
},
"labels": [
"engSchedule",
"ios"
],
"versions": [],
"issuelinks": [],
"assignee": {
"name": "vijaysingh",
"key": "vijaysingh",
"displayName": "Vijay Singh",
"active": true,
"timeZone": "America/Los_Angeles"
},
"updated": "2020-10-08T08:18:35.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": "Apple have added a new entitlement com.apple.developer.contacts.notes which allows apps to access the notes field of the contact db. The new entitlement is on a per app basis with developers required to put their case to Apple to gain it.\r\n\r\nTitanium requests CNContactNoteKey as part of the Ti.Contacts.getAllPeople method. This triggers a CNErrorDomain error 102.\r\n\r\nAny app compiled for iOS 13 without this entitlement will not be able to use the Ti.Contacts module for anything; regardless of needing the notes field.\r\n\r\nTo test create an empty project with the following in tiapp.xml\r\n\r\n NSContactsUsageDescription\r\n Contacts test\r\n\r\nAdd the following to alloy.js\r\nvar people = Ti.Contacts.getAllPeople();\r\n\r\nerror in console\r\n\r\n\r\n\r\n",
"attachment": [],
"flagged": false,
"summary": "Ti.Contacts.getAllPeople() fails on iOS 13",
"creator": {
"name": "nickkemp",
"key": "nickkemp",
"displayName": "Nick Kemp",
"active": true,
"timeZone": "Pacific/Auckland"
},
"subtasks": [],
"reporter": {
"name": "nickkemp",
"key": "nickkemp",
"displayName": "Nick Kemp",
"active": true,
"timeZone": "Pacific/Auckland"
},
"environment": "SDK 8.2.0.GA\r\niOS 13",
"closedSprints": [
{
"id": 1165,
"state": "closed",
"name": "2019 Sprint 20",
"startDate": "2019-09-23T15:38:43.949Z",
"endDate": "2019-10-06T15:38:00.000Z",
"completeDate": "2019-10-07T18:33:11.953Z",
"originBoardId": 114
},
{
"id": 1168,
"state": "closed",
"name": "2019 Sprint 21",
"startDate": "2019-10-07T18:35:57.052Z",
"endDate": "2019-10-20T18:35:00.000Z",
"completeDate": "2019-10-21T15:38:00.182Z",
"originBoardId": 114
}
],
"comment": {
"comments": [
{
"id": "451563",
"author": {
"name": "nickkemp",
"key": "nickkemp",
"displayName": "Nick Kemp",
"active": true,
"timeZone": "Pacific/Auckland"
},
"body": "I have tested removing references to CNContactNoteKey on 8_2_X branch and can confirm without this key everything is fine.\r\n\r\nI guess you will need to come up with a way to let users request access with/without the notes field on iOS.",
"updateAuthor": {
"name": "nickkemp",
"key": "nickkemp",
"displayName": "Nick Kemp",
"active": true,
"timeZone": "Pacific/Auckland"
},
"created": "2019-09-22T23:39:32.000+0000",
"updated": "2019-09-22T23:39:32.000+0000"
},
{
"id": "451631",
"author": {
"name": "vijaysingh",
"key": "vijaysingh",
"displayName": "Vijay Singh",
"active": true,
"timeZone": "America/Los_Angeles"
},
"body": "[~nickkemp] Thanks for raising the issue and detailed investigation.\r\n\r\nI think we can introduce a new property \"Ti.Contact.includeNote\" which need to be set before other API calls on Ti.Contact.\r\n\r\nIf one do not need 'note', just set \r\nTi.Contact.includeNote = false;\r\n\r\nDefault value of Ti.Contact.includeNote will be 'true' to avoid breaking change. From next major release we'll make default value 'false'.\r\n\r\nLet me know if you have any other thoughts.\r\nThanks!",
"updateAuthor": {
"name": "vijaysingh",
"key": "vijaysingh",
"displayName": "Vijay Singh",
"active": true,
"timeZone": "America/Los_Angeles"
},
"created": "2019-09-26T00:32:50.000+0000",
"updated": "2019-09-26T00:32:50.000+0000"
},
{
"id": "451671",
"author": {
"name": "vijaysingh",
"key": "vijaysingh",
"displayName": "Vijay Singh",
"active": true,
"timeZone": "America/Los_Angeles"
},
"body": "PR (master) - https://github.com/appcelerator/titanium_mobile/pull/11247\r\nPR (8_2_X) - https://github.com/appcelerator/titanium_mobile/pull/11248\r\n\r\nTest Case - \r\n\r\n{code:java}\r\nTi.Contacts.includeNote = false;\r\nvar people = Ti.Contacts.getAllPeople();\r\n{code}\r\n\r\nRun above test case on iOS 13, it should not log any error message in console.\r\n",
"updateAuthor": {
"name": "vijaysingh",
"key": "vijaysingh",
"displayName": "Vijay Singh",
"active": true,
"timeZone": "America/Los_Angeles"
},
"created": "2019-09-27T21:17:39.000+0000",
"updated": "2019-09-27T21:17:39.000+0000"
},
{
"id": "451867",
"author": {
"name": "ssekhri",
"key": "ssekhri",
"displayName": "Satyam Sekhri",
"active": true,
"timeZone": "America/Los_Angeles"
},
"body": "FR Passed\r\nFetching of contacts works without error when Ti.Contacts.includeNote is set to false.",
"updateAuthor": {
"name": "ssekhri",
"key": "ssekhri",
"displayName": "Satyam Sekhri",
"active": true,
"timeZone": "America/Los_Angeles"
},
"created": "2019-10-04T22:44:56.000+0000",
"updated": "2019-10-04T22:44:56.000+0000"
},
{
"id": "451868",
"author": {
"name": "ssekhri",
"key": "ssekhri",
"displayName": "Satyam Sekhri",
"active": true,
"timeZone": "America/Los_Angeles"
},
"body": "Waiting for jenkins build on 8_2_X to merge",
"updateAuthor": {
"name": "ssekhri",
"key": "ssekhri",
"displayName": "Satyam Sekhri",
"active": true,
"timeZone": "America/Los_Angeles"
},
"created": "2019-10-04T22:45:32.000+0000",
"updated": "2019-10-04T22:45:32.000+0000"
},
{
"id": "451900",
"author": {
"name": "cwilliams",
"key": "cwilliams",
"displayName": "Christopher Williams",
"active": true,
"timeZone": "America/New_York"
},
"body": "Merged to master and 8_2_X",
"updateAuthor": {
"name": "cwilliams",
"key": "cwilliams",
"displayName": "Christopher Williams",
"active": true,
"timeZone": "America/New_York"
},
"created": "2019-10-08T14:25:56.000+0000",
"updated": "2019-10-08T14:25:56.000+0000"
},
{
"id": "451909",
"author": {
"name": "ssekhri",
"key": "ssekhri",
"displayName": "Satyam Sekhri",
"active": true,
"timeZone": "America/Los_Angeles"
},
"body": "Verified On:\r\nMac OS: 10.14.5\r\nSDK: 8.2.1.v20191008121020, 8.3.0.v20191008081818\r\nAppc CLI: 7.1.1\r\nJDK: 1.8.0_162\r\nNode: 10.5.0\r\nStudio: 5.1.4.201909061933\r\nXcode: 11.0\r\niOS Device: iPhone X(13.0)",
"updateAuthor": {
"name": "ssekhri",
"key": "ssekhri",
"displayName": "Satyam Sekhri",
"active": true,
"timeZone": "America/Los_Angeles"
},
"created": "2019-10-08T22:15:48.000+0000",
"updated": "2019-10-08T22:15:48.000+0000"
}
],
"maxResults": 8,
"total": 8,
"startAt": 0
}
}
}