は、私は、既存のアプリは、2010年以降、およびiOSの10で今、アプリが使用法を説明しInfo.plist
内の文字列を持っていることが要求されている: http://useyourloaf.com/blog/privacy-settings-in-ios-10/EventKitUI/EKCalendarChooserは連絡先にアクセスする必要があります - なぜですか?ここで説明したように
しかし、私はすでにに対応するキーを追加しました私のInfo.plist。それでも、アプリがカレンダーにアクセスしようとすると、ユーザーがアプリクラッシュを報告します。今、私はこのようになりますクラッシュレポート、送信するために、管理ユーザーの一人:
Termination Reason: TCC, This app has crashed because it attempted to access
privacy-sensitive data without a usage description.
The app's Info.plist must contain an NSContactsUsageDescription key with a string value explaining to the user how the app uses this data.
Triggered by Thread: 2
Filtered syslog:
None found
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0:
0 libsystem_kernel.dylib 0x00000001812501a8 0x18124f000 + 4520
1 libdispatch.dylib 0x000000018113b7ec 0x181128000 + 79852
2 Contacts 0x000000018aa2c63c 0x18a9c8000 + 411196
3 Contacts 0x000000018a9f7c40 0x18a9c8000 + 195648
4 Contacts 0x000000018aa08578 0x18a9c8000 + 263544
5 EventKitUI 0x000000018f18b5a4 0x18f169000 + 140708
6 EventKitUI 0x000000018f2a9628 0x18f169000 + 1312296
7 EventKitUI 0x000000018f2aa3a8 0x18f169000 + 1315752
8 UIKit 0x000000018843b1b4 0x1880e8000 + 3486132
を今の質問は、なぜ連絡先へのアクセスを必要とする私のアプリですが、私のアプリは、読み取り/書き込みたいですカレンダー?私はEKCalendarChooser
を開封しておりますクラッシュコードで
、および以前に私が持っている私のInfo.plistでeventStore requestAccessToEntityType:EKEntityTypeEvent completion:(...)
を使用して権限をユーザーに尋ねた:
<key>NSCalendarsUsageDescription</key>
<string>Storing of leave data</string>
それでは、どのように私はこれを修正しますか?クラッシュレポートに示されているようにNSContactsUsageDescription
を追加する必要がありますか?どうして?また、連絡先アクセスのためのポップアッププロンプトが表示されますが、これはほとんどのユーザーがおそらく悪いと考えるでしょうか?
注:奇妙なことは、私のデバイスでこのクラッシュを再現することができないことです。この種のクラッシュを報告しているユーザーは2人だけです。
安全のためにNSContactsUsageDescription .iを追加してください。私のアプリにもフォトライブラリの使用説明が追加されていますが、私のアプリではフォトライブラリを使用していません。 –
さて、なぜですか?理由を知っているときに連絡先の権限が不要になるようにコードを変更する可能性があります。 – user826955