権限

権限

執筆済 ソフトウェア開発iOS

利用者のデータや機器にアクセスするには、明示的な許可が要る。

対象#

対象 説明文のキー
位置情報 NSLocationWhenInUseUsageDescription
カメラ NSCameraUsageDescription
マイク NSMicrophoneUsageDescription
写真 NSPhotoLibraryUsageDescription
連絡先、カレンダー 各種
トラッキング NSUserTrackingUsageDescription
通知 実行時に要求する

Info.plist に説明文が無いまま使うと、 その場でクラッシュする。 これは意図的な設計で、 説明なしのアクセスを技術的に不可能にしている。

要求の作法#

悪い: 起動直後にすべての権限をまとめて要求する
良い: その機能を使おうとした瞬間に、文脈の中で要求する

利用者は文脈が無いと拒否する。 一度拒否されると、アプリからは再要求できない (設定アプリへ誘導するしかない)。

必要なら、システムのダイアログの前に 自前の画面で理由を説明する(priming)。

段階的な許可#

近年は「全部か無か」ではなくなっている。

対象 段階
位置 使用中のみ / 常に、正確 / おおよそ
写真 選択した写真のみ / 全体
連絡先 限定的 / 全体

最小限の権限で動く設計にしておくと、 拒否されても機能が壊れない。

拒否されたときの設計#

権限が無くてもアプリが使えなくならないようにする。 「位置情報を許可しないと何もできない」設計は、 審査でも問題になりうる。

参考文献#

ノート一覧を閉じる