LoginSignup
26
23

Privacy Manifests対応

Last updated at Posted at 2024-04-16

これは何?

  • Xcode15より新しいプライバシーに関する基準が新設された
    • 目的はざっくり、App Storeでユーザーに対し利用している情報をさらに明示的にするため
    • プライバシーの強化
  • 2023年秋から警告メールの送付が開始され、2024年春(2024/05/01)以降は対応必須となる
    • これに対応しないと審査でリジェクトされる
    • 新規だけではなく、既存アプリもアップデートをかける際には対応が必要
  • やること に記載する3つの項目に対して該当する場合は対応が必要

前提

  • Privacy Manifestsに対してAppleの方でも対応の遅れがあり、現時点で正しい対応方法が明確ではない箇所が多々あります
  • その為一度審査に出して警告メールを元に作業を進めることになります
    • TestFlightの外部向けで審査をかけると警告メールを手軽に受け取れます
    • 一度審査にかけてPrivacy Manifests対応後に再審査かけたい場合は、アプリのバージョンを変更することで審査されます
  • TestFlightの外部テストを設定して審査にかける

  • 現時点での懸念事項
  • Unityエンジニア目線で調査を行っています
  • 理解や認識に間違いがある場合、コメントやX(旧Twitter)などでこっそり教えてください🙇‍♂️

やること

  1. Privacy-impacting SDKs に該当するSDKを利用していないか調査
    → 利用していたら対応済みのバージョンにアプデする

  2. Required reason APIs に該当するAPIを利用する実装 or SDKがないかスキャナーを使って調査
    → 利用していたら対応済みのバージョンにアプデする or PrivacyInfo.xcprivacyに利用しているapiを記述する

  3. Tracking domains に該当するアクセスがないかXcodeのInstrumentsを使って調査
    → 利用していたら対応済みのバージョンにアプデする or PrivacyInfo.xcprivacyにドメインを記述する

Privacy-impacting SDKs

プライバシーへの影響が大きいSDKをAppleが特定したので、そのSDKを使う時はPrivacy Manifestsファイルが必要に
XCFrameworksみたいなバイナリでSDKを追加している場合は署名(codesignin)が必須に
※cocoapodsなどで追加する場合は必要ない理解でいます(参考)

1. 対応が必要かの判別

Upcoming third-party SDK requirementsにリストアップされているSDKを利用していないか確認する

  • Firebase
  • Protobuf
  • AppAuth
  • GoogleSignIn
    ※ 1部を記載しています

2. 対応が必要な人

  • SDKの開発者
  • Privacy-impacting SDKsを利用しているアプリの開発者

3. 対応方法

  1. SDKの開発者
    • バイナリ形式ならコード署名をする
    • PrivacyInfo.xcprivacyを作成する
  2. アプリの開発者
    • 対応が済んだバージョンにアップデートする

Required reason APIs

既存API(NSFileSystemFreeSizeとか)にRequired reason APIと呼ばれる新たなカテゴリが追加され、Required reason APIを使う時はPrivacyInfo.xcprivacyファイルに理由を記載する

1. 対応が必要かの判別

Describing use of required reason APIに記載されているAPIを利用しているか、ios_privacy_manifest_scannerなどを使い該当するAPIの利用がないか確認する

2. 対応が必要な人

  • アプリ開発者

3. 対応方法

  1. Required reason APIが利用しているライブラリ内にあった場合
    • ライブラリ/SDKの作者に連絡してPrivacyInfo.xcprivacyファイルを追加してもらう
    • 対応が済んだバージョンにアップデートする
    • 実際にPrivacyInfo.xcprivacyファイルが追加されている事例 PrivacyInfo.xcprivacyファイルの追加事例
  2. Required reason APIが開発しているプロジェクト内にあった場合
    • 現時点では正しい対応方針が不明確だが、おそらく独自にPrivacyInfo.xcprivacyを作成してフォーマットに沿って記述を追加することで対応が完了する見通しにあります

Tracking domains

アプリ内でユーザーのトラッキングを行っている場合、PrivacyInfo.xcprivacyファイルにトラッキングしているドメインを記載する必要がある

1. 対応が必要かの判別

XcodeのInstruments(Network)でアプリをプロファイリングして該当するドメインがないか調査する。

該当する場合、Points of Interest instrumentに記録される

手順は公式ドキュメントがわかりやすいDetecting when your app contacts domains that may be profiling users

トラッキングの定義についてはここに書いてある

2. 対応が必要な人

  • アプリ開発者
  • SDKの開発者

3. 対応方法

  1. Tracking domainsが利用しているライブラリ内にあった場合
    • ライブラリ/SDKの作者に連絡してPrivacyInfo.xcprivacyファイルを追加して該当するドメインの記載をしてもらう
    • 対応が済んだバージョンにアップデートする
    • 実際にTracking domainsの対応がされているPrivacyInfo.xcprivacyファイル Tracking domainsの対応事例
  2. Tracking domainsが開発しているプロジェクト内にあった場合
    • 現時点では正しい対応方針が不明確だが、おそらく独自にPrivacyInfo.xcprivacyを作成してフォーマットに沿って記述を追加することで対応が完了する

現時点での懸念事項

  • SDK側でPrivacy Manifestsファイルが正しく配置されていても、アプリ本体側のPrivacy ManifestsファイルにAPIの記載がないと審査で意図通り検出されず未対応の警告メールが届いてしまう事例が報告されています

  • そもそも審査に出しても警告メールが届かない事例がいくつか報告されています

代表的なSDKの対応状況

  • なのでプライバシーマニフェストファイルの処理がサポートされるようになった以下のバージョンにアップデートするだけで良い

Reference

Apple公式ドキュメント

Unity公式ドキュメント

SDKの対応状況

その他

26
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
23