記事

ユーザーのプライバシーを保護する

個人データを保護し、データの使われ方に関するユーザーの設定を優先します。

概要

設計の段階で、ユーザーのプライバシーを考慮することが重要です。ほとんどのAppleデバイスには、Appや第三者に対してユーザーが開示したくない個人情報が保存されています。Appでのデータへのアクセスや使い方が不適切であった場合、ユーザーはAppを使うのをやめ、さらには自分のデバイスからそのAppを削除することさえあります。

ユーザーやデバイスのデータは、法令に基づいて必要な事項を伝え、承諾を得てからアクセスしてください。さらに、適切な手順を踏んでユーザーやデバイスのデータを保護すること、またその用途を明らかにすることが大切です。

政府や業界団体が公開しているガイドラインを参照する

以下の文書を参照してください。

Appがそのデータを必要とするときのみアクセスを要求する

位置情報や連絡先、写真など、ユーザーやデバイスに関する機密データは、Appがそのデータを必要とするときにアクセスを要求するようにします。目的の文字列(Usage Description Stringともいう)をAppのInfo.plistファイルに書き込めば、Appがアクセスを必要とする理由をシステムがユーザーに表示して説明できるようになります。ユーザーがアクセスを許可しなかった場合の対処法も組み込んでください。詳しくは、「保護されたリソースへのアクセスを要求する」を参照してください。

データの用途を明らかにする

たとえば、AppをApp Storeに登録する際、プライバシー保護方針やステートメントのURLをApp Store Connectのメタデータとして指定すること、Appの説明としてその概要を載せること、などが必要です。

ユーザーにデータの制御をゆだねて、収集するデータを保護する

Appがデータを収集するときは、ユーザーの設定を優先し、必要な手順を踏んでそのデータを保護します。

  • 設定によってユーザーが機密情報へのアクセスを無効にすることができるようにします。「設定」Appの「プライバシー」メニューを介して保護されている、位置情報、連絡先、ヘルスデータのようなシステムリソースの場合は、オペレーティングシステムが自動的にその情報へのアクセスを無効にします。この動作は、これらの情報源からキャッシュされたあらゆるデータに適用されるようにします。たとえば、ユーザーが個人情報を含むソーシャルメディアプロファイルを作成した場合は、そのデータ(存在するサーバーコピーを含む)を削除する方法をユーザーに提供します。

  • iOSにファイルを保存するときは、Appに適用できる最高のデータ保護レベルを使います(「Appのファイルを暗号化する」を参照)。ネットワーク経由でユーザーやデバイスのデータを送信する際は、App Transport Security(NSAppTransportSecurity(英語)を参照)を使ってください。

  • 開発するAppでASIdentifierManager(英語)クラスを使う場合は、そのクラスのisAdvertisingTrackingEnabled(英語)プロパティの値を優先します。ユーザーがこのプロパティをfalseに設定している場合は、ASIdentifierManager(英語)クラスの用途を広告に関するもののみに制限してください。これには、フリークエンシーキャップ(同じ人が繰り返し同じ広告を見なくて済むよう表示回数を制限する処理)、アトリビューション、コンバージョンイベントデータ、ユニークユーザー数(一定期間内に特定のWebサイトを訪れた人の数)の評価、詐欺的広告の検出、デバッグなどがあります。詳しくは、AdSupport(英語)フレームワークを参照してください。

  • ユーザーを永続的に識別する必要がある場合は、UIDevice(英語)クラスのidentifierForVendor(英語)プロパティ、またはASIdentifierManager(英語)クラスのadvertisingIdentifier(英語)プロパティを使います。

使用するデータは必要最低限に留める

ユーザーやデバイスのデータは、必要最低限の範囲で取得、使用してください。明確な理由がなければ、データを収集するべきではありません。将来必要になるかも知れないとしても同じです。

音声入力に対応する場合、録音用にオーディオセッションを設定する処理は、実際に録音を開始する箇所に限って実装してください。すぐに録音するのでなければ、起動時に設定してはなりません。Appが録音用にオーディオセッションの設定をすると、ユーザーが録音を解除できるよう、システムがアラートを表示します。

トピック

プライバシーへの対応

保護されたリソースへのアクセスを要求する

目的の文字列を指定し、アクセスが必要な理由を説明することで、制限されたリソースへのアクセス許可をユーザーに要求します。

Appのファイルを暗号化する

iOSに保存されたユーザーのデータをディスク上で暗号化して保護します。

関連項目

最初のステップ

UIKitによるApp開発の概要

UIKitおよびXcodeがiOSまたはtvOS App向けに提供する基本的なサポートについて説明します。