iOS 10では、メディアライブラリ、写真、カメラ、その他のハードウェアにアクセスするためのユーザー権限が必要です。これを解決するには、自分のデータをどのように使用しているのかをユーザーに説明して、それらのキーをinfo.plist
に追加します。
私はいくつかの鍵しか見つけることができませんでした
NSPhotoLibraryUsageDescription
NSMicrophoneUsageDescription
NSCameraUsageDescription
iOS 10
のように他のハードウェア用のキーが他にもあるかどうか知りたいのですが、もしinfo.plist
に適切なキーの説明を与えていなければ、XCode-8ベータを使ってビルドするとアプリケーションはクラッシュします。
Cocoa Keys
ファイルで指定できるすべてのInfo.plist
のリストがあります。
(Xcodeターゲット->情報->カスタムiOSターゲットプロパティ)
iOSは、マイク、カメラ、およびメディアライブラリにアクセスするためのアクセス許可を既に必要としていましたearlier(iOS6、iOS7)ですが、iOS10
アプリはcrash許可を求めている理由の説明を提供しない場合(空にすることはできません)。
Info.plistをソースコードとして開くこともできます:
そして次のように追加します:
<key>NSLocationAlwaysUsageDescription</key>
<string>${PRODUCT_NAME} always location use</string>
すべてのプライバシーキーのリスト:
NSCameraUsageDescription
NSBluetoothPeripheralUsageDescription
NSCalendarsUsageDescription
NSContactsUsageDescription
NSHealthShareUsageDescription
NSHealthUpdateUsageDescription
NSHomeKitUsageDescription
NSLocationAlwaysUsageDescription
NSLocationUsageDescription
NSLocationWhenInUseUsageDescription
NSAppleMusicUsageDescription
NSMicrophoneUsageDescription
NSMotionUsageDescription
kTCCServiceMediaLibrary
NSPhotoLibraryUsageDescription
NSRemindersUsageDescription
NSSiriUsageDescription
NSSpeechRecognitionUsageDescription
NSVideoSubscriberAccountUsageDescription
カメラの使用方法の説明が撮影した写真の処理内容を指定していなかったため、過去2か月間、レビュー中に2つのアプリが拒否されました。
アプリのコンテキストが明らかな場合でも(ユーザーがアバターをタップした)、説明を${PRODUCT_NAME} need access to the camera to take a photo
から${PRODUCT_NAME} need access to the camera to update your avatar
に変更する必要がありました。
Appleは現在、プライバシー使用の説明にさらに注意を払っているようであり、許可を求めている理由を詳細に説明する必要があります。
info.plist
のios 10リクエスト許可サンプルのコードを以下に示します。
あなたはあなたのカスタムメッセージ用に修正することができます。
<key>NSCameraUsageDescription</key>
<string>${PRODUCT_NAME} Camera Usage</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>${PRODUCT_NAME} BluetoothPeripheral</string>
<key>NSCalendarsUsageDescription</key>
<string>${PRODUCT_NAME} Calendar Usage</string>
<key>NSContactsUsageDescription</key>
<string>${PRODUCT_NAME} Contact fetch</string>
<key>NSHealthShareUsageDescription</key>
<string>${PRODUCT_NAME} Health Description</string>
<key>NSHealthUpdateUsageDescription</key>
<string>${PRODUCT_NAME} Health Updates</string>
<key>NSHomeKitUsageDescription</key>
<string>${PRODUCT_NAME} HomeKit Usage</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>${PRODUCT_NAME} Use location always</string>
<key>NSLocationUsageDescription</key>
<string>${PRODUCT_NAME} Location Updates</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>${PRODUCT_NAME} WhenInUse Location</string>
<key>NSAppleMusicUsageDescription</key>
<string>${PRODUCT_NAME} Music Usage</string>
<key>NSMicrophoneUsageDescription</key>
<string>${PRODUCT_NAME} Microphone Usage</string>
<key>NSMotionUsageDescription</key>
<string>${PRODUCT_NAME} Motion Usage</string>
<key>kTCCServiceMediaLibrary</key>
<string>${PRODUCT_NAME} MediaLibrary Usage</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>${PRODUCT_NAME} PhotoLibrary Usage</string>
<key>NSRemindersUsageDescription</key>
<string>${PRODUCT_NAME} Reminder Usage</string>
<key>NSSiriUsageDescription</key>
<string>${PRODUCT_NAME} Siri Usage</string>
<key>NSSpeechRecognitionUsageDescription</key>
<string>${PRODUCT_NAME} Speech Recognition Usage</string>
<key>NSVideoSubscriberAccountUsageDescription</key>
<string>${PRODUCT_NAME} Video Subscribe Usage</string>
iOS 11以降、ライブラリに写真/画像を追加したい場合は、このキーを追加する必要があります
<key>NSPhotoLibraryAddUsageDescription</key>
<string>${PRODUCT_NAME} library Usage</string>
IOS 10のInfo.plistにこの権限を追加する必要があります。
写真:
Key : Privacy - Photo Library Usage Description
Value : $(PRODUCT_NAME) photo use
マイク:
Key : Privacy - Microphone Usage Description
Value : $(PRODUCT_NAME) microphone use
カメラ:
Key : Privacy - Camera Usage Description
Value : $(PRODUCT_NAME) camera use