# ITMS-91064 修正：隱私清單追蹤設定錯誤

> ITMS-91064 代表隱私清單的兩個追蹤鍵互相矛盾。在 Expo 設定讓它們一致，再重新建置即可。

原始頁面：[ITMS-91064 修正：隱私清單追蹤設定錯誤](https://devoria.fr/zh-hant/blog/itms-91064-invalid-tracking-information-fix)
作者：[Mehdi Azizi](https://devoria.fr/zh-hant/mehdi-azizi)
發布日期：2026-10-16
內容最後修訂：2026-10-16


ITMS-91064 是 Apple 的自動拒絕，會在你上傳 build 之後以 e-mail 寄來。它的意思是：你的隱私清單（privacy manifest）裡兩個跟追蹤有關的鍵互相矛盾。**修正方法：讓 `NSPrivacyTracking` 和 `NSPrivacyTrackingDomains` 的內容一致**，然後重新建置。

我在 TradaZen（我的交易練習 app）加了一個廣告成效評估工具之後，就踩到了這個錯誤。以下是原因和修正方式。

## ITMS-91064 錯誤是什麼意思？

這封信的標題是「ITMS-91064: Invalid tracking information」。它針對的是 `PrivacyInfo.xcprivacy` 檔案，也就是每個 app 和每個 SDK 都可以內含的隱私清單。這個檔案裡有兩個跟追蹤相關的鍵（這裡的「追蹤」是 App Tracking Transparency 定義的追蹤）：

- `NSPrivacyTracking`：如果 app 或 SDK 會把資料用於追蹤，就設為 true。
- `NSPrivacyTrackingDomains`：為了追蹤而連線的網域清單。

Apple 在關於[無效隱私清單](https://developer.apple.com/documentation/technotes/tn3181-debugging-invalid-privacy-manifest)的技術說明中，列出了三種會被拒絕的組合：

- `NSPrivacyTracking` 為 true，但網域清單是空的。要把清單填上。我就是這種情況。
- `NSPrivacyTracking` 為 true，但有某個網域寫錯。網域不能包含路徑，結尾也不能有斜線。
- 列出了網域，但 `NSPrivacyTracking` 卻是 false。要把清單拿掉。

根本規則寫在[隱私清單](https://developer.apple.com/documentation/bundleresources/privacy-manifest-files)的文件裡：只要 `NSPrivacyTracking` 為 true，就必須提供網域清單。

**Apple 的 e-mail 會告訴你出問題的檔案名稱和路徑。** 仔細看這個路徑：它會告訴你問題出在你 app 的隱私清單，還是某個內含 SDK 的隱私清單。

跟其他 ITMS 錯誤一樣，這不是審查人員的拒絕。檢查是自動的，在 build 上傳時進行，build 會直接被剔除。

## 為什麼會發生：每個 target 各有一份隱私清單

陷阱就在這裡。SDK 常常自帶一份隱私清單，裡面有它的網域。你可能以為這樣就夠了。但你的 app 也有自己的一份，而**在我的案例中，Apple 拒絕的正是 app 的那一份**。

我的狀況，2026 年 7 月 21 日。在 TradaZen 接上廣告成效評估工具時，我在 app 的設定裡宣告了 `NSPrivacyTracking: true`，這是正確的。但我沒有加上 `NSPrivacyTrackingDomains`。SDK 的隱私清單是完整的。而 app 的那份，由 Expo 根據我的設定產生，寫著「true」卻配上空清單。build 在處理階段就被拒絕了。

**學到的教訓**：SDK 的隱私清單不能代替你 app 的隱私清單。只要你在設定裡宣告了追蹤，就也要宣告網域。

## 在 Expo app 中修正 ITMS-91064

在 Expo 裡，app 的隱私清單是在設定檔的 `ios.privacyManifests` 底下設定。原理寫在 [Expo 的隱私文件](https://docs.expo.dev/guides/apple-privacy/)，這個鍵則寫在[設定參考文件](https://docs.expo.dev/versions/latest/config/app/)。

1. **找出 SDK 的追蹤網域。** 照抄你 build 實際內含的那個版本的隱私清單，而不是網路上最新版本的：兩者可能不同。不要自己亂編。
2. **把它們加進你的設定。** 下面兩個網域只是範例，請換掉：

```json
{
  "expo": {
    "ios": {
      "privacyManifests": {
        "NSPrivacyTracking": true,
        "NSPrivacyTrackingDomains": [
          "example-tracking-domain.com",
          "another-tracking-domain.com"
        ]
      }
    }
  }
}
```

3. **在花錢跑 build 之前，先檢查產生出來的檔案**（前提是你的 `ios` 資料夾是由 Expo 產生、而且被 git 忽略）。執行 `npx expo prebuild -p ios`，然後打開 `ios` 資料夾裡產生的 `PrivacyInfo.xcprivacy` 檔案。裡面應該要有設為 `true` 的 `NSPrivacyTracking`，以及完整的網域清單。
4. **重新建置並再次上傳。** 隱私清單是二進位檔的一部分：遠端更新改不到它。

第 3 步要注意：這個指令可能會刪除再重建 `ios` 資料夾。如果你曾經手動修改過裡面的東西，就不要在你的專案上執行。請在副本上操作。

如果你的 app 完全沒有追蹤，做法更簡單：把 `NSPrivacyTracking` 改成 `false`，並移除網域清單。

## 這些網域對你的使用者有什麼影響

宣告這些網域不只是走個形式。根據 Apple 的文件，如果使用者沒有在 App Tracking Transparency 的視窗中同意追蹤，連到這些網域的請求就會失敗。這是預期中的行為：只有對方同意，追蹤才會送出。

你的 App Store 頁面也必須講同一件事。如果你的隱私清單宣告了追蹤，App Store 頁面上的隱私權宣告和你的隱私權政策也都要寫明。不然之後你可能會因為 guideline 5.1.1 或 5.1.2 被審查人員拒絕：細節請看 [app 的隱私權政策](https://devoria.fr/zh-hant/blog/ios-app-privacy-policy-guide)。

## 上傳 build，不再有意外

ITMS 錯誤只要看得懂，很快就能修好。之後才出現的拒絕就需要多想一點：處理方式寫在 [app 被 Apple 拒絕](https://devoria.fr/zh-hant/expertise/app-rejected-by-apple)這一頁，最常見的原因則整理在 [Apple 為什麼拒絕你的 app](https://devoria.fr/zh-hant/blog/apple-app-rejection-reasons-real-cases)。

想在送審前檢查你的專案，[Apple Review Kit](https://devoria.fr/zh-hant/kits/review-apple) 收錄了我的檢查清單，以及會幫你檢視專案的 Claude Code skills。如果你卡在上傳，想找個人幫你看看，[跟我預約一小時](https://devoria.fr/zh-hant/coaching)：我們會透過視訊，在你的螢幕上一起檢視你的專案。如果你正在準備第一次上架，[做一下免費診斷](https://devoria.fr/zh-hant/diagnostic)：它會幫你把步驟排好順序，並寄給你我的 Apple 防拒絕檢查清單。

## 常見問題

### ITMS-91064 算是 App Review 的拒絕嗎？

不算是人工審查人員的拒絕。這是 build 上傳時、進入審查之前的自動檢查。build 會被剔除：你必須修正隱私清單，再上傳一個新的 build。

### NSPrivacyTrackingDomains 裡要填什麼？

填你的 app 或 SDK 為了追蹤而連線的網域。照抄你 build 內含的那個版本的 SDK 隱私清單中列出的網域。`NSPrivacyTracking` 為 `true` 卻配上空清單，正是 Apple 會拒絕的組合之一。

### 我的 SDK 隱私清單還不夠嗎？

不夠。在 TradaZen 上，SDK 的隱私清單是完整的，build 還是被拒絕了：因為 app 的隱私清單宣告了追蹤，卻沒有任何網域。如果你 app 的設定宣告了追蹤，就也必須列出網域。

### 我的 app 沒有追蹤，該怎麼做？

在設定中把 `NSPrivacyTracking` 改成 `false`，並移除網域清單。接著確認你的 App Store 頁面和隱私權政策也寫的是同一件事。

### 可以不重新建置就修正 ITMS-91064 嗎？

不行。隱私清單是送交 Apple 的二進位檔的一部分。你必須修正設定、重新建置，然後再次上傳。


## 你的專案

[Apple Review Kit](https://devoria.fr/zh-hant/kits/review-apple)：我使用的 App Store 審核檢查清單、我被 Apple 退件後的修正、給審核人員的備註，以及兩個審閱你 App 的 Claude Code skills。29 €。

[iOS Kit](https://devoria.fr/zh-hant/kits/ios)：用 Claude Code 打造你的 iPhone App：我的 App 所用的 Starter Code、檢查成果的 skills，以及 Apple Review Kit、App Store Screenshots Kit 與 ASO Kit。129.99 €。
