IOS 10 GMリリースでこの問題に直面し始めたばかりです。次のようなメールを受け取りました:
配送を処理するには、次の問題を修正する必要があります。
このアプリは、使用法の説明なしでプライバシーに敏感なデータにアクセスしようとします。アプリのInfo.plistには、アプリがこのデータをどのように使用するかをユーザーに説明する文字列値を持つNSCameraUsageDescriptionキーが含まれている必要があります。
必要な修正が行われたら、修正されたバイナリを再配信できます。
よろしく、
App Storeチーム
Google GoogleSignInを使用しています。私はFirebaseを使用していませんが、GoogleSignInをココアポッドと一緒にインストールすると、ログにFirebaseが自動的にインストールされていることがわかりました。
私のアプリはカメラ/写真などとは関係がないので、これらのキーを定義する以外にできることはありますか?.
他の誰かがこの問題に直面していることに気付きました: https://forums.developer.Apple.com/thread/62229
Googleの完全な回避策へのリンクは次のとおりです。 https://groups.google.com/d/msg/google-admob-ads-sdk/UmeVUDrcDaw/HIXR0kjUAgAJ
そのリンクの詳細情報ですが、TL; DRバージョンでは、plistに3つの項目を追加する必要があります。
<key>NSCalendarsUsageDescription</key>
<string>Advertisement would like to create a calendar event.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Advertisement would like to store a photo.</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>Advertisement would like to use bluetooth.</string>
IOS 10では、Appleにより、ポップアップを必要とする機能のInfo.plistで使用法の説明を定義することが要件になりました。 http://useyourloaf.com/blog/privacy-settings-in-ios-10/ を参照してください
ベータプログラム中に、使用法の説明が設定されていないと、アプリがプロンプトを表示するときにクラッシュしました。
ITunes Connect検証ツールは、権限関連オブジェクトに関連付けられているクラスへのアプリ内の参照を検索するように変更されているようです。 Info.plistエントリがない場合、バイナリを拒否します。
これは、カメラが存在するかどうかを検出するライブラリに古いヘルパーメソッドがあった自分のアプリの1つで見ました。アプリがそのメソッドを呼び出さなかったとしても、同じファイルで別のメソッドを使用したため、バイナリにリンクされていました。そのアプリはカメラを使用しなかったため、Info.plistエントリを定義しませんでした。そしてそれは拒否されました。私は単にヘルパーメソッドを削除し、それを使用した他のアプリにチェックを移動しました。
ただし、AdMobにはカレンダーへの参照があるため、広告を使用し、カレンダー自体を使用していないアプリは送信できません。 Googleに感謝します!
これがすべてのプライバシーキーです。簡単な説明を付けてInfo.plistに手動で追加する必要があります。
• Bluetooth Sharing – NSBluetoothPeripheralUsageDescription
• Calendar – NSCalendarsUsageDescription
• CallKit – NSVoIPUsageDescription
• Camera – NSCameraUsageDescription
• Contacts – NSContactsUsageDescription
• Health – NSHealthShareUsageDescription & NSHealthUpdateUsageDescription
• HomeKit – NSHomeKitUsageDescription
• Location – NSLocationUsageDescription, NSLocationAlwaysUsageDescription, NSLocationWhenInUseUsageDescription
• Media Library – NSAppleMusicUsageDescription
• Microphone – NSMicrophoneUsageDescription
• Motion – NSMotionUsageDescription
• Photos – NSPhotoLibraryUsageDescription
• Reminders – NSRemindersUsageDescription
• Speech Recognition – NSSpeechRecognitionUsageDescription
• SiriKit – NSSiriUsageDescription
• TV Provider – NSVideoSubscriberAccountUsageDescription
EDIT:上記の回答を参照してください https://stackoverflow.com/a/39476283/1634905 googleによる回避策。回避策には、必要な追加のキーがありません:NSCameraUsageDescription
回避策の解決策:GoogleのAdMobおよびGoogleSignInのフレームワークは、アプリが実行しない場合でもそのような権限を使用するfirebaseを自動的にインストールします。 info.plist
でNSCameraUsageDescription
を定義したら、アプリがユーザーにプロンプトを表示せず、テキストも表示されないことを期待して問題なく送信できます。
7.11.0で修正 https://firebase.google.com/docs/admob/release-notes
必ずSDKを更新してください
Googleフレームワークは、ユーザーの許可(つまり、ユーザーの位置)を必要とする追加のシステムフレームワークを使用し、.plistファイルに関連する説明を追加するのを忘れている可能性があります!再確認してください。
使用許可の説明の一部は、iOS 10で必須になりました。
ESRIのArcGIS.frameworkを使用している場合は、必ずこのキーを追加してください。