Uploaded image for project: 'Titanium SDK/CLI'
  1. Titanium SDK/CLI
  2. TIMOB-27419

Ti.Contacts.getAllPeople() fails on iOS 13

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: Release 8.2.1
    • Component/s: iOS
    • Labels:
    • Environment:

      SDK 8.2.0.GA
      iOS 13

    • Story Points:
      5
    • Sprint:
      2019 Sprint 20, 2019 Sprint 21

      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.

      Titanium requests CNContactNoteKey as part of the Ti.Contacts.getAllPeople method. This triggers a CNErrorDomain error 102.

      Any 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.

      To test create an empty project with the following in tiapp.xml

      <key>NSContactsUsageDescription</key>
      <string>Contacts test</string>

      Add the following to alloy.js
      var people = Ti.Contacts.getAllPeople();

      error in console

        Attachments

          Activity

            People

            • Assignee:
              vijaysingh Vijay Singh
              Reporter:
              nickkemp Nick Kemp
              Reviewer:
              Jan Vennemann
              Tester:
              Satyam Sekhri
            • Watchers:
              6 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Backbone Issue Sync

                • Backbone Issue Sync is enabled for your project, but we do not have any synchronization info for this issue.

                  Git Source Code