最後のベータ版のiOS 10.0
を使う。私は自分のアプリでカメラを使ってバーコードをスキャンしようとしましたが、このランタイムエラーでクラッシュしました。
このアプリは、使用法の説明がなくても機密情報にアクセスしようとしたためにクラッシュしました。アプリのInfo.plistには、アプリがこのデータをどのように使用するかをユーザーに説明する文字列値を含むNSCameraUsageDescriptionキーを含める必要があります。
このキーをリストに入れてください、しかしそれはまだクラッシュしましたか?
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 リンクにあります。
Info.plistの下にこのキーを追加する必要があります。
NSCameraUsageDescription
またはPrivacy - Camera usage description
使い方の説明を追加してください。
詳細なスクリーンショットはこちらにあります link
または、Info.plistをソースコードとして開き、これを追加します。
<key>NSCameraUsageDescription</key>
<string>Camera usage description</string>
これらの生の値を使用して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>
xcodeのUIはあるバージョンから次のバージョンに少し変更されているので、ここでプロジェクト - >ターゲット - >情報 の助けとなった場合は9.0 beta 4のplistを更新します。
カメラを使おうとしたときに直面したもう1つの例は、「Camera Usage Description」を追加した後でも、同じ_CRASHING_DUE_TO_PRIVACY
を与えるのにまだクラッシュして忙しいということです。コールスタックから具体的なものを取得できなかった後、「オーガナイザー」に切り替えて、デバイスのクラッシュレポートを調べました。私はそれが実際に欠けている "Microphone Usage Description"のためにプライバシーについて不平を言っていたことがわかりました。私はそれを付け加えて、そのような不可解な崩壊を取り除きました。
Info.plistに適切なキーを追加したにもかかわらずエラーが発生する人のために:
キーを正しいInfo.plistに追加していることを確認してください。 xCodeの新しいバージョンは、どうやら3 Info.plistを持っています。
一つは私のために問題を解決したあなたのアプリの名前のフォルダの下にあります。
2番目はYourappnameTestsの下にあり、3番目はYourappnameUITestsの下にあります。
それが役に立てば幸い。
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の回答にも感謝します。
Plistを確認したところ、「プロジェクト」情報でのみ機能していないことがわかりました。「プライバシー-カメラ...」を追加する必要があります。あなたを助けることを願っています。
これを行うには、目的の文字列と共に用途キーをアプリのInfo.plistに追加します。 NSCameraUsageDescriptionアプリがデバイスのカメラにアクセスする理由を指定します