iOSエンジニアのつぶやき

毎朝8:30に iOS 関連の技術について1つぶやいています。まれに釣りについてつぶやく可能性があります。

iOS14 の PhotoLibrary アクセス API を更新する

今回は 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 を使用することができます。

developer.apple.com

Photos Library access level

また、アプリはより細かいアクセスレベルを使用して、ユーザにフォトライブラリーへのアクセスをリクエストすることができるようになりました。具体的には、下記のような requestAuthorization メソッドが追加されました。また、for: には、PHAccessLevel という iOS14 から追加された enum を使用して、.addOnly もしくは .readWrite を選択することができます。

developer.apple.com

// ~ iOS13
PHPhotoLibrary.requestAuthorization(handler:)

// iOS14
PHPhotoLibrary.requestAuthorization(for:,handler:)

ポイント

今回のアップデートのポイントですが、基本的に、新しく追加された .limited を正常にハンドリングするには、requestAuthorizationauthorizationStatus メソッドで更新された新しい API を使用する必要があります。これらが旧 API のままになっていて、ユーザに Limited Photo Library への使用が選択された場合は、基本的に PHAuthorizationStatus は、.authorized として返されます。

参考

その他の記事

yamato8010.hatenablog.com

yamato8010.hatenablog.com

yamato8010.hatenablog.com