web-dev-qa-db-ja.com

iOS 10 - カメラ、マイク、フォトライブラリへのアクセス許可の変更によりアプリケーションがクラッシュする

iOS 10では、メディアライブラリ、写真、カメラ、その他のハードウェアにアクセスするためのユーザー権限が必要です。これを解決するには、自分のデータをどのように使用しているのかをユーザーに説明して、それらのキーをinfo.plistに追加します。

私はいくつかの鍵しか見つけることができませんでした

NSPhotoLibraryUsageDescription
NSMicrophoneUsageDescription
NSCameraUsageDescription

iOS 10のように他のハードウェア用のキーが他にもあるかどうか知りたいのですが、もしinfo.plistに適切なキーの説明を与えていなければ、XCode-8ベータを使ってビルドするとアプリケーションはクラッシュします

90
Syed Ali Salman

Cocoa Keysファイルで指定できるすべてのInfo.plistのリストがあります。

https://developer.Apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html

(Xcodeターゲット->情報->カスタムiOSターゲットプロパティ)

iOSは、マイク、カメラ、およびメディアライブラリにアクセスするためのアクセス許可を既に必要としていましたearlier(iOS6、iOS7)ですが、iOS10アプリはcrash許可を求めている理由の説明を提供しない場合(空にすることはできません)。

例の説明があるプライバシーキー:cheatsheet

ソース

Info.plistをソースコードとして開くこともできます:source code

ソース

そして次のように追加します:

<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

更新2019:

カメラの使用方法の説明が撮影した写真の処理内容を指定していなかったため、過去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は現在、プライバシー使用の説明にさらに注意を払っているようであり、許可を求めている理由を詳細に説明する必要があります。

126
KlimczakM

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>
60
Ilesh

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
20
Kirit Modi