Edited at

iOS11 ではフォトライブラリへ書き込むとき NSPhotoLibraryAddUsageDescription を書いてないとクラッシュする

More than 1 year has passed since last update.

iOS10で、フォトライブラリへのアクセスが必要なアプリは、info.plistに

NSPhotoLibraryUsageDescription

で使用用途を書かないとだめでした

iOS11ではさらにフォトライブラリへの読み込みと書き込みでパーミッションが分かれたようで、

NSPhotoLibraryAddUsageDescription

書き込みにはこちらに使用用途を書いてパーミッションを得ないとクラッシュします

読み込みだけなら iOS10でも書いた NSPhotoLibraryUsageDescription だけで問題なし

 

WebViewで

UIImageWriteToSavedPhotosAlbum()

を実行したタイミングで権限を与えるかのアラートが出るようになります


追記(beta段階なので今後変わるかも)


  • iOS11だとフォトライブラリの読み込み時にダイアログが出ない。


    • OSの設定で見ても特にパーミッション取れてなくてもフォトライブラリへのアクセスができる



  • 画像保存だと NSPhotoLibraryAddUsageDescription の内容が出る。

  • 一方、iOS11SDKでビルドしようが、iOS9〜10だと保存に関しても NSPhotoLibraryUsageDescription が参照される

結論としては、

NSPhotoLibraryUsageDescription

NSPhotoLibraryAddUsageDescription

どちらも画像保存するために使うようなことを書いておくのがいいのでは。


apple ドキュメント

https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW73