ITMS-91064: як виправити «Invalid tracking information»
Автор: Mehdi Azizi
Опубліковано , 5 хв
ITMS-91064 Invalid tracking information: що означає помилка, чому Apple відхиляє маніфест конфіденційності і як це виправити в застосунку на Expo.
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 описує три комбінації, які відхиляються, у своїй технічній нотатці про невалідні маніфести:
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. Треба виправити конфігурацію, зібрати новий білд і відправити його знову.