ITMS-91064: как исправить «Invalid tracking information»
Автор: Mehdi Azizi
Опубликовано , 5 мин
ITMS-91064 Invalid tracking information: что значит ошибка, почему Apple отклоняет манифест конфиденциальности и как исправить это в приложении на Expo.
ITMS-91064 это автоматический отказ Apple, который приходит на почту после загрузки билда. Он означает, что два ключа отслеживания в твоём манифесте конфиденциальности противоречат друг другу. Исправление: согласовать NSPrivacyTracking и NSPrivacyTrackingDomains, а потом пересобрать билд.
Я получил эту ошибку на TradaZen, моём приложении для тренировки трейдинга, после того как добавил инструмент рекламной аналитики. Вот причина и решение.
Что значит ошибка ITMS-91064?
Сообщение называется «ITMS-91064: Invalid tracking information». Оно касается файла PrivacyInfo.xcprivacy, манифеста конфиденциальности, который может быть у каждого приложения и каждого SDK. В этом файле, среди прочего, есть два ключа, связанных с отслеживанием в смысле App Tracking Transparency:
NSPrivacyTracking: true, если приложение или SDK использует данные для отслеживания.NSPrivacyTrackingDomains: список доменов, к которым идут запросы для этого отслеживания.
Apple описывает три недопустимые комбинации в своей технической заметке о невалидных манифестах:
NSPrivacyTrackingравен true, а список доменов пуст. Нужно заполнить список. Это был мой случай.NSPrivacyTrackingравен true, но домен записан неправильно. Домен пишется без пути и без слеша в конце.- Домены указаны, хотя
NSPrivacyTrackingравен false. Нужно убрать список.
Базовое правило есть в документации о манифестах конфиденциальности: если NSPrivacyTracking равен true, нужно указать список доменов.
В письме Apple указаны имя и путь проблемного файла. Прочитай этот путь: по нему видно, в чьём манифесте проблема, твоего приложения или встроенного SDK.
Как и с другими ошибками ITMS, это не отказ ревьюера. Проверка автоматическая, при загрузке билда, и билд отбраковывается.
Почему так происходит: у каждой цели свой манифест
Вот в чём ловушка. SDK часто содержит собственный манифест со своими доменами. Можно подумать, что этого достаточно. Но у твоего приложения тоже есть свой манифест, и у меня Apple отклонила именно манифест приложения.
Мой случай, 21 июля 2026 года. Подключая к TradaZen инструмент рекламной аналитики, я указал NSPrivacyTracking: true в конфигурации приложения, и это было верно. Но я не добавил NSPrivacyTrackingDomains. Манифест SDK был полным. А манифест приложения, который Expo сгенерировал из моей конфигурации, говорил «true» с пустым списком. Билд отклонили на этапе обработки.
Вывод: манифест SDK не покрывает манифест твоего приложения. Если ты объявляешь отслеживание в конфигурации, объявляй и домены.
Как исправить ITMS-91064 в приложении на Expo
В Expo манифест приложения настраивается в конфигурации, в ios.privacyManifests. Принцип описан в документации Expo о конфиденциальности, а сам ключ в справочнике по конфигурации.
- Найди домены отслеживания SDK. Скопируй список из манифеста той версии, которая входит в твой билд, а не последней версии в интернете: они могут отличаться. Не придумывай их.
- Добавь их в конфигурацию. Два домена ниже это примеры, замени их:
{
"expo": {
"ios": {
"privacyManifests": {
"NSPrivacyTracking": true,
"NSPrivacyTrackingDomains": [
"example-tracking-domain.com",
"another-tracking-domain.com"
]
}
}
}
}
- Проверь сгенерированный файл, прежде чем платить за билд, если папка
iosгенерируется Expo и игнорируется git. Запустиnpx expo prebuild -p ios, затем открой файлPrivacyInfo.xcprivacy, созданный в папкеios. В нём должен бытьNSPrivacyTrackingсо значениемtrueи полный список доменов. - Пересобери билд и отправь его снова. Манифест входит в бинарник: удалённое обновление его не меняет.
Осторожно с шагом 3: эта команда может удалить и заново создать папку ios. Если ты вносил туда изменения вручную, не запускай её на своём проекте. Работай на копии.
Если твоё приложение вообще ничего не отслеживает, путь короче: поставь NSPrivacyTracking в false и убери список.
Что эти домены меняют для твоих пользователей
Объявить эти домены не формальность. Согласно документации Apple, если пользователь не разрешил отслеживание в окне App Tracking Transparency, запросы к этим доменам не проходят. Так и задумано: отслеживание работает, только если человек сказал «да».
Твоя страница в App Store должна говорить то же самое. Если манифест объявляет отслеживание, это должны отражать и декларации конфиденциальности на странице, и твоя политика конфиденциальности. Иначе потом рискуешь получить отказ ревьюера по guidelines 5.1.1 или 5.1.2: подробности в статье политика конфиденциальности приложения.
Как отправить билд без неприятных сюрпризов
Ошибки ITMS исправляются быстро, если умеешь их читать. Отказы, которые бывают дальше, требуют больше внимания: порядок действий на странице приложение отклонено Apple, а самые частые причины в статье почему Apple отклоняет приложение.
Чтобы проверить всё перед отправкой, в Apple Review Kit собраны мой чек-лист и skills для Claude Code, которые просматривают твой проект. Если отправка застряла и нужен взгляд живого человека, забронируй час со мной: разберём твой проект по видеосвязи, на твоём экране. А если готовишь первый релиз, пройди бесплатную диагностику: она расставит шаги по порядку и пришлёт тебе мой чек-лист против отказов Apple.
Частые вопросы
ITMS-91064 это отказ App Review?
Не в смысле живого ревьюера. Это автоматическая проверка билда при загрузке, до отправки на ревью. Билд отбраковывается: нужно исправить манифест конфиденциальности и отправить новый билд.
Что указывать в NSPrivacyTrackingDomains?
Домены, к которым твоё приложение или твои SDK обращаются для отслеживания. Скопируй те, что SDK перечисляет в манифесте версии, входящей в твой билд. Пустой список при NSPrivacyTracking со значением true входит в комбинации, которые Apple отклоняет.
Разве манифеста моего SDK недостаточно?
Нет. На TradaZen манифест SDK был полным, а билд всё равно отклонили: манифест приложения объявлял отслеживание без единого домена. Если конфигурация приложения объявляет отслеживание, в ней должны быть и домены.
Моё приложение ничего не отслеживает: что делать?
Поставь NSPrivacyTracking в false в конфигурации и убери список доменов. Потом проверь, что твоя страница в App Store и политика конфиденциальности говорят то же самое.
Можно ли исправить ITMS-91064 без нового билда?
Нет. Манифест конфиденциальности входит в бинарник, который отправляется в Apple. Нужно исправить конфигурацию, пересобрать билд и отправить его снова.