【umi Retro Snap / iPhone 無料カメラアプリ】iOS の写真・カメラ権限まわり!?

Technology

umi Retro Snap | 無料のフィルム風カメラアプリです!ぜひ使ってください!
https://apps.apple.com/us/app/umi-retro-snap-film-look-cam/id6743605662
100以上のフィルター、基本フィルム効果、 ハーフ撮影、二重露光なども無料で使えます!

iOS の写真・カメラ権限まわり

  • PhotoKit の権限モデル(iOS 14+)
    • アクセスレベルは .addOnly(追加のみ)と .readWrite(閲覧+追加)の2種。
    • 認可ステータスは notDetermined / restricted / denied / authorized / limitedlimited.readWrite のときだけ出現し、.addOnly にはありません。Apple Developer
  • “Limited” 自動プロンプトの抑止と管理
    • “このアプリにもっと写真を追加しますか?”の自動プロンプトは Info.plist の PHPhotoLibraryPreventAutomaticLimitedAccessAlert (Boolean) で抑止可能
    • 抑止した場合、ユーザーに選択を増やしてもらうときは PHPhotoLibrary.shared().presentLimitedLibraryPicker(from:) を自前タイミングで表示します(システムUI・文言はカスタム不可/OS言語に従う)。Apple Developer
  • 設定アプリでの写真権限変更と“アプリ終了”
    • ユーザーが 設定 > プライバシー > 写真 で権限を変更すると、アプリが即時に SIGKILL(9) で終了(再起動相当)する事象は開発者界隈で広く報告されています(公式明記は見当たりませんが、再現報告が多数)。このため コールドスタート想定の状態保存が必須です。
  • 初回プロンプトと再提示
    • 初回の権限プロンプト文言は NSPhotoLibraryUsageDescription / NSPhotoLibraryAddUsageDescription(用途に応じて)でローカライズされます。
    • いったん “拒否(denied)” された後は、通常の API 呼び出しでは再度のプロンプトは出ません。ユーザーを 設定アプリへ誘導して変更してもらう必要があります(UIApplication.open など)
  • .addOnly とできること / できないこと
    • .addOnly既存資産の読み取り不可・アルバム作成不可新規保存(追加)のみ可能。limited は発生しない(=.authorized かそれ以外)。仕様は API 定義上の前提です。
  • カメラ(AVFoundation)の許可
    • カメラ使用時は 事前に許可確認/取得が必須。未許可のままアクセスするとシステムがアプリを終了し得る、という趣旨が公式ドキュメントにあります。設定変更が即“必ず終了”するとまでは明記されていませんが、許可がない操作はクラッシュ/終了の原因になります。

実装・運用での実務的な指針(ドキュメント準拠)

  1. 状態保存を前提に:設定変更で プロセスが落ちても復元できるよう、直前の画面・選択中フィルタなどは 永続ストレージUserDefaults や軽量 DB)へ即時保存。写真権限変更時に落ちる可能性は織り込みます。
  2. Limited は自前でハンドリング:自動プロンプトは plist で抑止し、画面上の「写真を追加」ボタンなどから presentLimitedLibraryPicker を呼ぶ流れが UX 的に安定します(文言カスタムは不可)。
  3. 拒否後は設定誘導denied になったら再プロンプト不可。権限説明画面+設定アプリへのディープリンク導線を用意。
  4. アクセスレベル設計
    • 閲覧・アルバム運用が必要なら .readWrite 一択(limited を受け容れるかはプロダクト判断)。
    • 保存だけで良いミニマム体験なら .addOnly(ただしギャラリー・アルバム連携は諦める)。

これで権限チェック時の処理は完璧ですね?使い方によって適切な設定ができればユーザーにも優しいですね^^

お気軽にコメントください!

スパム対応のためコメント認証に数日かかることがありますが、お気軽にコメントいただけると嬉しいです^^

コメント

タイトルとURLをコピーしました