iOS 11以降は、Photo Library に画像を保存する際に設定の追加が必要になる模様

 表題の通りですが、iOS 11 以降はフォトライブラリに画像を保存する場合、Info.plist に設定の追加が必要になるかもしれません。

 追加しないと、例によってアプリが落ちてしまう可能性があるので、画像を保存する機能を組み込んでいるアプリを開発している場合は、確認した方が良いと思われます。

スポンサーリンク

読み込み中です。少々お待ち下さい

本題

 iOS 10 までは「NSPhotoLibraryUsageDescription(Xcode 上では"Privacy - Photo Library Usage Description)"」というキーに利用目的を記述しておけば、フォトライブラリに対する参照も保存もどちらも可能でした。

 よりプライバシーに敏感な iOS 11 以降では、参照はこれまで通り「NSPhotoLibraryUsageDescription」で可能ですが、書き込み権限はユーザーから別途与えてもらう必要があるかも知れません。

 フォトライブラリ(カメラロール)に画像を保存する類いの機能を組み込んであるアプリで、シェア等から「画像を保存」をタップした時にアプリが落ちてしまう場合は、Xcode で Info.plist を開いて"Privacy - Photo Library Additions Usage Description"キーを追加し、利用目的を記述しましょう。

 多言語対応で「InfoPlist.strings」を別途用意している場合は、「NSPhotoLibraryAddUsageDescription」キーを追加します。

 詳細については、本家のドキュメントを確認してください。

補足:
 ただ、従来の「NSPhotoLibraryUsageDescription」キーの説明に「this keys governs read and write access to the user's photo library」とあり、「書き込みだけなら NSPhotoLibraryAddUsageDescription を使うといいよ」と続いているので、ここだけ読むと「NSPhotoLibraryUsageDescription」を設定するだけで読み書きができて良いようにも思えるのですが、シミュレータ上の iOS 11 で「NSPhotoLibraryUsageDescription」だけ指定しても画像を保存する時に落ちてしまい、「NSPhotoLibraryAddUsageDescription」を追加しろと怒られます。

 Xcode 9 GM で検証しているので、もしかしたら本リリース時に挙動が変わる可能性もありますが、おそらく iOS 10 以前の説明と混ざっているだけで、iOS 11 以降でフォトライブラリに画像を保存する機能を利用する場合、実際は「NSPhotoLibraryAddUsageDescription」を追加する必要があるんじゃないかなと思います。

おわりに

(幸運なことに)iOS 11 で新規に追加された Information Property List Key はそれほど多くないのですが、その内のひとつに「NFCReaderUsageDescription」があるのが見て取れます。

 iOS 11 から Apple Pay 以外にもようやく NFC が開放されるということで、地味に楽しみですね。

この記事をシェア
  • このエントリーをはてなブックマークに追加
  • Share on Google+
  • この記事についてツイート
  • この記事を Facebook でシェア