サードパーティSDKのPrivacy Manifests対応状況を調査した
私が開発中のアプリで利用しているライブラリのPrivacy Manifests対応が一通り完了したため本記事の更新は終了する。最終更新日は2024年4月27日時点となっている。
すべてのiOSアプリは2024年春までにPrivacy Manifests対応を実施する必要がある。Privacy Manifests対応とは、簡単に言えば「アプリ」と「サードパーティSDK(ライブラリ)」の両方に PrivacyInfo.xcprivacy
を追加することである。
少し前に個人開発しているアプリでPrivacy Manifests対応をおこない、作業内容を以下の記事にまとめた。以下の記事はアプリ側に寄った内容である。
2024年に入り、ライブラリ側でもPrivacy Manifests対応が進み始めている。一通りの情報が出揃ったためだろう。よく使われているライブラリに関しては、Appleが名指しでリスト化している。AlamofireやFirebase関連のSDKは巨大なため、対応自体は進んでいるが完了までに時間がかかりそうな印象だ。
本記事では、サードパーティSDKのプライバシーマニフェスト対応状況について調査した結果を掲載している。
サードパーティSDKのPrivacy Manifests対応状況
2024年4月27日現在の、ライブラリのPrivacy Manifests対応状況をまとめた。
「Appleのリスト」列は、Appleに名指しされているライブラリかどうかを示す。現時点では、私はFlutterを含むクロスプラットフォームフレームワークを利用していないため、一部のライブラリについては「調査保留」とした。
ライブラリ名 | Appleのリスト | 最新バージョン | PrivacyInfo 対応バージョン | 議論 | 備考 |
---|---|---|---|---|---|
AFNetworking | o | 4.0.1 | 無し🔥 | #3809 | 通信。リポジトリはアーカイブ済み。公式はAlamofireへのアップデートを推奨 |
Alamofire | o | 5.9.1 | 5.9.0 🆗 | #3761, #3792 | 通信 |
Abseil | o | - | - | - | Firebase関連 |
AppAuth | o | 1.7.5 | 1.7.3 🆗 | #807 | Firebase関連 |
BoringSSL/openssl_grpc | o | - | - | - | Firebase関連。OpenSSLのフォーク |
Capacitor | o | 5.6.0 | 議論中 | #7176 | クロスプラットフォームフレームワークのため調査保留 |
Charts | o | 5.1.0 | 5.1.0 🆗 | #5131 | グラフ。最近 DGCharts に名前が変わった |
connectivity_plus | o | 調査保留 | - | - | Flutter用のライブラリのため調査保留 |
Cordova | o | 7.0.0 | - | #1391 | クロスプラットフォームフレームワークのため調査保留 |
device_info_plus | o | 調査保留 | - | - | Flutter用のライブラリのため調査保留 |
DKImagePickerController | o | 4.3.8 | 4.3.6 🆗 | #718 | 画像ピッカー |
DKPhotoGallery | o | 0.0.17 | 議論中 | #42 | リポジトリはメンテナンスされていない |
file_picker | o | 調査保留 | Flutter用のライブラリのため調査保留 | ||
FBAEMKit | o | 16.3.1 | - | #2264 | Facebook関連 |
FBSDKCoreKit | o | 16.3.1 | - | #2264 | Facebook関連 |
FBSDKCoreKit_Basics | o | - | - | - | Facebook関連 |
FBSDKLoginKit | o | 16.3.1 | - | #2264 | Facebook関連 |
FBSDKShareKit | o | 16.3.1 | - | #2264 | Facebook関連 |
FirebaseABTesting | o | 10.25.0 | 10.22.0 🆗 | #11490 | |
FirebaseAuth | o | 10.25.0 | 10.22.0 🆗 | - | Firebase関連 |
FirebaseCore | o | 10.25.0 | 10.22.0 🆗 | - | Firebase関連 |
FirebaseCoreDiagnostics | o | - | - | - | Firebase関連 |
FirebaseCoreExtension | o | 10.25.0 | 10.22.0 🆗 | - | Firebase関連 |
FirebaseCoreInternal | o | 10.25.0 | 10.22.0 🆗 | - | Firebase関連 |
FirebaseCrashlytics | o | 10.25.0 | 10.22.0 🆗 | #11490 | Firebase関連 |
FirebaseDynamicLinks | o | 10.25.0 | 10.22.0 🆗 | #11490 | Firebase関連 |
FirebaseFirestore | o | 10.25.0 | 10.22.0 🆗 | - | Firebase関連 |
FirebaseInstallations | o | 10.25.0 | 10.22.0 🆗 | - | Firebase関連 |
FirebaseMessaging | o | 10.25.0 | 10.22.0 🆗 | - | Firebase関連 |
FirebaseRemoteConfig | o | 10.25.0 | 10.22.0 🆗 | #11490 | Firebase関連 |
Flutter | o | 調査保留 | - | - | Flutter用のライブラリのため調査保留 |
flutter_inappwebview | o | 調査保留 | - | - | Flutter用のライブラリのため調査保留 |
flutter_local_notifications | o | 調査保留 | - | - | Flutter用のライブラリのため調査保留 |
fluttertoast | o | 調査保留 | - | - | Flutter用のライブラリのため調査保留 |
geolocator_apple | o | 調査保留 | - | - | Flutter用のライブラリのため調査保留 |
FMDB | o | 2.7.8 | 2.7.8 🆗 | #852 | DBヘルパー |
GoogleDataTransport | o | 9.4.0 | 9.4.0 🆗 | - | Firebase関連。Google内部のライブラリで社員しか Pull Requestを作成できない (らしい) |
GoogleSignIn | o | 7.0.0 | - | #341 | Firebase関連 |
GoogleToolboxForMac | o | 4.2.1 | 4.2.1 🆗 | - | Firebase関連 |
GoogleUtilities | o | 7.13.1 | 7.13.0 🆗 | - | Firebase関連 |
GTMAppAuth | o | 4.1.1 | 4.1.0 🆗 | #235 | Firebase関連 |
GTMSessionFetcher | o | 3.4.1 | 3.3.0 🆗 | - | Firebase関連 |
grpcpp | o | 調査保留 | - | - | Flutter用のライブラリのため調査保留 |
hermes | o | 調査保留 | - | - | Flutter用のライブラリのため調査保留 |
image_picker_ios | o | 調査保留 | - | - | Flutter用のライブラリのため調査保留 |
IQKeyboardManagerSwift | o | 7.0.2 | 7.0.0 🆗 | #2004 | キーボードマネージャー |
IQKeyboardManager | o | - | - | - | キーボードマネージャー |
Kingfisher | o | 7.11.0 | 7.10.0 🆗 | 画像キャッシュ | |
leveldb | o | 調査保留 | - | - | Flutter用のライブラリのため調査保留 |
Lottie | o | 4.4.3 | 4.4.0 🆗 | #2213 | アニメーションフレームワーク |
MBProgressHUD | o | 1.2.0 | 対応済み。未リリース | #647 | プログレスHUD |
nanopb | o | - | - | - | Firebase関連 |
OneSignal | o | 5.1.5 | 5.0.5 🆗 | #1334 | プッシュ通知 |
OneSignalCore | o | - | - | - | OneSignal関連 |
OneSignalExtension | o | - | - | - | OneSignal関連 |
OneSignalOutcomes | o | - | - | - | OneSignal関連 |
OpenSSL | o | 3.1.4000 | 議論中 | #188 | |
OrderedSet | o | 6.0.1 | 議論中 | #41 | OrderedSet型を提供する |
package_info | o | 調査保留 | - | - | Flutter用のライブラリのため調査保留 |
package_info_plus | o | 調査保留 | - | - | Flutter用のライブラリのため調査保留 |
path_provider | o | 調査保留 | - | - | Flutter用のライブラリのため調査保留 |
path_provider_ios | o | 調査保留 | - | - | Flutter用のライブラリのため調査保留 |
Promises | o | 2.4.0 | 2.4.0 🆗 | #225, #226 | Firebase関連 |
FBLPromises | o | 2.4.0 | 2.4.0 🆗 | - | Firebase関連 |
Protobuf | o | 25.3 | 25.3 🆗 | - | Firebase関連 |
Reachability | o | 5.2.1 | 5.2.0 🆗 | #400, #401 | ネットワークの状態管理 |
RealmSwift | o | 10.49.2 | 10.46.0 🆗 | #8428, #8455 | DB |
RxSwift | o | 6.7.0 | 議論中 | #2567, #2572 | Rx。Pull Requestの作成まで進んでいたがクローズされ、引き続き議論が開始 |
RxCocoa | o | - | - | - | Rx関連 |
RxRelay | o | - | - | - | Rx関連 |
SDWebImage | o | 5.19.1 | 5.18.7 🆗 | 画像キャッシュ | |
share_plus | o | 調査保留 | - | - | Flutter用のライブラリのため調査保留 |
shared_preferences_ios | o | 調査保留 | - | - | Flutter用のライブラリのため調査保留 |
SnapKit | o | 5.7.1 | 5.7.0 🆗 | レイアウトヘルパー | |
sqflite | o | 2.3.3 | 2.3.1 🆗 | #1065 | Flutter用のライブラリのため調査保留 |
Starscream | o | 4.0.6 | 議論中 | #993 | WebSocket |
SVProgressHUD | o | 2.3.1 | 2.3.0 🆗 | #1120 | プログレスHUD |
SwiftyGif | o | 5.4.4 | 対応済み。未リリース | #192 | Git画像表示 |
SwiftyJSON | o | 5.0.2 | 5.0.2 🆗 | #1145 | JSONパーサー。リポジトリはメンテナンスされていない |
Toast | o | 4.1.1 | 4.1.0 🆗 | トースト | |
UnityFramework | o | 調査保留 | - | 資料 | Unity用のライブラリのため調査保留 |
url_launcher | o | 調査保留 | - | - | Flutter用のライブラリのため調査保留 |
url_launcher_ios | o | 調査保留 | - | - | Flutter用のライブラリのため調査保留 |
video_player_avfoundation | o | 調査保留 | - | - | Flutter用のライブラリのため調査保留 |
wakelock | o | 調査保留 | - | - | Flutter用のライブラリのため調査保留 |
webview_flutter_wkwebview | o | v0.6.2 | - | - | Flutter用のライブラリのため調査保留 |
KeychainAccess | x | v4.2.2 | 無し | #589, #587 | 秘匿情報管理。 |
SwiftyUserDefaults | x | 5.3.0 | 対応中 | #299, #301 | UserDefaultsラッパー。Appleのリストには含まれていないが、UserDefaultsを使っている? |
KRProgressHUD | x | 3.4.7 | ? | プログレスHUD。他のProgressHUDはリストに含まれているが、これは入ってない | |
UIDeviceIdentifier | x | 2.3.0 | 無し🔥 | デバイス情報。DeviceKit への移行を推奨 | |
DeviceKit | x | 5.2.3 | 5.2.1 🆗 | #366 | デバイス情報 |
R.swift | x | 7.5.0 | 議論中 | #872 | リソース管理 |
CryptoSwift | x | 1.8.2 | 1.8.1 🆗 | d7de7, #1040 | 暗号化 |
Treasure Data iOS SDK | x | 1.1.0 | 1.1.0 🆗 | #118 | データ解析 |
SwiftRater | x | 2.1.2 | 2.1.2 🆗 | #47, #48 | アプリ評価 |
RevenueCat SDK | x | 4.41.1 | 4.22.1 🆗 | #2619 | サブスクリプション管理 |
LicensePlistViewController | x | 2.3.0 | ? | #10 | ライセンス表示 |
註1: Firebaseの各ライブラリは、Firebase v10.22.0にてPrivacy Manifests対応された。依存関係にあるライブラリは「Firebase関連」としてまとめている。
註2: 親子関係にあるライブラリについては、主要なライブラリのみを取り上げている。
まとめ
2024年1月11日時点で私のアプリで影響を受けているのは、AlamofireとFirebase関連であることがわかった。AlamofireとFirebaseは利用ユーザーが多いため、対応方針について活発に議論が進んでおり、今春までに何らかの対応が期待できるだろう。
一方、最終更新日が3年前以上前で、現在リポジトリがメンテナンスされていないライブラリもリストに含まれている。そのようなライブラリを使っている場合は、自分でフォークして実装する、または自身で対応してPull Requestを投げる、使うのをやめるなど早めに対策を考える必要があるだろう。
Appleに名指しされていないライブラリでも、該当するプライバシー関連APIを利用している場合はPrivacy Manifests対応が必要である。当該のライブラリでIssueが立っていなければ、自分で調査しておいた方が良いだろう。
(2024/3/22追記) 新しいプライバシー要件が有効になった
2月末にApp Storeへの提出における新しいプライバシー要件についての具体的な施行スケジュールが発表された。
3月13日からレビュー提出時にプライバシーマニフェストのチェックされ、不備があれば警告メールが発信される。5月1日からはプライバシーマニフェストの遵守が求められるようになり、不備がある場合にリジェクトされる。
3月14日時点で、プライバシーマニフェスト対応が不完全なアプリを、レビューに提出した際に送られてくる警告メールについて、以下の記事にまとめた。
更新履歴
- 2024年4月27日:リストの更新。
- 2024年3月22日:リストの更新。
- 2024年3月6日:リストの更新。Privacy Manifest対応版のFirebase iOSD SDKがリリースされた。
- 2024年3月4日:リストの更新。Privacy Manifest対応版のAlamofireがリリースされた。Appleにより3月13日からチェックが開始、5月1日から厳格化することが発表された。
- 2024年2月19日:リストの更新。Privacy Manifest対応版のChartsがリリースされた。AlamofireのPrivacy Manifest対応がマージされた (現在未リリース)
- 2024年2月8日:リストの更新。Privacy Manifest対応版のFirebase iOS SDKのリリース予定が発表された。
- 2024年2月1日:リストの更新。Privacy Manifest対応版のCryptoSwift、Reachability.swiftがリリースされた。
- 2024年1月26日:リストの更新。Privacy Manifest対応版のRealmがリリースされた。
- 2024年1月22日:リストの更新。Privacy Manifest対応版のDeviceKitがリリースされた。
- 2024年1月15日:リストの更新
- 2024年1月10日:新規作成