# App Privacy 怎麼填：SDK 收集的資料要申報什麼

> App Privacy 要申報 App 和 SDK 收集的資料、用途、是否連結到使用者，以及是否用於追蹤。送審版本前必須先發布。

原始頁面：[App Privacy 怎麼填：SDK 收集的資料要申報什麼](https://devoria.fr/zh-hant/blog/app-privacy-app-store-connect-sdk)
作者：[Mehdi Azizi](https://devoria.fr/zh-hant/mehdi-azizi)
發布日期：2026-11-04
內容最後修訂：2026-11-04


App Privacy 是 App Store Connect 裡產生 App 頁面隱私權標籤的區塊。你要在這裡申報你的 App **和你整合進去的 SDK** 收集的每一種資料：用途是什麼、是否連結到使用者、是否用於追蹤。**只要你的答案還沒發布，App Store Connect 就不讓你把版本加入送審。**

答案隨時都能修改，不需要新的 build。最難的是搞清楚 RevenueCat、Sentry、PostHog、Supabase、AppsFlyer、Meta 或 Expo 通知要申報什麼。下面的表格整理自各 SDK 的文件和它們內建的 manifest，我在 2026 年 10 月 15 日重新看過一遍。

我自己用 Expo 和這些 SDK 發布 iOS App。這篇指南說明 Apple 的要求，以及我實際怎麼做。它不能取代法律意見。

## App Privacy、隱私權政策和 manifest：三件不同的事

- **隱私權政策**是一個網頁，你要提供它的網址。寫法請看[iOS App 的隱私權政策](https://devoria.fr/zh-hant/blog/ios-app-privacy-policy-guide)。
- **隱私權 manifest** 是打包進 build 的 `PrivacyInfo.xcprivacy` 檔案。詳細內容在[ITMS-91053 指南](https://devoria.fr/zh-hant/blog/itms-91053-missing-api-declaration-expo)。
- **App Privacy** 是 App Store Connect 的問卷。它會在你的 App 頁面上分成三個區塊顯示：用來追蹤你的資料、與你相關的資料、與你無關的資料。

**這三者講的內容必須一致。** Apple 的 [App Privacy Details](https://developer.apple.com/app-store/app-privacy-details/) 頁面說明，送審 App 和更新都必須提供這些資訊，而且也涵蓋你的第三方合作夥伴：分析工具、廣告聯播網、SDK，以及你加入其程式碼的供應商。

## 一步步填寫 App Privacy

[App Store Connect 說明文件](https://developer.apple.com/help/app-store-connect/manage-app-information/manage-app-privacy)詳細列出了下面的步驟。

要填這份問卷，你的角色必須是 Account Holder、Admin 或 App Manager。

1. 在 Apps 裡打開你的 App，然後點側邊欄的 **App Privacy**。
2. 點 **Get Started**。
3. 回答第一個問題：你或你的合作夥伴有沒有收集資料？如果沒有，選「No, we do not collect data from this app」然後儲存，就完成了。
4. 如果有，勾選所有被收集的資料類型，不論是你的程式碼還是 SDK 收集的。
5. 每一種類型都要回答三個問題：用途、是否連結到使用者、是否用於追蹤。
6. 檢查頁面預覽（Product Page Preview），點 **Publish** 並確認。

如果你的 App 已經上架，Apple 要求答案描述的是目前上架版本的資料。

**先發布，再送審。** 2026 年 9 月，我在 Piaf 上把版本加入送審時失敗了，出現這個訊息：「You must have published answers to your app's data usages.」我找不到用 App Store Connect 公開 API 填這份表單的方法，所以我都在網頁介面上填，而且最先做。

## 每種資料都要回答的三個問題

### 「收集」是什麼意思

對 Apple 來說，收集就是**把資料傳到裝置外，而且能存取它的時間超過回應請求所需的時間**。所以：

- 只在 iPhone 上處理的資料不算收集；
- 傳出去後立刻丟棄的 token 或 IP 位址也不算；
- 只為了 App 運作而收集的資料仍然要申報，並勾選這個用途。

### 用途

Apple 提供六種用途：第三方廣告、開發者的廣告或行銷、分析、產品個人化、App 功能，以及其他用途。同一種資料可以勾選多個：用於登入和 App 個人化的電子郵件，就要勾 App 功能和產品個人化。

### 連結到使用者

如果資料透過帳號、裝置或其他方式和使用者身分綁在一起，就算是有連結。Apple 指出這種情況很常見，除非你在收集前就把它匿名化，而且之後從不嘗試重新連結。**只要你把帳號 ID 傳給 SDK（identify、setUser、logIn），那個 SDK 的資料就變成有連結。**

### 追蹤

追蹤就是把你 App 的資料和其他公司的 App 或網站的資料連結起來，用於目標式廣告或廣告成效評估。把資料分享給資料仲介也算。**如果 SDK 為了廣告把你的資料和其他 App 的資料交叉比對，就算是追蹤，即使你自己沒有這樣用。**

追蹤答「是」會帶來兩個後果：在任何追蹤前都要先跳出 App Tracking Transparency 請求，說明在[guideline 5.1.2](https://devoria.fr/zh-hant/blog/guideline-5-1-2-third-party-ai-att-data-sharing)；以及 manifest 必須申報追蹤和對應的網域，少了這些網域，你會收到[ITMS-91064 錯誤](https://devoria.fr/zh-hant/blog/itms-91064-invalid-tracking-information-fix)。

## Expo App 的 SDK 要申報什麼

這張表以各 SDK 的預設設定為準。**只要你傳給它們更多東西，例如電子郵件、帳號 ID 或自訂事件，就要申報更多。**

| SDK                | 要申報的資料          | 追蹤        | 來源                 |
| ------------------ | --------------------- | ----------- | -------------------- |
| RevenueCat         | 購買記錄              | 否          | RevenueCat 文件      |
| Sentry             | 當機、效能            | 否          | 文件和 manifest      |
| PostHog            | App 互動              | 否          | PostHog iOS manifest |
| Supabase Auth      | 電子郵件、使用者 ID   | 否          | 找不到文件           |
| AppsFlyer          | 裝置 ID、互動         | 是，裝置 ID | AppsFlyer manifest   |
| Meta SDK           | 裝置 ID、當機         | 是，裝置 ID | Meta 文件和 manifest |
| Expo Notifications | 裝置 ID（推播 token） | 否          | 找不到文件           |

### RevenueCat

[它的 App Privacy 文件](https://www.revenuecat.com/docs/platform-resources/apple-platform-resources/apple-app-privacy)要求申報購買記錄，並勾選所有 RevenueCat 使用者都必須勾的兩個用途：分析和 App 功能。是否連結：如果你的 ID 是匿名的就選否，如果你的 RevenueCat 使用者 ID 能對應到電子郵件就選是。如果你傳的是自己的 ID，要加上使用者 ID；如果你把電子郵件當屬性傳送，要加上聯絡資訊。SDK 的 manifest 只列出 App 功能：請以內容更完整的文件為準。串接方式請看[用 RevenueCat 做 App 內訂閱](https://devoria.fr/zh-hant/blog/revenuecat-ios-in-app-subscription-setup)。

### Sentry

[它的行動裝置隱私頁面](https://docs.sentry.io/security-legal-pii/security/mobile-privacy/)寫得很清楚：Sentry 是要申報的合作夥伴，標準用途是分析和 App 功能，它不做追蹤，也不需要廣告識別碼。[它的 manifest](https://github.com/getsentry/sentry-cocoa/blob/main/Sources/Resources/PrivacyInfo.xcprivacy) 申報了當機資料、效能資料和其他診斷資料，皆為不連結。如果你用 `Sentry.setUser` 把帳號 ID 附加到報告上，這些資料就變成有連結。

### PostHog

我找不到 PostHog 公開的 App Privacy 建議。它的 [iOS SDK manifest](https://github.com/PostHog/posthog-ios/blob/main/PostHog/Resources/PrivacyInfo.xcprivacy) 申報了 App 互動和其他使用資料，不連結、不追蹤，用於分析。React Native 的部分，[它的文件](https://posthog.com/docs/libraries/react-native)指出預設會擷取 App 生命週期，使用 React Navigation 6 或更舊版本時也會擷取瀏覽過的畫面；`identify` 會把過去的事件連結到使用者；而且除非使用 `disableGeoip`，否則會加上由 IP 推算的位置。我的看法是，如果你保留這個位置資訊，就申報大略位置。

### Supabase Auth

據我所知，Supabase 沒有公開 App Privacy 建議。依照 Apple 的定義，用電子郵件登入就要申報電子郵件地址和使用者 ID，用途為 App 功能，有連結。[它的稽核日誌](https://supabase.com/docs/guides/auth/audit-logs)也會記錄每次登入的 IP 位址：Apple 要求依你的使用方式申報保留下來的 IP。另外，你存在資料表裡的所有東西都算：內容、照片、歷史記錄。

### AppsFlyer 和 Meta

兩者的 manifest 都把**裝置 ID 申報為用於追蹤，用途是第三方廣告**。[AppsFlyer](https://github.com/AppsFlyerSDK/AppsFlyerFramework/blob/master/Resources/PrivacyInfo.xcprivacy) 的 manifest 另外加上 App 互動，用於分析。[Meta](https://github.com/facebook/facebook-ios-sdk/blob/main/FBSDKCoreKit/FBSDKCoreKit/PrivacyInfo.xcprivacy) 的則加上當機資料和其他資料。[Meta 的 iOS 文件](https://developers.facebook.com/docs/ios)指出，它的 manifest 只涵蓋預設的收集行為：額外的資料要由你自己申報。

2026 年 7 月，我在 TradaZen 串接 AppsFlyer 時，加入了裝置 ID，用途為第三方廣告和分析，用於追蹤。App 頁面上就出現了「用來追蹤你的資料」區塊。而第一個含 AppsFlyer 的 build 在處理階段就被拒絕了：App 的 manifest 申報了追蹤，卻沒列出網域。

### Expo Notifications

我找不到 Expo 公開的建議，而且 [expo-notifications 的 manifest](https://github.com/expo/expo/blob/main/packages/expo-notifications/ios/PrivacyInfo.xcprivacy) 沒有申報任何收集的資料。但你存在伺服器上的推播 token 會為你的 App 識別裝置。我保守的解讀是：裝置 ID，用途為 App 功能，如果你把它和帳號存在一起就是有連結，不追蹤。這不是 Apple 明文規定的。

## 我的做法：用一份清單讓一切保持一致

我會先重讀已發布的隱私權政策，再動問卷。TradaZen 的政策列出了登入用的電子郵件、訂閱、通知 token、使用統計、錯誤報告，以及需經同意的廣告歸因。

政策裡的每一行都對應到 App Privacy 裡的一種類型。**每當我加入會傳送資料的 SDK 或功能，我都會在同一天修改隱私權政策、App Privacy 和 manifest。**

要檢查的話，用上面提到的 ITMS-91053 指南裡的指令列出打包進去的 manifest。如果你有 Mac 和 Xcode，[隱私權報告](https://developer.apple.com/documentation/bundleresources/describing-data-use-in-privacy-manifests)會把它們彙整起來：在 Organizer 裡依序選 Product、Archive、Generate Privacy Report。Apple 把它定位成填寫 App Store Connect 的輔助工具。

## 不用新 build 就能更新 App Privacy

Apple 寫得很清楚：你隨時可以修改答案，不需要更新 App。**不過根據 App Store Connect 說明文件，隱私權政策的網址只能隨下一個版本一起修改。**

當你加入 SDK、把帳號 ID 傳給既有的工具，或某個功能開始傳送新類型的資料時，就要更新 App Privacy。只和這些申報有關的退件可以直接在線上修正，就像[guideline 5.1.1](https://devoria.fr/zh-hant/blog/guideline-5-1-1-app-store-rejection-fix) 的情況。

## 在 Apple 之前先檢查你的資料

[Review Kit](https://devoria.fr/zh-hant/kits/app-review) 收錄了我的送審前檢查清單、我修正過的退件案例，以及兩個 Claude Code skill：它們會檢查你的專案和 App 頁面，並在 Apple 退件時幫你準備回覆。

想知道還有什麼會卡住嗎？[免費診斷](https://devoria.fr/zh-hant/diagnostic)會寄給你我的防退件檢查清單。完整的上架流程，請看[在 App Store 發布 App](https://devoria.fr/zh-hant/expertise/publish-app-on-app-store)。

## 常見問題

### App Store Connect 裡的 App Privacy 是什麼？

它是產生 App Store 頁面隱私權標籤的問卷：內容包括你的 App 和 SDK 收集的資料、用途、是否連結到使用者，以及是否用於追蹤。送審 App 和更新都必須填寫。

### 修改 App Privacy 需要新的 build 嗎？

不用。Apple 表示你隨時可以修改答案，不需要更新 App：改完之後點 Publish 就好。只有隱私權政策的網址要等到下一個版本。

### RevenueCat 在 App Privacy 裡要申報什麼？

根據 RevenueCat 的文件，要申報購買記錄，用途為分析和 App 功能。如果你傳的是自己的 ID，要加上使用者 ID；如果你把電子郵件當屬性傳送，要加上聯絡資訊。

### Sentry 和 PostHog 算是 Apple 定義的追蹤嗎？

在預設設定下不算。Sentry 表示它不會用你的資料追蹤使用者，PostHog 的 iOS manifest 也沒有申報任何追蹤。不過只要你把帳號 ID 傳給它們，它們的資料就會變成有連結。

### 為什麼我沒辦法把版本加入送審？

通常是因為 App Privacy 還沒發布。這時 App Store Connect 會顯示「You must have published answers to your app's data usages」。先發布你的答案，再加入版本。


## 你的專案

[Review Kit](https://devoria.fr/zh-hant/kits/app-review)：我的 App Store 審查檢查清單、我被 Apple 退件後的修正、Google Play 檢查清單，以及三個 Claude Code skill。$1,749。

[iOS & Android Kit](https://devoria.fr/zh-hant/kits/ios)：用 Claude Code 打造你的 iPhone 和 Android App：我自己 App 的起始程式碼、上架商店的完整流程，以及所有套件。$3,599。

[診斷：你離自己的 iPhone App 還差什麼](https://devoria.fr/zh-hant/diagnostic)：7 個問題，60 秒：找出真正卡住你發布 iPhone App 的原因，拿到你的 4 步驟路線，以及最適合你的套件。
