web-dev-qa-db-ja.com

「アプリのInfo.plistにはNSPhotoLibraryAddUsageDescriptionを含める必要があります」のクラッシュとは何ですか?

次のエラーが発生しました(iOS 11):

このアプリは、使用方法の説明なしでプライバシーに敏感なデータにアクセスしようとしたため、クラッシュしました。アプリのInfo.plistには、アプリがこのデータをどのように使用するかをユーザーに説明する文字列値を持つNSPhotoLibraryAddUsageDescriptionキーが含まれている必要があります。

アプリケーションinfo.plistにはNSPhotoLibraryUsageDescriptionが含まれていますが、それでもクラッシュすることに注意してください。

27
Ahmad F

アプリケーションのinfo.plistにはNSPhotoLibraryUsageDescriptionが含まれていますが、まだクラッシュすることに注意してください。なぜですか?

Information Property List Key Reference に記載されているように、NSPhotoLibraryUsageDescriptionNSPhotoLibraryAddUsageDescriptionを比較するときに誤解があると思います。

NSPhotoLibraryUsageDescription:

このキーを使用すると、アプリの理由を説明できますaccessesユーザーの写真ライブラリ。システムがユーザーにアクセスを許可するようプロンプトを出すと、この文字列がアラートの一部として表示されます。

アプリがaccess(get)デバイスの写真ライブラリをできるようにすることに関連しています。

NSPhotoLibraryAddUsageDescription:

このキーを使用すると、アプリがユーザーの写真ライブラリに書き込み専用アクセスを求める理由を説明できます。システムがユーザーにアクセスを許可するようプロンプトを出すと、この文字列がアラートの一部として表示されます。

これは、アプリがwrite(追加)写真をデバイスの写真ライブラリにできるようにすることに関連しています。


明らかに、このクラッシュを解決するには、アプリケーションのplistファイルにNSPhotoLibraryAddUsageDescriptionを追加する必要があります。

<key>NSPhotoLibraryAddUsageDescription</key>
<string>Our application needs permission to write photos...</string>

プロパティリストビューとして:

enter image description here

60
Ahmad F

上記の答えにはタイプミスがあります。正しいplistエントリは次のとおりです。

<key>NSPhotoLibraryUsageDescription</key>
<string>$(PRODUCT_NAME) needs permission to access photos on your device</string>
1
Das