エクストーンの大久保です。2024年5月からAppleのApp Storeの審査でプライバシーマニフェストへの対応が義務化されました。それ以降は話題に挙がることが少なくなりましたが、今回は私が5月前後に行ったプライバシーマニフェスト対応関連で実際に遭遇した課題と、それに対する対応や解決方法について振り返りたいと思います。
プライバシーマニフェストとは
プライバシーマニフェストは、iOSやmacOSアプリがどのようにユーザーのデータを扱うかを示すための仕組みで、その実体はPrivacyInfo.xcprivacy
というアプリ内部やサードパーティのSDKに含まれるplistファイルです。
このファイルには、次の3つの情報を含める必要があります。
- トラッキングの有無と、トラッキングを行うドメイン名
- ユーザーのプライバシーとデータの使用におけるトラッキングの定義に該当する場合は、トラッキングを行っていることを明示する必要があります。
- またその場合はトラッキングを行っているドメイン名の記載も必要です。
- 収集するデータの種類
- 連絡先情報や検索履歴など、アプリおよびサードパーティのSDKが収集するデータの一覧です。
- 基本的にはストアに申請時に入力するPrivacy Nutrition Labelsの内容と同じになるはずです。
- 使用するのに理由が必要なAPIの明記とその理由
- プライバシーに関わるAPIを利用する場合は、その理由を記載する必要があります。
- ファイルのタイムスタンプを取り扱うAPIや、UserDefaultsと呼ばれる簡易的なデータベースを取り扱うAPIなどが対象です。
以下にApple公式の日本語のガイドもあるので、詳しくはそちらをご確認ください。 developer.apple.com
実際にあった課題とその対応方法
ここからは2024年5月前後にプライバシーマニフェスト対応するにあたって、私が実際に遭遇した課題と、その際に取った対応方法をいくつか挙げていきたいと思います。
サードパーティのSDKがプライバシーマニフェストに対応していない
自分たちのアプリのマニフェストは自分たちで記述すればいいので、手間ではありますが、大きな問題はありません。
問題はサードパーティのSDKです。Appleの方針が不明瞭だったこともあり、実際にストア審査でチェックされるまではFirebaseのような著名なライブラリであってもどこまで対応する必要があるのかは手探りな状態でした。
具体的には、
- トラッキングや情報取得を行っておらず、理由の明記が必要なAPIも利用していないサードパーティのSDKでもマニフェストをアプリに含める必要があるか
- 何らかの理由でプライバシーマニフェストに対応されたサードパーティのSDKにアップデートできない場合はどうすればよいか
といった点が不明でしたが、現時点での結論としては、
- 理由の明記が必要なAPIを利用していないサードパーティのSDKについては、プライバシーマニフェスト対応されている必要はない
- 理由の明記が必要なAPIを利用しているサードパーティのSDKについて、プライバシーマニフェストに対応されたバージョンにアップデートできない場合は、自身のアプリのマニフェストでAPIの利用を明記する
という対応を行うことで、審査に通ることを確認しました。
ストア審査の基準が予告なしに変わる
今回のプライバシーマニフェストの審査は、事前にTestFlightでベータ版配信時にチェックすることが可能でした。 基本的にはそれが通っていれば5月から義務化されても問題ないと想定していましたが、4月の下旬から突然Test Flight配信時のチェックに通らなくなりました。
どうやらマニフェストファイルのフォーマットのチェックが厳しくなったようで、トラッキングを有りにしているのにドメインの記載がなかったり、値の無い空の項目がある場合にエラーになっていました。
対応方法としては、サードパーティのSDKの開発元に連絡し、問題となった点を修正してもらうという真っ当な方法になります。
Xcodeのバージョンによって、マニフェストに入力できない値がある
User defaults APIsの1C8F.1
という特定の理由の話になりますが、この理由はXcode 15.3から追加されたもので、Xcode 15.2の環境では選択肢として表示されませんでした。
調査をしたところ、選択肢から選ぶのではなく直接値を入力すればよいという記事を見つけたので、同様に対応し、審査に通ることを確認しました。
参考にした記事
dev.classmethod.jp forums.developer.apple.com
プライバシーマニフェストの今後
前述の通り、プライバシーマニフェストをアプリに含めることは2024年5月から義務化されました。
現状は、審査時にプライバシーマニフェストが機械的に評価されるのみだと思われますが、「収集するデータの種類」などは、Privacy Nutrition Labelsで表示する内容とほぼ同等なため、将来的にはマニフェストの内容からPrivacy Nutrition Labelsへ自動で反映されるような仕組みへと発展していくと考えられます。
義務化前に比べるとサードパーティのSDKのプライバシーマニフェスト対応は進んでいると思われるので、今回振り返ったような問題に直面することは今後は少なくなると思われますが、Apple側の審査内容や基準については今後も随時変更があると想定されます。
そういった際に慌てないように、今後もプライバシー関連の話題については、感度高くキャッチアップしていきたいと思っています。以上です。