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

> ITMS-91064 Invalid tracking information: что значит ошибка, почему Apple отклоняет манифест конфиденциальности и как исправить это в приложении на Expo.

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


ITMS-91064 это автоматический отказ Apple, который приходит на почту после загрузки билда. Он означает, что два ключа отслеживания в твоём манифесте конфиденциальности противоречат друг другу. **Исправление: согласовать `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/ru/blog/privacy-policy-ios-app-guide).

## Как отправить билд без неприятных сюрпризов

Ошибки ITMS исправляются быстро, если умеешь их читать. Отказы, которые бывают дальше, требуют больше внимания: порядок действий на странице [приложение отклонено Apple](https://devoria.fr/ru/expertise/app-rejected-by-apple), а самые частые причины в статье [почему Apple отклоняет приложение](https://devoria.fr/ru/blog/otkaz-apple-app-store-prichiny).

Чтобы проверить всё перед отправкой, в [Apple Review Kit](https://devoria.fr/ru/kits/review-apple) собраны мой чек-лист и skills для Claude Code, которые просматривают твой проект. Если отправка застряла и нужен взгляд живого человека, [забронируй час со мной](https://devoria.fr/ru/coaching): разберём твой проект по видеосвязи, на твоём экране. А если готовишь первый релиз, [пройди бесплатную диагностику](https://devoria.fr/ru/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/ru/kits/review-apple): Мой чек-лист для ревью App Store, исправленные отказы Apple, заметки для ревьюера и два skills для Claude Code, которые проверяют твоё приложение. 29 €.

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