iOS14での写真アプリへのアクセスレベルについて


はじめに

※ 本記事はWWDC2020で発表された内容を元に作成しております。
※ 記事中の画像はWWDC2020での発表のものを引用させていただいております。

iOS14から写真アプリへのアクセス方法に更新があるため、今回調査してまとめてみました。

写真アプリへのアクセスレベルの指定

iOS14から写真アプリへの認証を確認する際にはアクセスレベルを指定することが必要になります。
これには新たに定義された列挙型のPHAccessLevelを用います。
これによりアクセスレベルを追加のみ.addOnly、もしくは読み込み/書き込み.readWriteに指定することができるようになりました。

見た目の変化

iOS13以前では新規でアプリをリリースしてそのアプリ内で写真を撮った場合、単に写真アプリへのアクセスを許可するかどうかの表示となっていたと思います。

iOS14ではアクセスのレベルがより細かく設定できるようになりました。
これにより、

写真の追加のみ
 ├ 許可する
 └ 許可しない

読み込み/書き込み
 ├ 全ての写真を対象
 ├ 選択した写真のみ対象
 └ 許可しない

といった選択肢になりました。
PHAccessLevel.addOnlyにしていると左画像、.readWriteにしていると右画像のようになります。

コードでの対応

iOS13まではPHPhotoLibrary.authorizationStatus()に引数はありませんでしたが、iOS14では下記コードの中段のように引数にアクセスレベルを宣言する必要があります。

まとめ

iOS14からはPHAccessLevelの登場により写真アプリのアクセスに影響が現れるので、アプリの用途に応じて認証の.addOnly.readWriteを宣言する必要があります。
抜け漏れをせずに対応していきましょう。

参考

  1. Handle the Limited Photos Library in your app
  2. Photo library changes in iOS 14
  3. authorizationStatus() | Apple Developer Documentation