ITMS-91064: sửa lỗi “Invalid tracking information”
Bởi Mehdi Azizi
Đăng ngày , 5 phút
ITMS-91064 nghĩa là NSPrivacyTracking và NSPrivacyTrackingDomains mâu thuẫn nhau. Cách sửa trong app Expo: khai báo đúng tên miền rồi build lại.
ITMS-91064 là lỗi từ chối tự động của Apple, được gửi qua e-mail sau khi bạn tải build lên. Nó có nghĩa là hai khóa theo dõi trong tệp kê khai quyền riêng tư (privacy manifest) của bạn mâu thuẫn với nhau. Cách sửa: làm cho NSPrivacyTracking và NSPrivacyTrackingDomains khớp nhau, rồi build lại.
Mình đã dính lỗi này trên TradaZen, app luyện tập giao dịch của mình, sau khi thêm một công cụ đo lường quảng cáo. Dưới đây là nguyên nhân và cách sửa.
Lỗi ITMS-91064 nghĩa là gì?
Thông báo có tiêu đề "ITMS-91064: Invalid tracking information". Nó nhắm vào một tệp PrivacyInfo.xcprivacy, tức tệp kê khai quyền riêng tư mà mỗi app và mỗi SDK đều có thể mang theo. Tệp này chứa, trong số những thứ khác, hai khóa liên quan đến việc theo dõi, theo nghĩa của App Tracking Transparency:
NSPrivacyTracking: true nếu app hoặc SDK dùng dữ liệu để theo dõi.NSPrivacyTrackingDomains: danh sách các tên miền được gọi đến cho việc theo dõi này.
Apple mô tả ba tổ hợp bị từ chối trong ghi chú kỹ thuật về tệp kê khai không hợp lệ:
NSPrivacyTrackinglà true nhưng danh sách tên miền trống. Bạn phải điền danh sách. Đây là trường hợp của mình.NSPrivacyTrackinglà true nhưng có một tên miền viết sai. Tên miền phải viết không có đường dẫn và không có dấu gạch chéo ở cuối.- Có tên miền được liệt kê trong khi
NSPrivacyTrackinglà false. Bạn phải xóa danh sách.
Quy tắc gốc nằm trong tài liệu về tệp kê khai quyền riêng tư: khi NSPrivacyTracking là true, bạn phải cung cấp danh sách tên miền.
E-mail của Apple có ghi tên và đường dẫn của tệp bị lỗi. Hãy đọc đường dẫn này: nó cho biết vấn đề nằm ở tệp kê khai của app hay của một SDK đi kèm.
Giống các lỗi ITMS khác, đây không phải là reviewer từ chối. Việc kiểm tra diễn ra tự động khi build được tải lên, và build bị loại.
Vì sao lại xảy ra: mỗi target một tệp kê khai
Cái bẫy là ở đây. Một SDK thường mang theo tệp kê khai riêng, kèm các tên miền của nó. Bạn có thể nghĩ thế là đủ. Nhưng app của bạn cũng có tệp riêng, và trong trường hợp của mình, Apple từ chối chính tệp của app.
Trường hợp của mình, ngày 21 tháng 7 năm 2026. Khi gắn một công cụ đo lường quảng cáo vào TradaZen, mình đã khai báo NSPrivacyTracking: true trong cấu hình app, điều này đúng. Nhưng mình chưa thêm NSPrivacyTrackingDomains. Tệp kê khai của SDK thì đầy đủ. Còn tệp của app, do Expo tạo ra từ cấu hình của mình, ghi "true" với một danh sách trống. Build bị từ chối ở bước xử lý.
Bài học: tệp kê khai của SDK không thay thế cho tệp của app. Nếu bạn khai báo theo dõi trong cấu hình, bạn cũng phải khai báo các tên miền.
Sửa ITMS-91064 trong một app Expo
Với Expo, tệp kê khai của app được thiết lập trong cấu hình, dưới ios.privacyManifests. Nguyên tắc có trong tài liệu của Expo về quyền riêng tư, còn khóa thì có trong tài liệu tham chiếu cấu hình.
- Tìm các tên miền theo dõi của SDK. Chép lại danh sách từ tệp kê khai của đúng phiên bản mà build của bạn đang dùng, không phải của phiên bản mới nhất trên mạng: hai danh sách có thể khác nhau. Đừng tự bịa ra.
- Thêm chúng vào cấu hình. Hai tên miền dưới đây chỉ là ví dụ, cần thay thế:
{
"expo": {
"ios": {
"privacyManifests": {
"NSPrivacyTracking": true,
"NSPrivacyTrackingDomains": [
"example-tracking-domain.com",
"another-tracking-domain.com"
]
}
}
}
}
- Kiểm tra tệp được tạo ra trước khi trả tiền cho một bản build, nếu thư mục
ioscủa bạn do Expo tạo ra và bị git bỏ qua. Chạynpx expo prebuild -p ios, rồi mở tệpPrivacyInfo.xcprivacyđược tạo trong thư mụcios. Nó phải cóNSPrivacyTrackinglàtruevà danh sách tên miền đầy đủ. - Build lại và gửi lại. Tệp kê khai là một phần của binary: cập nhật từ xa (OTA) không thay đổi được nó.
Cẩn thận với bước 3: lệnh này có thể xóa rồi tạo lại thư mục ios. Nếu bạn đã sửa tay trong đó, đừng chạy nó trên dự án của mình. Hãy làm trên một bản sao.
Nếu app của bạn không theo dõi gì cả, cách làm ngắn hơn: đặt NSPrivacyTracking thành false và xóa danh sách.
Những tên miền này thay đổi gì với người dùng của bạn
Khai báo các tên miền này không chỉ là thủ tục. Theo tài liệu của Apple, nếu người dùng không đồng ý cho theo dõi trong hộp thoại App Tracking Transparency, các yêu cầu đến những tên miền này sẽ thất bại. Đó là hành vi mong đợi: việc theo dõi chỉ diễn ra khi người dùng đã đồng ý.
Trang App Store của bạn phải nói cùng một điều. Nếu tệp kê khai khai báo theo dõi, thì phần khai báo quyền riêng tư trên trang App Store và chính sách quyền riêng tư của bạn cũng phải nói vậy. Nếu không, sau đó bạn có nguy cơ bị reviewer từ chối theo guideline 5.1.1 hoặc 5.1.2: chi tiết có trong bài chính sách quyền riêng tư cho ứng dụng.
Gửi build mà không gặp bất ngờ
Các lỗi ITMS sửa nhanh khi bạn biết cách đọc chúng. Những lần từ chối đến sau đó đòi hỏi nhìn rộng hơn: cách xử lý có trong trang ứng dụng bị Apple từ chối, còn các lý do phổ biến nhất có trong bài vì sao Apple từ chối app.
Để kiểm tra hồ sơ trước khi gửi, Apple Review Kit gồm checklist của mình và các skill Claude Code giúp rà soát dự án của bạn. Nếu việc gửi app bị kẹt và bạn muốn có người xem trực tiếp, đặt một giờ với mình: mình sẽ cùng bạn xem lại dự án qua gọi video, ngay trên màn hình của bạn. Và nếu bạn đang chuẩn bị ra mắt app đầu tiên, làm bài chẩn đoán miễn phí: nó sắp xếp lại các bước theo đúng thứ tự và gửi cho bạn checklist chống bị Apple từ chối của mình.
Câu hỏi thường gặp
ITMS-91064 có phải là App Review từ chối không?
Không phải theo nghĩa một reviewer là người. Đây là bước kiểm tra tự động trên build khi nó được tải lên, trước khi vào duyệt. Build bị loại: bạn phải sửa tệp kê khai quyền riêng tư và gửi một build mới.
Cần ghi gì vào NSPrivacyTrackingDomains?
Các tên miền mà app hoặc SDK của bạn gọi đến để theo dõi. Hãy chép những tên miền mà SDK liệt kê trong tệp kê khai của đúng phiên bản build của bạn đang dùng. Một danh sách trống với NSPrivacyTracking là true là một trong những tổ hợp Apple từ chối.
Tệp kê khai của SDK chưa đủ sao?
Chưa đủ. Trên TradaZen, tệp kê khai của SDK đầy đủ mà build vẫn bị từ chối: tệp của app khai báo theo dõi nhưng không có tên miền nào. Nếu cấu hình app của bạn khai báo theo dõi, nó cũng phải liệt kê các tên miền.
App của mình không theo dõi gì: phải làm sao?
Đặt NSPrivacyTracking thành false trong cấu hình và xóa danh sách tên miền. Sau đó kiểm tra rằng trang App Store và chính sách quyền riêng tư của bạn nói đúng cùng một điều.
Có sửa được ITMS-91064 mà không cần build lại không?
Không. Tệp kê khai quyền riêng tư là một phần của binary gửi cho Apple. Bạn phải sửa cấu hình, build lại và gửi lại.