web-dev-qa-db-ja.com

IOS 10.0ランタイムのNSCameraUsageDescriptionはクラッシュしますか?

最後のベータ版のiOS 10.0を使う。私は自分のアプリでカメラを使ってバーコードをスキャンしようとしましたが、このランタイムエラーでクラッシュしました。

このアプリは、使用法の説明がなくても機密情報にアクセスしようとしたためにクラッシュしました。アプリのInfo.plistには、アプリがこのデータをどのように使用するかをユーザーに説明する文字列値を含むNSCameraUsageDescriptionキーを含める必要があります。

このキーをリストに入れてください、しかしそれはまだクラッシュしましたか?

137
user3069232

IOS 10以降は、以下のように、Info.plistで、アプリケーションによってアクセスされるすべてのシステムのプライバシーに敏感なデータの使用法の説明を定義して提供する必要があります。

カレンダー

Key    :  Privacy - Calendars Usage Description    
Value  :  $(PRODUCT_NAME) calendar events

注意:

Key    :   Privacy - Reminders Usage Description    
Value  :   $(PRODUCT_NAME) reminder use

連絡先:

Key    :   Privacy - Contacts Usage Description     
Value  :  $(PRODUCT_NAME) contact use

写真 :

Key    :  Privacy - Photo Library Usage Description    
Value  :  $(PRODUCT_NAME) photo use

Bluetooth共有:

Key    :  Privacy - Bluetooth Peripheral Usage Description     
Value  :  $(PRODUCT_NAME) Bluetooth Peripheral use

マイク:

Key    :  Privacy - Microphone Usage Description    
Value  :  $(PRODUCT_NAME) microphone use

カメラ:

Key    :  Privacy - Camera Usage Description   
Value  :  $(PRODUCT_NAME) camera use

場所:

Key    :  Privacy - Location Always Usage Description   
Value  :  $(PRODUCT_NAME) location use

Key    :  Privacy - Location When In Use Usage Description   
Value  :  $(PRODUCT_NAME) location use

ヒース:

Key    :  Privacy - Health Share Usage Description   
Value  :  $(PRODUCT_NAME) heath share use

Key    :  Privacy - Health Update Usage Description   
Value  :  $(PRODUCT_NAME) heath update use

HomeKit:

Key    :  Privacy - HomeKit Usage Description   
Value  :  $(PRODUCT_NAME) home kit use

メディアライブラリー:

Key    :  Privacy - Media Library Usage Description   
Value  :  $(PRODUCT_NAME) media library use

動き:

Key    :  Privacy - Motion Usage Description   
Value  :  $(PRODUCT_NAME) motion use

音声認識 :

Key    :  Privacy - Speech Recognition Usage Description   
Value  :  $(PRODUCT_NAME) speech use

SiriKit:

Key    :  Privacy - Siri Usage Description  
Value  :  $(PRODUCT_NAME) siri use

テレビプロバイダー:

Key    :  Privacy - TV Provider Usage Description   
Value  :  $(PRODUCT_NAME) tvProvider use

詳細な情報は this リンクにあります。

198
BHUPI

AppleがiOS 10内のどのユーザプライベートデータ型にもアクセスできる方法を変更したので。

以下の例のように、バーコードをスキャンするために使用したことを示したように、アプリケーションのPrivacy - Camera usage descriptionとそのアプリケーションに適用される使用法情報に「Info.plist」キーを追加する必要があります。

詳細については、以下のスクリーンショットをご覧ください。

enter image description here

97

Info.plistの下にこのキーを追加する必要があります。

NSCameraUsageDescriptionまたはPrivacy - Camera usage description

使い方の説明を追加してください。

詳細なスクリーンショットはこちらにあります link

60
Bluewings

または、Info.plistをソースコードとして開き、これを追加します。

<key>NSCameraUsageDescription</key>
<string>Camera usage description</string>
38
ayalcinkaya

これらの生の値を使用してinfo.plistにコピーする

    <key>NSCalendarsUsageDescription</key>
      <string>$(PRODUCT_NAME) calendar events</string>
    <key>NSRemindersUsageDescription</key>
      <string>$(PRODUCT_NAME) reminder use</string>
    <key>NSCameraUsageDescription</key>
      <string>This app requires to access your photo library to show image on profile and send via chat</string>
    <key>NSMicrophoneUsageDescription</key>
      <string>This app requires to access your microphone to record video with your voice send via chat</string>
    <key>NSPhotoLibraryUsageDescription</key>
      <string>This app requires to access your photo library to show image on profile and send via chat</string>
    <key>NSContactsUsageDescription</key>
       <string>$(PRODUCT_NAME) contact use</string>
    <key>NSLocationAlwaysUsageDescription</key>
      <string>$(PRODUCT_NAME) location use</string>
    <key>NSLocationWhenInUseUsageDescription</key>
      <string>$(PRODUCT_NAME) location use</string>
27
Xeieshan

xcodeのUIはあるバージョンから次のバージョンに少し変更されているので、ここでプロジェクト - >ターゲット - >情報 の助けとなった場合は9.0 beta 4のplistを更新します。 enter image description here

22
user3325025

カメラを使おうとしたときに直面したもう1つの例は、「Camera Usage Description」を追加した後でも、同じ_CRASHING_DUE_TO_PRIVACYを与えるのにまだクラッシュして忙しいということです。コールスタックから具体的なものを取得できなかった後、「オーガナイザー」に切り替えて、デバイスのクラッシュレポートを調べました。私はそれが実際に欠けている "Microphone Usage Description"のためにプライバシーについて不平を言っていたことがわかりました。私はそれを付け加えて、そのような不可解な崩壊を取り除きました。

4
Yoku

Info.plistに適切なキーを追加したにもかかわらずエラーが発生する人のために:

キーを正しいInfo.plistに追加していることを確認してください。 xCodeの新しいバージョンは、どうやら3 Info.plistを持っています。

一つは私のために問題を解決したあなたのアプリの名前のフォルダの下にあります。

2番目はYourappnameTestsの下にあり、3番目はYourappnameUITestsの下にあります。

それが役に立てば幸い。

2
sc13

Ionicを使用している場合は、プラットフォームのiosタグ内に追加することでconfig.xmlから直接解決できます。

<platform name="ios">
.
.
.
    <config-file target="*-Info.plist" parent="NSPhotoLibraryUsageDescription">
        <string>photo library usage description</string>
    </config-file>
    <config-file target="*-Info.plist" parent="NSCameraUsageDescription">
        <string>camera usage description</string>
    </config-file>
.
.
.
</platform>

@BHUPIの回答にも感謝します。

2
Victor Tavares

Plistを確認したところ、「プロジェクト」情報でのみ機能していないことがわかりました。「プライバシー-カメラ...」を追加する必要があります。あなたを助けることを願っています。

1
Mark90

これを行うには、目的の文字列と共に用途キーをアプリのInfo.plistに追加します。 NSCameraUsageDescriptionアプリがデバイスのカメラにアクセスする理由を指定します

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

1
sagar gawande