今回は iOS14 での PhotoLibrary 周りの更新を簡単にまとめます。主なアップデートは Limited Photos Library
と、Photos Library access level
の二つです。
Limited Photos Library
Limited Photos Library はその名の通り、アプリにアクセスを許可する写真を選択することができます。従来までは全てのアクセスに対してのみ許可する必要がありましたが、これによりユーザは、自分の選択した画像のみをアプリに対して公開することができるようになります。
full access | limited access |
---|---|
![]() |
![]() |
ref: https://www.wwdcnotes.com/notes/wwdc20/10641/
また、limited
時のユーザに承認ステータスを確認するために iOS14 からは .limited
という PHAuthorizationStatus
を使用することができます。
Photos Library access level
また、アプリはより細かいアクセスレベルを使用して、ユーザにフォトライブラリーへのアクセスをリクエストすることができるようになりました。具体的には、下記のような requestAuthorization
メソッドが追加されました。また、for:
には、PHAccessLevel
という iOS14 から追加された enum を使用して、.addOnly
もしくは .readWrite
を選択することができます。
// ~ iOS13 PHPhotoLibrary.requestAuthorization(handler:) // iOS14 PHPhotoLibrary.requestAuthorization(for:,handler:)
ポイント
今回のアップデートのポイントですが、基本的に、新しく追加された .limited
を正常にハンドリングするには、requestAuthorization
と authorizationStatus
メソッドで更新された新しい API を使用する必要があります。これらが旧 API のままになっていて、ユーザに Limited Photo Library
への使用が選択された場合は、基本的に PHAuthorizationStatus
は、.authorized
として返されます。
参考
- https://www.wwdcnotes.com/notes/wwdc20/10641/
- https://developer.apple.com/documentation/photokit/phphotolibrary/1620745-authorizationstatus
- https://developer.apple.com/documentation/photokit/phphotolibrary/1620736-requestauthorization