# ITMS-91064: як виправити «Invalid tracking information»

> ITMS-91064 Invalid tracking information: що означає помилка, чому Apple відхиляє маніфест конфіденційності і як це виправити в застосунку на Expo.

Оригінальна сторінка: [ITMS-91064: як виправити «Invalid tracking information»](https://devoria.fr/uk/blog/itms-91064-invalid-tracking-information)
Автор: [Mehdi Azizi](https://devoria.fr/uk/mehdi-azizi)
Опубліковано: 2026-10-16
Останнє оновлення змісту: 2026-10-16


ITMS-91064 означає автоматичну відмову від Apple. Вона приходить на e-mail після того, як ти завантажив білд. Суть у тому, що два ключі відстеження у твоєму маніфесті конфіденційності суперечать один одному. **Що робити: узгодити `NSPrivacyTracking` і `NSPrivacyTrackingDomains`**, а потім зібрати новий білд.

Я отримав цю помилку на TradaZen, моєму застосунку для тренування трейдингу, коли додав інструмент вимірювання реклами. Ось причина і виправлення.

## Що означає помилка ITMS-91064?

Повідомлення називається «ITMS-91064: Invalid tracking information». Воно стосується файлу `PrivacyInfo.xcprivacy`, тобто маніфесту конфіденційності, який може містити кожен застосунок і кожен SDK. Серед іншого, у цьому файлі є два ключі, пов'язані з відстеженням у розумінні App Tracking Transparency:

- `NSPrivacyTracking`: true, якщо застосунок або SDK використовує дані для відстеження.
- `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 вказано назву і шлях до проблемного файлу.** Прочитай цей шлях: з нього видно, чи проблема в маніфесті твого застосунку, чи в маніфесті вбудованого SDK.

Як і з іншими помилками ITMS, це не відмова від рев'юера. Перевірка автоматична, відбувається під час завантаження білда, і білд відкидається.

## Чому так стається: окремий маніфест для кожної цілі

Ось у чому пастка. SDK часто має власний маніфест зі своїми доменами. Може здатися, що цього досить. Але в твого застосунку теж є свій маніфест, і **в моєму випадку Apple відхилила саме маніфест застосунку**.

Мій випадок, 21 липня 2026 року. Коли я підключав до TradaZen інструмент вимірювання реклами, я вказав `NSPrivacyTracking: true` у конфігурації застосунку, і це правильно. Але я не додав `NSPrivacyTrackingDomains`. Маніфест SDK був повний. А маніфест застосунку, який Expo згенерував із моєї конфігурації, казав «true» з порожнім списком. Білд відхилили під час обробки.

**Висновок**: маніфест SDK не покриває маніфест твого застосунку. Якщо ти оголошуєш відстеження в конфігурації, оголошуй і домени.

## Як виправити ITMS-91064 у застосунку на Expo

В Expo маніфест застосунку налаштовується в конфігурації, у `ios.privacyManifests`. Принцип описаний у [документації Expo про конфіденційність](https://docs.expo.dev/guides/apple-privacy/), а ключ є в [довіднику конфігурації](https://docs.expo.dev/versions/latest/config/app/).

1. **Знайди домени відстеження SDK.** Скопіюй список із маніфесту тієї версії, яка входить у твій білд, а не останньої версії онлайн: вони можуть відрізнятися. Не вигадуй їх.
2. **Додай їх у свою конфігурацію.** Два домени нижче є прикладами, заміни їх:

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

3. **Перевір згенерований файл, перш ніж платити за білд**, якщо твою папку `ios` генерує Expo і git її ігнорує. Запусти `npx expo prebuild -p ios`, потім відкрий файл `PrivacyInfo.xcprivacy`, створений у папці `ios`. Там має бути `NSPrivacyTracking` зі значенням `true` і повний список доменів.
4. **Збери новий білд і відправ його знову.** Маніфест є частиною бінарного файлу: віддалене оновлення його не змінює.

Обережно з кроком 3: ця команда може видалити і заново створити папку `ios`. Якщо ти вносив туди зміни вручну, не запускай її на своєму проєкті. Працюй на копії.

Якщо твій застосунок нічого не відстежує, шлях коротший: постав `NSPrivacyTracking` на `false` і прибери список.

## Що ці домени змінюють для твоїх користувачів

Оголошення цих доменів не формальність. За документацією Apple, якщо користувач не погодився на відстеження у вікні App Tracking Transparency, запити до цих доменів не проходять. Так і має бути: відстеження відбувається, тільки якщо людина сказала «так».

Твоя сторінка в App Store має розповідати те саме. Якщо маніфест оголошує відстеження, то декларації конфіденційності на сторінці й твоя політика конфіденційності теж мають про це говорити. Інакше потім ризикуєш отримати відмову від рев'юера за guidelines 5.1.1 або 5.1.2: деталі в статті [політика конфіденційності застосунку](https://devoria.fr/uk/blog/privacy-policy-ios-app-guide).

## Як відправити білд без неприємних сюрпризів

Помилки ITMS виправляються швидко, коли вмієш їх читати. Відмови, що приходять пізніше, вимагають більше уваги: порядок дій описаний на сторінці [застосунок відхилено Apple](https://devoria.fr/uk/expertise/app-rejected-by-apple), а найчастіші причини зібрані в статті [чому Apple відхиляє застосунок](https://devoria.fr/uk/blog/vidmova-apple-app-store-prychyny).

Щоб перевірити все перед відправкою, [Apple Review Kit](https://devoria.fr/uk/kits/review-apple) містить мій чекліст і skills для Claude Code, які переглядають твій проєкт. Якщо відправка застрягла і ти хочеш, щоб подивилася жива людина, [забронюй годину зі мною](https://devoria.fr/uk/coaching): ми розберемо твій проєкт по відеозв'язку, на твоєму екрані. А якщо готуєш свій перший реліз, [пройди безкоштовну діагностику](https://devoria.fr/uk/diagnostic): вона розставить кроки в правильному порядку і надішле тобі мій чекліст проти відмов Apple.

## Поширені запитання

### ITMS-91064 це відмова App Review?

Не в сенсі живого рев'юера. Це автоматична перевірка білда під час завантаження, ще до рев'ю. Білд відкидається: треба виправити маніфест конфіденційності й надіслати новий білд.

### Що вказувати в NSPrivacyTrackingDomains?

Домени, до яких твій застосунок або твої SDK звертаються для відстеження. Скопіюй ті, що SDK вказує в маніфесті версії, яка входить у твій білд. Порожній список із `NSPrivacyTracking` зі значенням `true` належить до комбінацій, які Apple відхиляє.

### Хіба маніфесту мого SDK не досить?

Ні. На TradaZen маніфест SDK був повний, а білд усе одно відхилили: маніфест застосунку оголошував відстеження без жодного домену. Якщо конфігурація твого застосунку оголошує відстеження, вона має і перелічити домени.

### Мій застосунок нічого не відстежує: що робити?

Постав `NSPrivacyTracking` на `false` у конфігурації і прибери список доменів. Потім перевір, що твоя сторінка в App Store і політика конфіденційності кажуть те саме.

### Чи можна виправити ITMS-91064 без нового білда?

Ні. Маніфест конфіденційності є частиною бінарного файлу, який ти надсилаєш Apple. Треба виправити конфігурацію, зібрати новий білд і відправити його знову.


## Твій проєкт

[Apple Review Kit](https://devoria.fr/uk/kits/review-apple): Чекліст для review App Store, яким я користуюся, мої виправлені відмови Apple, нотатки для тестувальника і два skills Claude Code, що перевіряють твій застосунок. 29 €.

[iOS Kit](https://devoria.fr/uk/kits/ios): Створи застосунок для iPhone з Claude Code: стартовий код моїх застосунків, skills, що перевіряють його роботу, а також Apple Review Kit, App Store Screenshots Kit і ASO Kit. 129,99 €.
