iOS11がついにリリースされましたね。
アプリ開発者的にはハラハラします。。今回は、iOS11対応作業していたら遭遇したエラー。
This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app’s Info.plist must contain an NSPhotoLibraryAddUsageDescription key with a string value explaining to the user how the app uses this data.
アプリでは加工した写真をiPhoneのアルバムに保存する処理を書いていたんだけど、
NSPhotoLibraryUsageDescriptionはiOS10の対応の時に入れてるけど、またパーミッション的なエラーが出ている。
調べて見たら、iOS11では、写真をアルバムに保存する場合、NSPhotoLibraryAddUsageDescriptionっていうパーミッションが必要になったらしい。
iOS11では画像をアルバム保存するアプリはPrivacyへの追記が必要になりました
どうやらiOS11 later向けに制約が増えていたようです。
■ CocoaKeys#NSPhotoLibraryAddUsageDescription
アプリがユーザーのフォトライブラリへの書き込み専用アクセスを求める理由を説明します。
UIImageWriteToSavedPhotosAlbum
などを利用して撮影した画像を保存する機能などを提供している場合はiOS11が出る前にinfo.plist
にPrivacyの追記をしておいた方が良いですね。info.plist
12 <span class="nt"><key></span>NSPhotoLibraryAddUsageDescription<span class="nt"></key></span><span class="nt"><string></span>撮影した写真を保存します<span class="nt"></string></span>
で、今まで出しているアプリが、iOS11で画像保存しようとするとクラッシュするかも!?ってかなり冷や汗をかいたんですが、
試してみた感じ、大丈夫そう。
iOS11リリース前に僕が出していたアプリは、iOS10のSDKでビルドしたアプリだったから、今回のiOS11リリースでバージョンアップしたユーザーがアプリをインストールしても普通に保存できる。
Xcode9.0、iOS11のSDKでビルドして新しいバージョンのアプリを出す場合は、一通り動作確認してからアプリ申請した方が良さげです。
コメントを残す