ITMS-91064: oprava chyby „Invalid tracking information“
Autor: Mehdi Azizi
Publikováno , 5 min
ITMS-91064 znamená, že si NSPrivacyTracking a NSPrivacyTrackingDomains v manifestu soukromí odporují. Sjednoť je a udělej nový build.
ITMS-91064 je automatické odmítnutí od Applu, které ti přijde e-mailem po odeslání buildu. Znamená, že si dva klíče pro sledování v tvém manifestu soukromí navzájem odporují. Oprava: dej NSPrivacyTracking a NSPrivacyTrackingDomains do souladu a pak udělej nový build.
Dostal jsem ji u TradaZen, mé appky na trénink tradingu, poté co jsem přidal nástroj na měření reklam. Tady je příčina a oprava.
Co znamená chyba ITMS-91064?
Zpráva má název „ITMS-91064: Invalid tracking information“. Týká se souboru PrivacyInfo.xcprivacy, tedy manifestu soukromí, který může mít každá appka i každé SDK. Tento soubor obsahuje mimo jiné dva klíče spojené se sledováním ve smyslu App Tracking Transparency:
NSPrivacyTracking: true, pokud appka nebo SDK používá data ke sledování.NSPrivacyTrackingDomains: seznam domén, které se kvůli tomuto sledování kontaktují.
Apple popisuje tři odmítané kombinace ve své technické poznámce o neplatných manifestech:
NSPrivacyTrackingje true a seznam domén je prázdný. Seznam musíš vyplnit. To byl můj případ.NSPrivacyTrackingje true, ale některá doména je špatně zapsaná. Doména se píše bez cesty a bez koncového lomítka.- Domény jsou uvedené, i když
NSPrivacyTrackingje false. Seznam musíš odstranit.
Základní pravidlo je v dokumentaci k manifestům soukromí: když je NSPrivacyTracking true, musíš uvést seznam domén.
E-mail od Applu obsahuje název a cestu k chybnému souboru. Tu cestu si přečti: řekne ti, jestli problém je v manifestu tvé appky, nebo v manifestu přibaleného SDK.
Stejně jako u ostatních chyb ITMS nejde o odmítnutí od revieweru. Kontrola je automatická, proběhne při doručení buildu a build se vyřadí.
Proč se to stává: každý target má svůj manifest
Tady je ta past. SDK má často vlastní manifest i s doménami. Mohl bys myslet, že to stačí. Jenže tvoje appka má taky svůj a u mě Apple odmítl právě manifest appky.
Můj případ, 21. července 2026. Při napojování nástroje na měření reklam do TradaZen jsem v konfiguraci appky nastavil NSPrivacyTracking: true, což je správně. Ale nepřidal jsem NSPrivacyTrackingDomains. Manifest SDK byl kompletní. Manifest appky, který Expo vygenerovalo z mé konfigurace, říkal „true“ s prázdným seznamem. Build byl při zpracování odmítnut.
Ponaučení: manifest SDK nepokrývá manifest tvé appky. Když v konfiguraci deklaruješ sledování, deklaruješ i domény.
Oprava ITMS-91064 v appce na Expo
V Expo se manifest appky nastavuje v konfiguraci, pod ios.privacyManifests. Princip najdeš v dokumentaci Expo o soukromí a klíč v referenci konfigurace.
- Najdi domény pro sledování daného SDK. Opiš seznam z manifestu té verze, kterou tvůj build obsahuje, ne z nejnovější verze online: můžou se lišit. Nevymýšlej si je.
- Přidej je do konfigurace. Obě domény níže jsou jen příklady k nahrazení:
{
"expo": {
"ios": {
"privacyManifests": {
"NSPrivacyTracking": true,
"NSPrivacyTrackingDomains": [
"example-tracking-domain.com",
"another-tracking-domain.com"
]
}
}
}
}
- Zkontroluj vygenerovaný soubor dřív, než zaplatíš build, pokud tvoji složku
iosgeneruje Expo a git ji ignoruje. Spusťnpx expo prebuild -p iosa otevři souborPrivacyInfo.xcprivacyvytvořený ve složceios. Musí obsahovatNSPrivacyTrackingnastavené natruea úplný seznam domén. - Udělej nový build a pošli ho znovu. Manifest je součástí binárky: vzdálená aktualizace ho nezmění.
Pozor na krok 3: tento příkaz může složku ios smazat a vytvořit znovu. Pokud jsi v ní dělal ruční úpravy, nespouštěj ho na svém projektu. Pracuj na kopii.
Pokud tvoje appka nic nesleduje, cesta je kratší: nastav NSPrivacyTracking na false a seznam odstraň.
Co tyhle domény mění pro tvé uživatele
Deklarace těchto domén není jen formalita. Podle dokumentace Applu, pokud uživatel nepovolil sledování v okně App Tracking Transparency, požadavky na tyto domény selžou. To je očekávané chování: sledování proběhne, jen když člověk řekl ano.
Tvoje stránka na App Store musí říkat totéž. Pokud manifest deklaruje sledování, musí to uvádět i údaje o soukromí na stránce appky a tvoje zásady ochrany osobních údajů. Jinak ti později hrozí odmítnutí od revieweru podle guidelines 5.1.1 nebo 5.1.2: podrobnosti najdeš v článku zásady ochrany osobních údajů aplikace.
Jak odeslat build bez nepříjemných překvapení
Chyby ITMS se opravují rychle, když je umíš číst. Odmítnutí, která přijdou potom, chtějí víc nadhledu: postup je na stránce aplikace odmítnutá Applem a nejčastější důvody v článku proč Apple odmítá appky.
Na kontrolu projektu před odesláním je tu Apple Review Kit: obsahuje můj checklist a skills pro Claude Code, které ti projdou projekt. Pokud se ti odeslání zasekne a chceš lidský pohled, zarezervuj si se mnou hodinu: projdeme tvůj projekt přes video, na tvé obrazovce. A pokud chystáš první vydání, udělej si bezplatnou diagnostiku: seřadí ti kroky a pošle ti můj checklist proti odmítnutí od Applu.
Časté dotazy
Je ITMS-91064 odmítnutí od App Review?
Ne ve smyslu lidského revieweru. Je to automatická kontrola buildu při jeho doručení, ještě před posouzením. Build se vyřadí: musíš opravit manifest soukromí a poslat nový build.
Co mám dát do NSPrivacyTrackingDomains?
Domény, které tvoje appka nebo SDK kontaktují kvůli sledování. Opiš ty, které SDK uvádí v manifestu verze, kterou tvůj build obsahuje. Prázdný seznam s NSPrivacyTracking nastaveným na true patří mezi kombinace, které Apple odmítá.
Nestačí manifest mého SDK?
Ne. U TradaZen byl manifest SDK kompletní, a build byl stejně odmítnut: manifest appky deklaroval sledování bez jediné domény. Pokud konfigurace tvé appky deklaruje sledování, musí uvádět i domény.
Moje appka nic nesleduje: co dělat?
Nastav v konfiguraci NSPrivacyTracking na false a odstraň seznam domén. Pak ověř, že tvoje stránka na App Store a zásady ochrany osobních údajů říkají totéž.
Dá se ITMS-91064 opravit bez nového buildu?
Ne. Manifest soukromí je součástí binárky odeslané Applu. Musíš opravit konfiguraci, udělat nový build a poslat ho znovu.