【ReactNative/iOS】プライバシーマニフェストに対応する

こんにちは。第2開発部エンジニアのS.H.です。

2024年2月29日にApp Storeのプライバシー要件がアップデートされ、 2024年5月1日以降のアップデートではプライバシーマニフェストの対応が必須になりました。

私が所属する 遠隔臨場 SiteLive のiOS版アプリでも対応したので、 ReactNativeならではの点を中心にご紹介します。

developer.apple.com

この記事では2024年5月時点の公開情報を元に解釈・対応した内容をご紹介します。
今後のAppleの方針変更により追加の対応が必要になる可能性があります。

やるべきこと

大きく分けて次の2つの対応が必要です。

  1. アプリの Privacy Manifests 対応
  2. アプリが利用しているサードパーティ SDK の Privacy Manifests 対応

アプリの Privacy Manifests 対応

プロジェクトに PrivacyInfo.xcprivacy を追加して、次の設定を追加します。

  1. NSPrivacyTracking
  2. NSPrivacyTrackingDomains
  3. NSPrivacyCollectedDataTypes
  4. NSPrivacyAccessedAPITypes

developer.apple.com

NSPrivacyTracking

ユーザーの追跡にデータを利用するか示す情報です。
ユーザーを追跡したりデバイスの広告 ID にアクセスしない場合は false (NO) と回答すれば良さそうです。

developer.apple.com

NSPrivacyTrackingDomains

NSPrivacyTracking の回答が true (YES) となる場合に記載する情報です。
今回は非該当であるため記載しませんでした。

NSPrivacyCollectedDataTypes

アプリまたはサードパーティ SDK が収集するデータについて説明する情報です。
App Store Connect上で申告している「アプリのプライバシー」と一致するように記載します。

developer.apple.com

NSPrivacyAccessedAPITypes

Appleが指定するデバイスまたはユーザーの識別に悪用される可能性のあるAPIを利用している場合に、そのAPIと利用理由を説明する情報です。

次のページに説明が必要なAPIと利用理由の選択肢が定義されています。

developer.apple.com

ReactNative のプロジェクトの場合、次の2点を対応します。

  1. ReactNative自体が使用するAPIに関する情報・利用理由の追加
  2. 自ら追加したコード・OSSが使用するAPIに関する情報・利用理由の追加

ReactNative自体が使用するAPIを1から調査していくのは手間がかかりますが、 ReactNativeコミュニティのプライバシーマニフェストに関する議論で PrivacyInfo.xcprivacy のテンプレートが提供されています。 このテンプレートを活用しましょう。

github.com

github.com

アプリが利用しているサードパーティ SDK の Privacy Manifests 対応

「近日中に適用されるサードパーティSDKに関する要件」に記載のあるSDKを利用している場合、 プライバシーマニフェストに対応したSDKに差し替えます。

developer.apple.com

要件には「hermes」が指定されていますが、これはReactNativeが利用するMeta 製「hermes」ではありません。 ReactNativeコミュニティでAppleに問い合わせて確認が取れていますので、対応不要です。

github.com

引き続きAppleの新しい情報をキャッチアップして対応していく必要はありますが、今回の記事が少しでも参考になれば幸いです!

KENTEMでは、様々な拠点でエンジニアを大募集しています!
建設×ITにご興味頂いた方は、是非下記のリンクからご応募ください。
hrmos.co hrmos.co hrmos.co hrmos.co hrmos.co hrmos.co hrmos.co