18
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

iOS11以降のフォトライブラリへのアクセス許可について

Last updated at Posted at 2019-01-17

iOS11から UIImagePickerController でフォトライブラリへアクセスする際にinfo.plistで Privacy - Photo Library Usage Description を設定してもアクセス権限の確認が自動で行われなくなり、アラートが自動で表示されなくなりました。
iOSの変更によるものなのでフォトライブラリに関してはアクセス許可の設定をしなくてもリジェクト対象ではない気もしますが、ガイドラインには

ユーザーは、現在の場所、予定表、連絡先情報、通知、写真などの個人情報にアクセスするためのアプリのアクセス許可を付与する必要があります。

と記載されており、写真という表記があるため、もしかしたらリジェクト対象になる可能性があります。

もしリジェクトされてしまった場合は下記のようにこちら側でアクセス権限の確認アラートを表示しましょう。

##info.plist

Privacy - Photo Library Usage Descriptionを追加

##UIImagePickerControllerの呼び出し

import Photos

if PHPhotoLibrary.authorizationStatus() != .authorized {
            PHPhotoLibrary.requestAuthorization { status in
                if status == .authorized {
                    // フォトライブラリを表示する
                } else if status == .denied {
                    // フォトライブラリへのアクセスが許可されていないため、アラートを表示する
                    let alert = UIAlertController(title: "タイトル", message: "メッセージ", preferredStyle: .alert)
                    let settingsAction = UIAlertAction(title: "設定", style: .default, handler: { (_) -> Void in
                        guard let settingsURL = URL(string: UIApplication.openSettingsURLString ) else {
                            return
                        }
                        UIApplication.shared.open(settingsURL, options: [:], completionHandler: nil)
                    })
                    let closeAction: UIAlertAction = UIAlertAction(title: "キャンセル", style: .cancel, handler: nil)
                    alert.addAction(settingsAction)
                    alert.addAction(closeAction)
                    self.present(alert, animated: true, completion: nil)
                }
            }
        } else {
            // フォトライブラリを表示する
        }

PHPhotoLibrary.requestAuthorizationを呼び出すことで今まで勝手に出てきた確認のアラートが表示されるようになります。

18
12
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?