[privacy manifests対応]対応済サードパーティSDK側に不備があるかも!?

AppleはWWDC23でアプリのプライバシー管理に革命的な変更を導入し、2024年5月1日から「Privacy Manifests」への対応が必須となります。そのため、Privacy Manifestsに対応していないアプリは新規申請・アップデート審査時にリジェクトされてしまう。

対応済と報告しているサードパーティSDKの中に実は、不備があるSDKがあります。今回は、その調べ方をお伝えします。

Privacy Manifests対応でやること

  1. アプリで利用しているAPIの宣言
  2. 「アプリのプライバシー」の宣言
  3. サードパーティSDKでの PrivacyInfo.xcprivacy 対応

1. アプリで利用しているAPIの宣言

Appleは、APIごとにグループ分けをし、それぞれのAPIがどのプライバシーカテゴリに該当するかを明確にしています。

開発者は自身のアプリが使用しているAPIをチェックし、それぞれの利用理由をPrivacyInfo.xcprivacyファイルに宣言する必要があります。

APIグループアクセス対象Key名検索する文字列宣言理由
File timestamp APIsファイルのタイムスタンプNSPrivacyAccessedAPICategoryFileTimestampcreationDate
modificationDate
fileModificationDate
contentModificationDateKey
creationDateKey
getattrlist(_:_:_:_:_:)
getattrlistbulk(_:_:_:_:_:)
fgetattrlist(_:_:_:_:_:)
stat
fstat(_:_:)
fstatat(_:_:_:_:)
lstat(_:_:)
getattrlistat(_:_:_:_:_:_:)
DDA9.1
C617.1
3B52.1
0A2A.1
System boot time APIsシステム起動時間NSPrivacyAccessedAPICategorySystemBootTimesystemUptime
mach_absolute_time()
35F9.1
8FFB.1
3D61.1
Disk space APIs使用可能なディスク容量NSPrivacyAccessedAPICategoryDiskSpacevolumeAvailableCapacityKey
volumeAvailableCapacityForImportantUsageKey
volumeAvailableCapacityForOpportunisticUsageKey
volumeTotalCapacityKey
systemFreeSize
systemSize
statfs(_:_:)
statvfs(_:_:)
fstatfs(_:_:)
fstatvfs(_:_:)
getattrlist(_:_:_:_:_:)
fgetattrlist(_:_:_:_:_:)
getattrlistat(_:_:_:_:_:_:)
85F4.1
E174.1
7D9E.1
B728.1
Active keyboard APIsアクティブなキーボードのリストNSPrivacyAccessedAPICategoryActiveKeyboardsactiveInputModes3EC4.1
54BD.1
User defaults APIsUserDefaultsNSPrivacyAccessedAPICategoryUserDefaultsUserDefaultsCA92.1
1C8F.1
C56D.1
AC6B.1
作業内容

1−1、上記のAPIグループをアプリ内で使用してるかソース内検索をする

1−2、使用していた場合は、決められた理由の中から該当するものをPrivacyInfo.xcprivacy(Privacy Manifests)に明記する

2. 「アプリのプライバシー」の宣言

App Storeで公開する際には、「アプリのプライバシー」でどのようなデータが収集されるかをユーザーに告知する必要があります。これらの情報も同様にPrivacyInfo.xcprivacyに記載する必要があります。

作業内容

2−1、AppStore上に宣言している「アプリのプライバシー」の宣言と同じ内容をPrivacyInfo.xcprivacyに記載する

3. サードパーティSDKでの PrivacyInfo.xcprivacy 対応

サードパーティSDKのPrivacyInfo.xcprivacy対応も必要です

Appleが一部対応必須サードパーティSDKを名指ししています。

名指しされていないサードパーティSDKも1のAPIを使用していたら対応が必須。

作業内容

3−1、アプリで使用しているサードパーティSDKが1のAPIを使用しているか調査

3−2、使用していた場合、そのサードパーティSDKがPrivacyInfo.xcprivacy対応をしているか調査 対応していた場合

3−3、対応版のバージョンを取り込む

※PrivacyInfo.xcprivacyがあってもAPIの宣言がされていない場合があります。そのため、確認が必要です。

対応していなかった場合

3−4、下記の対応をする

 ・ GItHubのissueを確認し、もしなかったら問い合わせて対応してもらう

 ・ GitHubを見て、最終更新日が相当古いものは、別のサードパーティSDKに変えるか、SDKのソースをまるコピーしてプロジェクトに入れ自分でPrivacyInfo.xcprivacy対応する

サードパーティSDKが該当APIを使用しているか調べる方法

  1. 検索対象を「In Pods.xcodeproj」にする
  2. 「Matching Case」に設定する
  3. 検索文字列を上記の[検索する文字列]を入れる
  4. 使用している箇所を確認する
  5. ライブラリ名を確認する

  1. project navigatorをクリック
  2. 先ほど確認したライブラリ名を選択
  3. 「PrivacyInfo.xcprivacy」ファイルがあるか確認する
  4. あった場合、その中に理由が宣言されているか確認

※なかった場合は、GitHubのissueで問い合わせる

PrivacyInfo.xcprivacyの実装方法

具体的な実装方法については、クラスメソッドの記事に詳しい手順が記載されています。

このガイドに従うことで、スムーズにPrivacy Manifestsへの対応が進められます。

まとめ

アプリ開発者がやるべきことは下記の3点です。

3番目のサードパーティSDKでの PrivacyInfo.xcprivacy 対応については、PrivacyInfo.xcprivacyファイルは、あってもちゃんとAPI使用理由が記載されていない場合があるため、気をつける必要があります。

  1. アプリで利用しているAPIの宣言
  2. 「アプリのプライバシー」の宣言
  3. サードパーティSDKでの PrivacyInfo.xcprivacy 対応

最後に

最後までご覧いただきありがとうございます。

WWDC23で発表があってから対応必須期限が2024年5月1日以降になり、その対応期限も近づいてきました。

5月1日以降に実際にアプリを審査提出してみないと実際どうなるかはわかりません。

そのため、余裕を持ったアプリ開発を目指してください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA