如何查出你的 SDK 蒐集了什麼
一套可重複使用的方法、一個以 Firebase 自己公布的表格為例的實際示範,以及遇到不公布資料的廠商時該去哪裡找。
打開你的相依套件檔案,列出每個第三方 SDK,然後閱讀每家廠商自己的資料揭露頁面——例如 Firebase 就公布了它每項產品究竟蒐集哪些資料。這份清單就是你隱私權政策的實質內容,也是你的 Data safety 和 App Privacy 回答必須依據的來源。
改用幾分鐘完成這件事
AppFoyer 託管這篇指南所談的頁面:隱私權政策、服務條款、支援、帳戶刪除和 app-ads.txt,放在各自的子網域上,你不需要自己的網域或伺服器。一個應用程式免費,而且商店要求的任何內容都不會放在付費牆後面。
查核日期:2026年9月19日。 商店政策會變動,有時不會事先通知。以下所有內容都附上官方文件的連結,具有權威的是那個頁面,而不是本頁。如果兩者不一致,以商店為準。 本指南譯自英文;引用的商店文件保留英文原文。
商店對資料的每一項要求,最後都歸結到同一份清單,而幾乎沒有人把它寫下來。你的隱私權政策、你的 Data safety 表單和你的 App Privacy 回答,是同一份清單的三種呈現方式——所以好好地把它做一次,就是全部的工作。
兩家商店都明確表示,SDK 的行為算是你的。Google Play 表示資料蒐集 “includes data collected and handled through any third-party libraries or SDKs used in their apps”(譯文:包括透過其應用程式中使用的任何第三方程式庫或 SDK 所蒐集和處理的資料)。Apple 要求你說明 “you or your third-party partners collect”(譯文:你或你的第三方合作夥伴所蒐集)的資料。
步驟 1:找出每個 SDK
閱讀檔案,不要憑記憶:
| 平台 | 檔案 |
|---|---|
| Android | build.gradle / build.gradle.kts、libs.versions.toml、AndroidManifest.xml(權限、meta-data) |
| iOS | Podfile、Package.swift、*.pbxproj、Info.plist(用途說明字串)、*.entitlements |
| Flutter | pubspec.yaml |
| React Native / Expo | package.json、app.json |
也要包括你沒有親自選擇的遞移相依套件:一個會帶入廣告程式庫的 SDK,就會蒐集那個程式庫所蒐集的資料。
步驟 2:閱讀每家廠商自己的揭露
大多數正規的廠商都會公布一個頁面,說明它們的 SDK 究竟傳送了什麼,因為它們的客戶填寫這些表單時正需要它。那個頁面——不是部落格文章,也不是論壇上的回答——就是你的來源。
以 Firebase 作為實際範例,因為 Google 公布了按產品分別列出、並對應到 Apple App Privacy 類別的明細:
| Firebase 產品 | 根據 Google 的說明文件,它蒐集什麼 |
|---|---|
| Analytics | 應用程式執行個體 ID、使用者屬性、事件、IP 位址 |
| Crashlytics | 當機時的堆疊追蹤和應用程式狀態、裝置和作業系統資訊,以及你附加的任何自訂鍵、記錄和使用者 ID |
| Cloud Messaging | 與應用程式安裝 ID 相關聯的推播權杖;裝置型號、語言、時區、作業系統版本、應用程式識別碼和版本 |
| Authentication | 它產生的識別碼,以及來自你所啟用之登入供應商的電子郵件地址、電話號碼和顯示名稱 |
| Performance Monitoring | 啟動時間和網路延遲等效能指標、裝置和作業系統資訊、用於地理區隔的 IP 位址 |
| Remote Config | 國家/地區和語言代碼、時區、作業系統版本、應用程式和 bundle 識別碼 |
如果你使用 Crashlytics,請把這張表讀兩遍:最後一欄有一部分是你造成的。你附加到當機報告中的自訂鍵和使用者 ID,是你選擇傳送的資料,應該用你自己的話寫進你的政策裡。
其他公布了揭露資訊、值得直接去查的廠商:廣告聯播網(AdMob、AppLovin、Unity、ironSource)、歸因工具(AppsFlyer、Adjust)、錯誤回報(Sentry、Bugsnag)、購買(RevenueCat、Adapty),以及身分驗證供應商。
步驟 3:當廠商什麼都沒公布時
這種情況確實會發生,尤其是較小的程式庫。這時:
- 檢視網路流量。透過代理伺服器執行應用程式,看看 SDK 傳送了什麼。這是唯一無可爭辯的方法,一個下午就能解決問題。
- 閱讀原始碼,如果它是開源的。
- 以書面詢問廠商,並保留回覆。
- 考慮移除它。一個沒有人願意說明其資料行為的相依套件,是你為了別人的方便而背負的負擔。
步驟 4:把清單轉成三份文件
一份清單、三種呈現方式,依照這個順序:
- 隱私權政策——類別、目的、具名的第三方、保留期限、聯絡方式。
- Play Console 中的 Data safety 表單——同樣的事實,以勾選框呈現。
- App Store Connect 中的 App Privacy——再一次同樣的事實,套用 Apple 的類別。
根據清單填寫它們,絕不要互相照抄。兩者不一致時,商店會相信 SDK:Google Play 表示 “when Google becomes aware of a discrepancy between your app behavior and your declaration, we may take appropriate action, including enforcement action”(譯文:當 Google 發現你的應用程式行為與你的聲明不一致時,我們可能會採取適當行動,包括執法行動)。
讓它保持屬實
讓這三份文件全部失效的事件永遠是同一個:某個相依套件改變了。在你的發布檢查清單中加一行——這次發布有沒有任何相依套件改變?如果有,重新檢查政策和兩份表單——因為兩家商店都要求它們保持正確,而不只是在上線時正確過。
AppFoyer 在這裡做什麼
這套方法就是我們的代理所自動化的工作。讓程式設計代理讀取存放庫,它就會讀取那些相依套件檔案,將找到的內容與已知 SDK 的對照表比對,並草擬列出所找到第三方名稱的隱私權政策——同時回報每個事實出自哪個檔案和哪一行,讓你可以檢查,而不是只能相信。沒有代理的話,一份簡短的表單會問同樣的問題。
它產出的是一份由你審閱的草稿。它看不到它不認得的程式庫,而且沒有你的點擊,它絕不會發布任何東西。
權威來源
- Privacy and security in Firebase 和App Store data collection:Google。上面的表格出自這些頁面;具權威性的是它們,而不是本頁。
- Provide information for Google Play’s Data safety section:Google Play Console 說明
- App privacy details on the App Store:Apple