Human Interface Guidelines
個人データへのアクセス
人々があなたのアプリやゲームを信頼できるようにするには、必要なプライバシー関連のデータとリソース、およびそれらの使用方法について透明性を保たなければなりません。
人々は非常に個人的な方法でデバイスを使用し、アプリがプライバシーの保護に役立つことを期待しています。人々を追跡したり、データやデバイスリソース (広告 ID を含む) にアクセスしたりする許可を要求することに加えて、アクセスを許可されているデータを保護することが不可欠です。
新規または更新されたアプリを送信するときは、App Store があなたの製品ページに情報を表示できるように、プライバシー慣行と収集したプライバシー関連データに関する詳細を提供しなければなりません。(この情報は、App Store Connect でいつでも管理できます。) 人々は、あなたのアプリをダウンロードする前に、あなたの製品ページのプライバシーの詳細を使用して、情報に基づいた決定を下します。詳細については、App Store のアプリプライバシーの詳細 を参照してください。
アプリの App Store 製品ページは、人々がアプリをダウンロードする前に、アプリのプライバシー慣行を理解するのに役立ちます。
許可を求める
アクセス許可をリクエストしなければならないもののいくつかの例を以下に示します。
システムは、あなたが行った各リクエストを表示できる標準アラートを提供します。あなたのアプリがアクセスを必要とする理由を説明するコピーを提供すると、システムはアラートに説明を表示します。また、[設定] > [プライバシー] で人々は説明を表示し、選択内容を更新することもできます。
あなたのアプリが明らかにデータやリソースにアクセスする必要がある場合にのみ、許可を求めてください。 特に、明らかに必要がない場合は、個人情報の要求やデバイス機能へのアクセスを疑うのは人々にとって当然のことです。理想的には、アクセスが必要なアプリ機能を実際に使用するまで、許可を求めるのを待ちます。たとえば、場所(ロケーション)ボタン を使用して、その情報を必要とする機能に関心を示した後、場所を共有する方法を人々に提供できます。
あなたのアプリが機能するためにデータまたはリソースが必要でない限り、起動時に許可を要求することは避けてください。 なぜそれを作っているのかが明らかな場合、人々は起動時の要求に煩わされることが少なくなります。たとえば、人々は、ナビゲーションアプリからその恩恵を受ける前に、自分の場所にアクセスする必要があることを理解しています。
要求している機能、データ、またはリソースをあなたのアプリがどのように使用するかを明確に説明するコピーを作成します。 標準のアラートでは、あなたのアプリ名の後、人々が許可を付与または拒否するために使用するボタンの前に、コピー (目的文字列 または 使用法説明文字列 と呼ばれます) が表示されます。わかりやすく、具体的で、理解しやすい、簡潔で完全な文章を目指してください。文の大文字小文字を使用し、受動的な音声を避け、最後にピリオドを含めます。開発者向けガイダンスについては、保護されたリソースへのアクセスの要求 (Requesting Access to Protected Resources) と アプリ追跡の透明性 (App Tracking Transparency) を参照してください。
目的文字列の例 | 注意 | |
アプリは夜間録音して、いびきをかく音を検出します。 | アプリがデータを収集する方法と理由を明確に説明するアクティブな文。 | |
より良い体験のためには、マイクへのアクセスが必要です。 | 漠然とした、未定義の正当化を提供する受動的な文。 | |
マイクアクセスをオンにして下さい。 | 正当化されない命令文。 |
標準のシステムのアラートの例を以下に示します。
例 1 | 例 2 | 例 3 |
ロケーションボタン
iOS 15,iPadOS 15,watchOS 8 以降では、Core Location がボタンを用意しているため、タスクで必要なときに自分の位置にアクセスするための一時的な承認をあなたのアプリに付与できます。位置情報ボタンの外観はあなたのアプリの UI に合わせて変化しますが、位置情報共有のアクションは常に即座に認識できる方法で伝達されます。
人々が初めてあなたのアプリを開いて位置情報ボタンをタップすると、システムは標準のアラートを表示します。アラートは、ボタンを使用するとアプリの現在地へのアクセスがどのように制限されるかを理解するのに役立ち、共有の開始時に表示される位置インジケータを通知します。
人々がボタンのアクションについて理解していることを確認した後、あなたのアプリに彼らの現在地へのアクセスを 1 回だけ許可する場合は、位置情報ボタンをタップするだけです。人々があなたのアプリの使用を停止すると、1 回だけの承認は期限切れになりますが、ボタンの動作についての彼らの理解を再確認する必要はありません。
注意
あなたのアプリに承認ステータスがない場合、位置情報ボタンをタップすると、標準のアラートで [1 回許可] を選択した場合と同じ効果があります。以前に [アプリの使用中] を選択した場合、位置情報ボタンをタップしてもあなたのアプリのステータスは変更されません。開発者向けガイダンスについては、LocationButton (LocationButton)(SwiftUI)および CLLocationButton (CLLocationButton) (Swift) を参照してください。
位置情報ボタンを使用して、特定のアプリ機能の位置情報を共有するための簡単な方法を人々に与えることを検討してください。 たとえば、あなたのアプリは、人々が自分の位置情報をメッセージや投稿に添付したり、店舗を見つけたり、その場所で出会った建物、植物、動物を特定したりするのに役立ちます。人々があなたのアプリに *1 回限りの * 許可を与えるのがよくあることがわかっている場合は、位置情報ボタンを使用して、アラートを繰り返し操作せずに現在地を共有できるようにすることを検討してください。
UI と調和するように、位置情報ボタンをカスタマイズすることを検討してください。 具体的には、以下のことができます。
人々が位置情報ボタンを認識して信頼できるようにするために、他の視覚的属性はカスタマイズできません。また、システムは、低コントラストの色の組み合わせや過度の透明性などの問題について警告することにより、位置情報ボタンが読みやすい状態を維持できるようにします。このような問題を修正することに加えて、あなたはテキストがボタンに収まるようにする責任があります。たとえば、ボタンのテキストは、アクセシビリティテキストサイズで、他の言語に翻訳されたときに切り捨てられることなく収まる必要があります。
重要
カスタマイズされた位置情報ボタンで一貫した問題がシステムで特定された場合、人々がデバイスの位置情報をタップしても、システムはデバイスの位置情報にアクセスできません。このようなボタンは他のアプリ固有のアクションを実行できますが、位置情報ボタンが期待どおりに機能しない場合、人々はアプリへの信頼を失います。
事前アラートスクリーン
理想的には、現在のコンテキストは、あなたが許可を要求している理由を人々が理解するのに役立ちます。追加の詳細を提供することが不可欠な場合は、システムアラートが表示される前にカスタムスクリーンを表示できます。以下のガイドラインは、カメラ、マイク、場所、連絡先、カレンダー、追跡など、保護されたデータとリソースへのアクセス許可を要求するシステムアラートの前に表示されるカスタム画面に適用されます。
ボタンを 1 つだけ含めて、システムアラートが開くことを明確にします。 カスタムスクリーンにアラートを開かないボタンも含まれていると、人々は操作されていると感じます。これは、体験によって選択が妨げられるためです。別の種類の操作は、「許可」などの用語を使用してカスタムスクリーンのボタンにタイトルを付けることです。スクリーンのボタンの意味と視覚的な重みがアラートの許可ボタンと似ているように見える場合、人々は意味のないアラートの許可ボタンを選択する可能性が高くなります。「続行」や「次へ」などの用語を使用して、カスタムスクリーンの 1 つのボタンにタイトルを付け、そのアクションがシステムアラートを開くことであることを明確にします。
カスタムスクリーンに追加のアクションを含めないでください。 たとえば、人々がシステムアラートを表示せずにスクリーンを離れる方法を提供しないでください。たとえば、閉じるかキャンセルするオプションを提供します。
リクエストの追跡
アプリの追跡はデリケートな問題です。場合によっては、追跡の利点を説明するカスタムスクリーンを表示することが理にかなっている場合があります。人々があなたのアプリを起動したらすぐにアプリの追跡を実行する場合は、追跡データを収集する前に、システムが提供するアラートを表示しなければなりません。
システムが提供するアラートの前に、人々を混乱させたり誤解を与えたりするカスタムスクリーンで決して先導しないでください。 人々はアラートを読まずにすばやくタップしてそれを閉じることがあります。このような動作を利用して選択に影響を与えるカスタムメッセージのスクリーンは、App Store Review によって拒否されます。
拒否の原因となる禁止されているカスタムスクリーンデザインがいくつかあります。いくつかの例は、誘惑的な提供、要求のように見えるスクリーンの表示、アラートのイメージの表示、アラートの背後にあるスクリーンへの注釈です (以下を参照)。ガイダンスについては、App Store レビューガイドライン:5.1.1 (iv) を参照してください。
誘惑
要求を与えるための誘惑を提供しないでください。その許可を与えたことに対する保証を人々に提供することはできません。また、人々が追跡を許可するまで、機能やコンテンツを差し控えたり、アプリを使用できなくすることはできません。
システムアラートの機能を反映したカスタムメッセージを表示しないでください。特に、"Allow(許可)" や似た用語を使用するボタンタイトルは作成しないでください。事前アラート画面では人々は何も許可しないためです。
警告の画像
標準のアラートの画像を表示したり、変更したりしないでください。
システムアラートの [Allow(許可)] ボタンに人々の注意を引くような視覚的なきっかけを描かないでください。
データの保護
人々の情報を保護することが最も重要です。情報をローカルに保存し、特定の操作を許可し、ネットワークを介して情報を転送する必要がある場合は、システムが提供するセキュリティテクノロジーを利用して、あなたのアプリのセキュリティに自信を持たせ、プライバシーを保護します。
ここにいくつかの高レベルのガイドラインがあります。
認証のためにパスワードのみに依存することは避けてください。 指紋で人々を認証できる Touch ID などの他のテクノロジーを活用してください。開発者向けガイダンスについては、ローカル認証 (Local Authentication) を参照してください。
機密情報をキーチェーンに保存します。 キーチェーンは、誰かの個人情報を処理するときに、安全で予測可能なユーザー体験を提供します。開発者向けガイダンスについては、キーチェーンサービス (Keychain Services) を参照してください。
パスワードやその他の安全なコンテンツをプレーンテキストファイルに決して保存しないでください。
ファイルのアクセス許可を使用してアクセスを制限する場合でも、暗号化されたキーチェーンでは機密情報の方がはるかに安全です。カスタム認証スキームの発明は避けてください。 あなたのアプリで認証が必要な場合は、Apple でサインイン や パスワード自動記載 (Password AutoFill) などのシステム提供の機能をお勧めします。ガイダンスについては、アカウントの管理 を参照してください。
プラットフォームの考慮事項
iOS、iPadOS、tvOS、または watchOS に関する追加の考慮事項はありません。
macOS
有効な開発者 ID を使用してあなたのアプリに署名して下さい。 ストアの外部であなたのアプリを配布することを選択した場合、開発者 ID を使用してアプリに署名すると、Apple 開発者として識別され、あなたのアプリが安全に使用できることが確認されます。開発者向けガイダンスについては、Xcode ヘルプ を参照してください。
アプリのサンドボックスで人々のデータを保護します。 サンドボックスは、マルウェアからあなたのアプリを保護しながら、システムリソースとユーザーデータへのアクセスをあなたのアプリに提供します。Mac App Store に提出されるすべてのアプリには、サンドボックスが必要です。開発者向けガイダンスについては、macOS アプリサンドボックスの構成 (Configuring the macOS App Sandbox) を参照してください。
誰がサインインしているのかを推測することは避けてください。 ユーザーの切り替えが速いため、同じシステムで複数の人々がアクティブになっている可能性があります。
リソース
保護されたリソースへのアクセスを要求 (Requesting access to protected resources)
セキュリティ (Security)
ビデオ
位置情報プライバシーの
デザイン
WWDC2020
位置情報ボタンとの出会い
WWDC21
Apple のプライバシーの柱に焦点を当てる
WWDC21