# App Privacy App Store Connect: khai báo gì cho SDK

> App Privacy khai báo dữ liệu mà app và SDK thu thập, mục đích, mức liên kết với người dùng và theo dõi. Phải publish trước khi gửi phiên bản.

Trang gốc: [App Privacy App Store Connect: khai báo gì cho SDK](https://devoria.fr/vi/blog/app-privacy-app-store-connect-khai-bao-sdk)
Tác giả: [Mehdi Azizi](https://devoria.fr/vi/mehdi-azizi)
Ngày đăng: 2026-11-04
Lần sửa nội dung gần nhất: 2026-11-04


App Privacy là phần trong App Store Connect tạo ra nhãn quyền riêng tư trên trang app của bạn. Ở đó, bạn khai báo từng loại dữ liệu mà app **và các SDK bạn đã tích hợp** thu thập: dùng để làm gì, có liên kết với người dùng không, có dùng để theo dõi không. **Chừng nào câu trả lời chưa được publish, App Store Connect sẽ từ chối thêm phiên bản của bạn vào một lần gửi duyệt.**

Câu trả lời có thể sửa bất cứ lúc nào, không cần build mới. Khó nhất là biết phải khai báo gì cho RevenueCat, Sentry, PostHog, Supabase, AppsFlyer, Meta hay thông báo đẩy của Expo. Bảng bên dưới dựa trên tài liệu của từng SDK và các manifest đi kèm chúng, mình đọc lại vào ngày 15/10/2026.

Mình tự phát hành các app iOS của mình bằng Expo và những SDK này. Bài này nói Apple yêu cầu gì và mình đã áp dụng ra sao. Nó không thay thế cho tư vấn pháp lý.

## App Privacy, chính sách và manifest: ba thứ khác nhau

- **Chính sách quyền riêng tư** là một trang web mà bạn cung cấp địa chỉ. Cách làm có trong [chính sách quyền riêng tư cho app iOS](https://devoria.fr/vi/blog/chinh-sach-quyen-rieng-tu-ung-dung-ios).
- **Privacy manifest** là file `PrivacyInfo.xcprivacy` nằm trong build. Chi tiết có trong [hướng dẫn ITMS-91053](https://devoria.fr/vi/blog/sua-loi-itms-91053-missing-api-declaration-expo).
- **App Privacy** là bảng câu hỏi của App Store Connect. Nó hiển thị trên trang app thành ba khối: dữ liệu dùng để theo dõi bạn, dữ liệu liên kết với bạn, dữ liệu không liên kết với bạn.

**Cả ba phải kể cùng một câu chuyện.** Trang [App Privacy Details](https://developer.apple.com/app-store/app-privacy-details/) của Apple nói rõ thông tin này là bắt buộc để gửi app và các bản cập nhật, và nó bao gồm cả đối tác bên thứ ba: công cụ phân tích, mạng quảng cáo, SDK và nhà cung cấp mà bạn đã thêm code vào app.

## Điền App Privacy từng bước

[Trang trợ giúp App Store Connect](https://developer.apple.com/help/app-store-connect/manage-app-information/manage-app-privacy) mô tả chi tiết các bước dưới đây.

Để điền bảng câu hỏi, vai trò của bạn phải là Account Holder, Admin hoặc App Manager.

1. Trong Apps, mở app của bạn, rồi chọn **App Privacy** ở thanh bên.
2. Bấm **Get Started**.
3. Trả lời câu hỏi đầu tiên: bạn hoặc đối tác của bạn có thu thập dữ liệu không? Nếu không, chọn "No, we do not collect data from this app" rồi lưu. Xong.
4. Nếu có, đánh dấu mọi loại dữ liệu được thu thập, bởi code của bạn hoặc bởi SDK.
5. Với từng loại, trả lời ba câu hỏi: mục đích sử dụng, liên kết với người dùng, theo dõi.
6. Xem lại bản xem trước trang app (Product Page Preview), bấm **Publish** và xác nhận.

Nếu app đã lên store, Apple yêu cầu câu trả lời mô tả dữ liệu của phiên bản đang phát hành.

**Publish trước khi gửi duyệt.** Tháng 9/2026, với Piaf, việc thêm phiên bản vào lần gửi duyệt đã thất bại với thông báo: "You must have published answers to your app's data usages." Mình không tìm được cách điền form này qua API công khai của App Store Connect. Nên mình làm trên giao diện web, trước mọi thứ khác.

## Ba câu hỏi cho mỗi loại dữ liệu

### Thu thập nghĩa là gì

Với Apple, thu thập là **gửi dữ liệu ra khỏi thiết bị và có thể truy cập nó lâu hơn thời gian cần để xử lý request**. Vì vậy:

- dữ liệu chỉ xử lý trên iPhone thì không tính là thu thập;
- token hay địa chỉ IP gửi đi rồi bỏ ngay cũng không tính;
- dữ liệu thu thập chỉ để app hoạt động vẫn phải khai báo, với mục đích đó.

### Mục đích sử dụng

Apple đưa ra sáu mục đích: quảng cáo bên thứ ba, quảng cáo hoặc marketing của nhà phát triển, phân tích, cá nhân hóa sản phẩm, chức năng của app và mục đích khác. Một loại dữ liệu có thể chọn nhiều mục đích: email dùng để đăng nhập và cá nhân hóa app thì chọn chức năng và cá nhân hóa.

### Liên kết với người dùng

Dữ liệu là liên kết khi nó gắn với danh tính người dùng, qua tài khoản, thiết bị hoặc cách khác. Apple nói rằng dữ liệu thường là liên kết, trừ khi bạn ẩn danh hóa nó trước khi thu thập và không bao giờ tìm cách liên kết lại sau đó. **Ngay khi bạn truyền ID tài khoản cho một SDK (identify, setUser, logIn), dữ liệu của SDK đó trở thành liên kết.**

### Theo dõi

Theo dõi là liên kết dữ liệu từ app của bạn với dữ liệu từ app hoặc website của công ty khác, để quảng cáo nhắm mục tiêu hoặc đo lường quảng cáo. Chia sẻ dữ liệu với data broker cũng tính. **Một SDK đối chiếu dữ liệu của bạn với dữ liệu của app khác cho mục đích quảng cáo thì vẫn tính là theo dõi, kể cả khi bạn không dùng nó cho việc đó.**

Trả lời "có" ở phần theo dõi kéo theo hai hệ quả: phải hiện yêu cầu App Tracking Transparency trước mọi hoạt động theo dõi, như giải thích trong [guideline 5.1.2](https://devoria.fr/vi/blog/guideline-5-1-2-ai-ben-thu-ba-att-chia-se-du-lieu), và manifest phải khai báo theo dõi kèm các domain: thiếu các domain này, bạn sẽ nhận [lỗi ITMS-91064](https://devoria.fr/vi/blog/itms-91064-invalid-tracking-information).

## Khai báo gì cho các SDK của app Expo

Bảng này dựa trên cấu hình mặc định của từng SDK. **Ngay khi bạn gửi thêm cho chúng, như email, ID tài khoản hay sự kiện tự định nghĩa, bạn phải khai báo thêm.**

| SDK                | Dữ liệu cần khai báo           | Theo dõi      | Nguồn                     |
| ------------------ | ------------------------------ | ------------- | ------------------------- |
| RevenueCat         | Purchase History               | Không         | Tài liệu RevenueCat       |
| Sentry             | Crash Data, Performance Data   | Không         | Tài liệu và manifest      |
| PostHog            | Product Interaction            | Không         | Manifest PostHog iOS      |
| Supabase Auth      | Email Address, User ID         | Không         | Không tìm thấy tài liệu   |
| AppsFlyer          | Device ID, Product Interaction | Có, Device ID | Manifest AppsFlyer        |
| Meta SDK           | Device ID, Crash Data          | Có, Device ID | Tài liệu và manifest Meta |
| Expo Notifications | Device ID (push token)         | Không         | Không tìm thấy tài liệu   |

### RevenueCat

[Tài liệu App Privacy của RevenueCat](https://www.revenuecat.com/docs/platform-resources/apple-platform-resources/apple-app-privacy) yêu cầu khai báo lịch sử mua hàng, với hai mục đích mà mọi người dùng RevenueCat phải chọn: phân tích và chức năng của app. Liên kết: không nếu ID của bạn ẩn danh, có nếu ID người dùng RevenueCat có thể liên kết với email. Thêm User ID nếu bạn truyền ID riêng, và thông tin liên hệ nếu bạn gửi email làm attribute. Manifest của SDK chỉ ghi chức năng: hãy theo tài liệu, vì nó đầy đủ hơn. Cách tích hợp có trong [RevenueCat cho gói đăng ký in-app](https://devoria.fr/vi/blog/revenuecat-goi-dang-ky-in-app-ios).

### Sentry

[Trang về quyền riêng tư trên mobile của Sentry](https://docs.sentry.io/security-legal-pii/security/mobile-privacy/) nói rõ: Sentry là đối tác cần khai báo, mục đích tiêu chuẩn là phân tích và chức năng của app, nó không theo dõi và không cần mã định danh quảng cáo. [Manifest của nó](https://github.com/getsentry/sentry-cocoa/blob/main/Sources/Resources/PrivacyInfo.xcprivacy) khai báo dữ liệu crash, hiệu năng và chẩn đoán khác, không liên kết. Nếu bạn gắn ID tài khoản vào báo cáo bằng `Sentry.setUser`, chúng trở thành liên kết.

### PostHog

Mình không tìm thấy khuyến nghị App Privacy nào do PostHog công bố. [Manifest của SDK iOS](https://github.com/PostHog/posthog-ios/blob/main/PostHog/Resources/PrivacyInfo.xcprivacy) khai báo tương tác với app và dữ liệu sử dụng khác, không liên kết, không theo dõi, cho mục đích phân tích. Với React Native, [tài liệu của PostHog](https://posthog.com/docs/libraries/react-native) cho biết vòng đời app được ghi nhận mặc định, màn hình đã xem cũng vậy với React Navigation 6 hoặc cũ hơn, `identify` liên kết các sự kiện trước đó với người dùng, và vị trí suy ra từ IP được thêm vào trừ khi dùng `disableGeoip`. Theo mình, nếu bạn giữ vị trí này, hãy khai báo vị trí tương đối (Coarse Location).

### Supabase Auth

Theo mình biết, Supabase không công bố khuyến nghị App Privacy. Dựa trên định nghĩa của Apple, đăng nhập bằng email thì phải khai báo địa chỉ email và User ID, cho chức năng của app, có liên kết. [Audit log](https://supabase.com/docs/guides/auth/audit-logs) của nó cũng ghi lại địa chỉ IP mỗi lần đăng nhập: Apple yêu cầu khai báo IP được lưu giữ theo mục đích bạn dùng nó. Và mọi thứ bạn lưu trong bảng đều tính: nội dung, ảnh, lịch sử.

### AppsFlyer và Meta

Cả hai manifest đều khai báo **Device ID được dùng để theo dõi, cho quảng cáo bên thứ ba**. Manifest của [AppsFlyer](https://github.com/AppsFlyerSDK/AppsFlyerFramework/blob/master/Resources/PrivacyInfo.xcprivacy) thêm tương tác với app, cho phân tích. Manifest của [Meta](https://github.com/facebook/facebook-ios-sdk/blob/main/FBSDKCoreKit/FBSDKCoreKit/PrivacyInfo.xcprivacy) thêm dữ liệu crash và dữ liệu khác. [Tài liệu iOS của Meta](https://developers.facebook.com/docs/ios) nói rõ manifest chỉ bao gồm việc thu thập mặc định: dữ liệu thêm vẫn do bạn tự khai báo.

Tháng 7/2026, khi tích hợp AppsFlyer vào TradaZen, mình đã thêm Device ID, cho quảng cáo bên thứ ba và phân tích, dùng để theo dõi. Khối "Data Used to Track You" xuất hiện trên trang app. Còn build đầu tiên có AppsFlyer thì bị từ chối lúc xử lý: manifest của app khai báo theo dõi mà thiếu domain.

### Expo Notifications

Mình không tìm thấy khuyến nghị nào do Expo công bố, và [manifest của expo-notifications](https://github.com/expo/expo/blob/main/packages/expo-notifications/ios/PrivacyInfo.xcprivacy) không khai báo dữ liệu thu thập nào. Nhưng push token bạn lưu trên server sẽ định danh thiết bị cho app của bạn. Cách hiểu thận trọng của mình: Device ID, cho chức năng của app, có liên kết nếu bạn lưu cùng tài khoản, không theo dõi. Đây không phải quy định do Apple viết ra.

## Cách của mình: một danh sách duy nhất để đồng bộ mọi thứ

Mình đọc lại chính sách đã đăng trước khi động vào bảng câu hỏi. Chính sách của TradaZen nêu email đăng nhập, gói đăng ký, token thông báo, thống kê sử dụng, báo cáo lỗi và attribution quảng cáo cần có sự đồng ý.

Mỗi dòng trong chính sách trở thành một loại dữ liệu trong App Privacy. **Khi thêm một SDK hay một tính năng gửi dữ liệu đi, mình sửa chính sách, App Privacy và manifest trong cùng một ngày.**

Để kiểm tra, hãy liệt kê các manifest có trong build bằng lệnh trong hướng dẫn ITMS-91053 ở trên. Nếu có Mac và Xcode, [privacy report](https://developer.apple.com/documentation/bundleresources/describing-data-use-in-privacy-manifests) sẽ gom chúng lại: Product, rồi Archive, rồi Generate Privacy Report trong Organizer. Apple giới thiệu nó như công cụ hỗ trợ điền App Store Connect.

## Cập nhật App Privacy không cần build

Apple viết rõ: bạn có thể đổi câu trả lời bất cứ lúc nào, không cần cập nhật app. **Còn địa chỉ chính sách quyền riêng tư thì chỉ thay đổi được cùng phiên bản tiếp theo**, theo trợ giúp của App Store Connect.

Cập nhật App Privacy khi bạn thêm SDK, khi truyền ID tài khoản cho một công cụ sẵn có, hoặc khi một tính năng gửi đi loại dữ liệu mới. Lần từ chối chỉ liên quan đến các khai báo này có thể sửa trực tuyến, giống như với [guideline 5.1.1](https://devoria.fr/vi/blog/guideline-5-1-1-app-store-tu-choi).

## Kiểm tra hồ sơ trước khi gửi Apple

[Review Kit](https://devoria.fr/vi/kits/app-review) gồm checklist trước khi gửi của mình, các lần bị từ chối mình đã sửa và hai skill Claude Code đọc lại dự án và trang app của bạn, rồi soạn sẵn câu trả lời nếu Apple từ chối.

Bạn muốn biết còn gì đang chặn? [Bản chẩn đoán miễn phí](https://devoria.fr/vi/diagnostic) sẽ gửi bạn checklist chống bị từ chối của mình. Để xem toàn bộ quy trình phát hành, hãy đọc [phát hành ứng dụng lên App Store](https://devoria.fr/vi/expertise/dang-ung-dung-len-app-store).

## Câu hỏi thường gặp

### App Privacy trong App Store Connect là gì?

Đó là bảng câu hỏi tạo ra nhãn quyền riêng tư trên trang App Store của bạn: dữ liệu mà app và SDK thu thập, mục đích, liên kết với người dùng và theo dõi. Nó bắt buộc để gửi app và các bản cập nhật.

### Có cần build mới để sửa App Privacy không?

Không. Apple cho biết bạn có thể đổi câu trả lời bất cứ lúc nào, không cần cập nhật app: bạn sửa rồi bấm Publish. Chỉ địa chỉ chính sách quyền riêng tư là phải chờ phiên bản tiếp theo.

### Khai báo gì cho RevenueCat trong App Privacy?

Lịch sử mua hàng, với mục đích phân tích và chức năng của app, theo tài liệu của RevenueCat. Thêm User ID nếu bạn truyền ID riêng, và thông tin liên hệ nếu bạn gửi email làm attribute.

### Sentry và PostHog có theo dõi theo định nghĩa của Apple không?

Không, với cấu hình mặc định. Sentry nói không dùng dữ liệu của bạn để theo dõi người dùng, và manifest iOS của PostHog không khai báo theo dõi. Tuy nhiên dữ liệu của chúng trở thành liên kết ngay khi bạn truyền ID tài khoản cho chúng.

### Vì sao mình không thêm được phiên bản vào lần gửi duyệt?

Thường là vì App Privacy chưa được publish. Khi đó App Store Connect hiện "You must have published answers to your app's data usages". Hãy publish câu trả lời, rồi thêm phiên bản.


## Dự án của bạn

[Review Kit](https://devoria.fr/vi/kits/app-review): Checklist duyệt App Store của mình, các lần Apple từ chối đã sửa, checklist Google Play và ba skill Claude Code. 1.399.000 ₫.

[iOS & Android Kit](https://devoria.fr/vi/kits/ios): Tạo app iPhone và Android với Claude Code: code khởi đầu từ các app của mình, lộ trình đến tận store và tất cả các kit. 2.799.000 ₫.

[Chẩn đoán: điều gì ngăn bạn có app iPhone](https://devoria.fr/vi/diagnostic): 7 câu hỏi, 60 giây: bạn biết điều gì thật sự cản bạn đăng app iPhone, lộ trình 4 bước và kit phù hợp với bạn.
