個人データを保護し、データの使われ方に関するユーザーの設定を優先します。
概要
設計の段階で、ユーザーのプライバシーを考慮することが重要です。ほとんどのAppleデバイスには、アプリや第三者に対してユーザーが開示したくない個人情報が保存されています。アプリでのデータへのアクセスや使い方が不適切であった場合、ユーザーはアプリを使うのをやめ、さらには自分のデバイスからそのアプリを削除することさえあります。
ユーザーやデバイスのデータは、法令に基づいて必要な事項を伝え、承諾を得てからアクセスしてください。さらに、適切な手順を踏んでユーザーやデバイスのデータを保護すること、またその用途を明らかにすることが大切です。
政府や業界団体が公開しているガイドラインを参照する
以下の文書を参照してください。
-
「Mobile Privacy Disclosures: Building Trust Through Transparency(英語)」米連邦取引委員会(Federal Trade Commission)の、モバイルプライバシーに関する報告書
-
「Opinion 02/2013 on Apps on Smart Devices(英語)」EUデータ保護委員会(Data Protection Commissioners)による、モバイルアプリのデータ保護に関する意見表明
-
「Privacy on the Go: Recommendations for the Mobile Ecosystem(英語)」カリフォルニア州司法長官のモバイルプライバシーに関する勧告
-
「スマートフォンプライバシーイニシアティブ(2012)(英語)(日本語)」および「スマートフォンプライバシーイニシアティブII(2013)(英語)(日本語)」日本の総務省のスマートフォンプライバシーイニシアティブ.
アプリがそのデータを必要とするときのみアクセスを要求する
位置情報や連絡先、写真など、ユーザーやデバイスに関する機密データは、アプリがそのデータを必要とするときにアクセスを要求するようにします。目的の文字列(Usage Description Stringともいう)をアプリのInfo
ファイルに書き込めば、アプリがアクセスを必要とする理由をシステムがユーザーに表示して説明できるようになります。ユーザーがアクセスを許可しなかった場合の対処法も組み込んでください。詳しくは、「保護されたリソースへのアクセスを要求する」を参照してください。
データの用途を明らかにする
たとえば、アプリをApp Storeに登録する際、プライバシー保護方針やステートメントのURLをApp Store Connectのメタデータとして指定すること、アプリの説明としてその概要を載せること、などが必要です。
ユーザーにデータの制御をゆだねて、収集するデータを保護する
アプリがデータを収集するときは、ユーザーの設定を優先し、必要な手順を踏んでそのデータを保護します。
-
設定によってユーザーが機密情報へのアクセスを無効にすることができるようにします。「設定」アプリの「プライバシー」メニューを介して保護されている、位置情報、連絡先、ヘルスデータのようなシステムリソースの場合は、オペレーティングシステムが自動的にその情報へのアクセスを無効にします。この動作は、これらの情報源からキャッシュされたあらゆるデータに適用されるようにします。たとえば、ユーザーが個人情報を含むソーシャルメディアプロファイルを作成した場合は、そのデータ(存在するサーバーコピーを含む)を削除する方法をユーザーに提供します。
-
iOSにファイルを保存するときは、アプリに適用できる最高のデータ保護レベルを使います(「アプリのファイルを暗号化する」を参照)。ネットワーク経由でユーザーやデバイスのデータを送信する際は、App Transport Security(NSAppTransportSecurity(英語)を参照)を使ってください。
-
開発するアプリで
ASIdentifier
(英語)クラスを使う場合は、そのクラスのManager is
(英語)プロパティの値を優先します。ユーザーがこのプロパティをfalseに設定している場合は、Advertising Tracking Enabled ASIdentifier
(英語)クラスの用途を広告に関するもののみに制限してください。これには、フリークエンシーキャップ(同じ人が繰り返し同じ広告を見なくて済むよう表示回数を制限する処理)、アトリビューション、コンバージョンイベントデータ、ユニークユーザー数(一定期間内に特定のWebサイトを訪れた人の数)の評価、詐欺的広告の検出、デバッグなどがあります。詳しくは、AdSupport(英語)フレームワークを参照してください。Manager -
ユーザーを永続的に識別する必要がある場合は、
UIDevice
(英語)クラスのidentifier
(英語)プロパティ、またはFor Vendor ASIdentifier
(英語)クラスのManager advertising
(英語)プロパティを使います。Identifier
使用するデータは必要最低限に留める
ユーザーやデバイスのデータは、必要最低限の範囲で取得、使用してください。明確な理由がなければ、データを収集するべきではありません。将来必要になるかも知れないとしても同じです。
音声入力に対応する場合、録音用にオーディオセッションを設定する処理は、実際に録音を開始する箇所に限って実装してください。すぐに録音するのでなければ、起動時に設定してはなりません。アプリが録音用にオーディオセッションの設定をすると、ユーザーが録音を解除できるよう、システムがアラートを表示します。