見出し画像

iOSプライバシーマニフェスト対応まとめ

こんにちは!りーさんです。
今回は、プライバシーマニフェストの対応をしたのでそれについてまとめておこうと思います。

プライバシーマニフェストとは

自分の認識ですが、簡単にいうと開発しているアプリ自体や使用しているサードパーティSDKの情報収集しているものやAppleの使用しているiOS APIを明示的に宣言しなければいけないということになります。

2024年2月29日に公式から正式にニュースが!

デベロッパは、自分のアプリ内のすべてのコードに対して責任を負っています。AppleはWWDC23で、一般的に使用されているサードパーティSDKのための新しいプライバシーマニフェストと署名を導入し、デベロッパがアプリのプライバシーマニフェストで該当するAPIを使用する場合に承認される理由(英語)の宣言を義務付けることを発表しました。これらの変更により、サードパーティSDKによるデータの使用方法、安全なソフトウェアの依存関係、ユーザーのプライバシー保護のさらなる強化についてデベロッパの皆さんが理解を深めることができます。

3月13日以降:承認される理由が必要なAPIを使用している新規アプリまたは既存アプリのアップデートをApp Store Connectにアップロードする際に、アプリのプライバシーマニフェストに理由が含まれていない場合は、その旨をEメールでお知らせします。これは、App Store Connectの既存の通知に追加されます。

5月1日以降:App Store Connectに新規アプリまたはアップデートされたアプリをアップロードする際に、アプリのコードが使用されるリストされたAPIの場合、承認された理由を含めることが義務付けられます。APIの使用が認められる理由によるものでない場合は、(該当APIを使用する以外の)代替方法を見つけてください。また、一般的に使用されているサードパーティSDKのリストに含まれている新しいサードパーティSDKを追加した場合は、これらのAPI、プライバシーマニフェスト、署名の要件がそのSDKに適用されます。必ず、プライバシーマニフェストが含まれているバージョンのSDKを使用してください。SDKがバイナリ依存として追加される場合は、署名も必須になるため注意してください。

この機能の導入は、すべてのアプリに恩恵をもたらすものです。SDKに依存するアプリをより適切にサポートできるよう、すべてのSDKがこの機能を導入することをおすすめします。

https://developer.apple.com/jp/news/?id=3d8a9yyh

5月1日以降までに対応しないと申請・更新できなくなる?!

上記のニュースから来ているように、プライバシーマニフェスト対応をしないとApple Store Connectに申請を出しても、リジェクトされるようになると思われます。Appleから宣言を要求されているのに対応しないと、大変になるということなので、今のうちの4月中に対応しておきましょう。

プライバシーマニフェストの対応者

  • アプリ開発者(現開発しているアプリに対しての対応)

  • SDK開発者(ライブラリ等で使用しているSDKに対しての対応)

アプリ開発者に関しては、現在開発しているものに対しての使用しているAPIやトラッキングについてなどの明示的宣言が必要になります。

それに対してSDK開発者の方は、アプリ開発者にはどうすることもできないのでSDKの開発者によるプライバシーマニフェスト対応のアップデートを待ちましょう。


Apple公式ドキュメント

https://developer.apple.com/documentation/bundleresources/privacy_manifest_files

具体的なプライバシーマニフェストの対応手順

1. ライブラリで使用しているものがプライバシーマニフェスト対応が完了していたらアップデートする

SPM(Swift Package Manager)
CocoaPods

などからアップデートをかけましょう。
もし、対応していなければ対象のSDKライブラリを検索してissueとして上がっているかなど確認してみましょう。

2. とりあえず、Apple Store Connectにアップロードする

なぜ、アップロードをするかというと、アップしたタイミングでプライバシーマニフェスト対応していないアプリに関してはAppleから直接メールで警告文が送られてくるようになります。

下記のようなメールが来れば警告で
プライバシーマニフェスト対応が必要です。

警告メールには対応してほしいAPIやトラッキング情報が書いてくれているのでそちらを対応していきます。

3. プロジェクト内にPrivacyInfo.xcprivacyを追加する

Fire →New → FireでApp Privacyを選択

下記のファイルが作成されればOK!


PrivacyInfoに追加しよう

Privacy Nutrition Label Type

この項目は『収集しているデータタイプとそのデータがどのように使用されているか・ユーザーとリンク・トラッキングしているかなどを記載する』というものです。

下記の種類から取集しているものを追記しましょう
https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_data_use_in_privacy_manifests

すでにアプリを公開している場合はAppleStoreのアプリのプライバシーを参考に入力していくのが良さそうです。

paypayアプリで言うとこんな感じに

追加方法

  1. App Privacy Configurationが元からあると思うので、+ボタンを押す

2. Privacy Nutrition Label Typesを選択

3. それぞれの項目を入力する

  1. Collected Data Type

  2. Linked to User

  3. Used for Tracking

  4. Collection Purposes

  1. Collected Data Type

アプリまたはサードパーティ SDK が収集するデータの種類を識別する文字列。以下のデータ型のリストから、アプリまたはサードパーティ SDK が収集するデータに一致する値を選択します。


https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_data_use_in_privacy_manifests#4250555

2.   Linked to User

アプリまたはサードパーティ SDK がこのデータ型をユーザーの ID にリンクするかどうかを示すブール値。詳細については、 「App Store のアプリのプライバシーの詳細」にある「ユーザーにリンクされたデータ」を参照してください。

https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_data_use_in_privacy_manifests#

3.  Used for Tracking

アプリまたはサードパーティ SDK が追跡にこのデータ型を使用するかどうかを示すブール値。

https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_data_use_in_privacy_manifests#

4.  Collection Purposes

アプリまたはサードパーティ SDK がデータを収集する理由をリストする文字列の配列。以下の目的のリストから、アプリまたはサードパーティ SDK がこのデータ型を収集する理由に一致する値を選択してください。

https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_data_use_in_privacy_manifests#

下記の6種類から理由を選択できます

全体イメージ


Privacy Tracking Enabled

この項目は『アプリまたはサードパーティSDKがApp Tracking Transparency フレームワークを使用しているかどうかを記載する』というものでYESかNOを記載してください

Privacy Tracking Domains

この項目は『トラッキングに使用するドメインの一覧を記載する』というものです。

Privacy Accessed API Types

  1. Privacy Accessed API Reasons

  2. Privacy Accessed API Type

Type API宣言が必要なもの

File timestamp APIs
System boot time APIs
Disk space APIs
Active keyboard APIs
User defaults APIs ← これは誰もが使ってそうですね

Reasonsについては
下記に番号が載っているのでこちらを参考に記載しましょう!
https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api

全体イメージ

PrivacyInfoの全体イメージ

まとめ

大体こんな感じで、プライバシーマニフェスト対応をしていきます。とりあえずここまで、できたら一旦Apple Store Connectにアップして警告メールくるか様子見しましょう!警告メールが来なければ、対応済みになります。もし、警告メールが来たらそこの部分対応やよくわかなければSDK側の問題かもしれないのでアップデート内容もよくみてみましょう。

この記事が気に入ったらサポートをしてみませんか?