ITMS-91064: „Invalid tracking information“ beheben
Von Mehdi Azizi
Veröffentlicht am , 5 Min.
ITMS-91064 heißt: NSPrivacyTracking und NSPrivacyTrackingDomains in deinem Privacy Manifest widersprechen sich. So behebst du das in einer Expo-App.
ITMS-91064 ist eine automatische Ablehnung von Apple. Du bekommst sie per E-Mail, nachdem du deinen Build hochgeladen hast. Sie bedeutet, dass sich die beiden Tracking-Schlüssel in deinem Privacy Manifest widersprechen. Die Lösung: NSPrivacyTracking und NSPrivacyTrackingDomains in Einklang bringen und dann einen neuen Build erstellen.
Mich hat es bei TradaZen erwischt, meiner App zum Trading-Training, nachdem ich ein Tool zur Werbemessung eingebaut hatte. Hier sind Ursache und Lösung.
Was bedeutet der Fehler ITMS-91064?
Die Meldung heißt „ITMS-91064: Invalid tracking information“. Sie bezieht sich auf eine Datei PrivacyInfo.xcprivacy, das Privacy Manifest, das jede App und jedes SDK mitbringen kann. Diese Datei enthält unter anderem zwei Schlüssel zum Tracking im Sinne von App Tracking Transparency:
NSPrivacyTracking: true, wenn die App oder das SDK Daten für Tracking nutzt.NSPrivacyTrackingDomains: die Liste der Domains, die für dieses Tracking kontaktiert werden.
Apple beschreibt die drei abgelehnten Kombinationen in seiner Technote zu ungültigen Manifesten:
NSPrivacyTrackingist true und die Domain-Liste ist leer. Du musst die Liste füllen. Das war mein Fall.NSPrivacyTrackingist true, aber eine Domain ist falsch geschrieben. Eine Domain steht ohne Pfad und ohne abschließenden Schrägstrich.- Es sind Domains aufgeführt, obwohl
NSPrivacyTrackingfalse ist. Du musst die Liste entfernen.
Die Grundregel steht in der Dokumentation zu Privacy Manifests: Wenn NSPrivacyTracking true ist, musst du die Domain-Liste angeben.
Die E-Mail von Apple nennt den Namen und den Pfad der fehlerhaften Datei. Lies diesen Pfad: Er verrät dir, ob das Problem aus dem Manifest deiner App oder aus dem eines eingebundenen SDK kommt.
Wie bei den anderen ITMS-Fehlern ist das keine Ablehnung durch einen Reviewer. Die Prüfung läuft automatisch beim Upload des Builds, und der Build wird verworfen.
Warum das passiert: ein Manifest pro Target
Das ist die Falle. Ein SDK bringt oft sein eigenes Manifest mit, inklusive Domains. Du könntest denken, das reicht. Aber deine App hat auch ihr eigenes, und bei mir hat Apple das Manifest der App abgelehnt.
Mein Fall, am 21. Juli 2026. Als ich ein Tool zur Werbemessung in TradaZen eingebunden habe, hatte ich in der App-Konfiguration NSPrivacyTracking: true gesetzt, was korrekt ist. Aber ich hatte NSPrivacyTrackingDomains nicht ergänzt. Das Manifest des SDK war vollständig. Das der App, von Expo aus meiner Konfiguration generiert, sagte „true“ mit einer leeren Liste. Der Build wurde bei der Verarbeitung abgelehnt.
Die Lektion: Das Manifest des SDK deckt das deiner App nicht ab. Wenn du in deiner Konfiguration Tracking angibst, gibst du auch die Domains an.
ITMS-91064 in einer Expo-App beheben
Bei Expo stellst du das Manifest der App in der Konfiguration ein, unter ios.privacyManifests. Das Prinzip steht in der Expo-Dokumentation zum Datenschutz, der Schlüssel in der Konfigurationsreferenz.
- Finde die Tracking-Domains des SDK. Übernimm die Liste aus dem Manifest der Version, die dein Build enthält, nicht die der neuesten Online-Version: Die beiden können sich unterscheiden. Erfinde keine Domains.
- Füge sie deiner Konfiguration hinzu. Die beiden Domains unten sind Beispiele, die du ersetzen musst:
{
"expo": {
"ios": {
"privacyManifests": {
"NSPrivacyTracking": true,
"NSPrivacyTrackingDomains": [
"example-tracking-domain.com",
"other-tracking-domain.com"
]
}
}
}
}
- Prüfe die generierte Datei, bevor du für einen Build bezahlst, falls dein
ios-Ordner von Expo generiert und von git ignoriert wird. Führenpx expo prebuild -p iosaus und öffne dann die DateiPrivacyInfo.xcprivacy, die im Ordnerioserstellt wurde. Sie mussNSPrivacyTrackingauftrueund die vollständige Domain-Liste enthalten. - Erstelle einen neuen Build und lade ihn hoch. Das Manifest ist Teil des Binaries: Ein Over-the-Air-Update ändert es nicht.
Vorsicht bei Schritt 3: Dieser Befehl kann den Ordner ios löschen und neu anlegen. Wenn du dort von Hand Änderungen gemacht hast, führe ihn nicht in deinem Projekt aus. Arbeite mit einer Kopie.
Wenn deine App gar kein Tracking macht, ist der Weg kürzer: Setz NSPrivacyTracking auf false und entferne die Liste.
Was diese Domains für deine Nutzer ändern
Diese Domains anzugeben ist keine Formalität. Laut Apples Dokumentation schlagen Anfragen an diese Domains fehl, wenn der Nutzer dem Tracking im App-Tracking-Transparency-Dialog nicht zugestimmt hat. Das ist das erwartete Verhalten: Getrackt wird nur, wenn die Person ja gesagt hat.
Deine App-Store-Seite muss dasselbe erzählen. Wenn dein Manifest Tracking angibt, müssen auch die Datenschutzangaben auf deiner Seite und deine Datenschutzerklärung das sagen. Sonst riskierst du danach eine Ablehnung durch einen Reviewer nach den Guidelines 5.1.1 oder 5.1.2: Details findest du in Datenschutzerklärung für eine App.
Deinen Build ohne böse Überraschung hochladen
ITMS-Fehler sind schnell behoben, wenn man sie lesen kann. Ablehnungen, die danach kommen, brauchen mehr Abstand: Das Vorgehen steht auf der Seite App von Apple abgelehnt, und die häufigsten Gründe findest du in warum Apple eine App ablehnt.
Um dein Projekt vor dem Upload zu prüfen, vereint das Apple Review Kit meine Checkliste und Claude-Code-Skills, die dein Projekt durchgehen. Wenn dein Upload hängt und du einen menschlichen Blick willst, buch eine Stunde mit mir: Wir gehen dein Projekt per Videocall durch, auf deinem Bildschirm. Und wenn du deinen ersten Release vorbereitest, mach deine kostenlose Diagnose: Sie bringt die Schritte in die richtige Reihenfolge und schickt dir meine Checkliste gegen Apple-Ablehnungen.
Häufige Fragen
Ist ITMS-91064 eine Ablehnung durch App Review?
Nicht im Sinne eines menschlichen Reviewers. Es ist eine automatische Prüfung des Builds beim Upload, noch vor dem Review. Der Build wird verworfen: Du musst das Privacy Manifest korrigieren und einen neuen Build hochladen.
Was gehört in NSPrivacyTrackingDomains?
Die Domains, die deine App oder deine SDKs für Tracking kontaktieren. Übernimm die, die das SDK im Manifest der Version auflistet, die dein Build enthält. Eine leere Liste mit NSPrivacyTracking auf true gehört zu den Kombinationen, die Apple ablehnt.
Reicht das Manifest meines SDK nicht aus?
Nein. Bei TradaZen war das Manifest des SDK vollständig, und der Build wurde trotzdem abgelehnt: Das der App gab Tracking ohne eine einzige Domain an. Wenn die Konfiguration deiner App Tracking angibt, muss sie auch die Domains auflisten.
Meine App macht kein Tracking: Was tun?
Setz NSPrivacyTracking in deiner Konfiguration auf false und entferne die Domain-Liste. Prüfe danach, ob deine App-Store-Seite und deine Datenschutzerklärung wirklich dasselbe sagen.
Kann man ITMS-91064 ohne neuen Build beheben?
Nein. Das Privacy Manifest ist Teil des Binaries, das an Apple geht. Du musst die Konfiguration korrigieren, einen neuen Build erstellen und ihn erneut hochladen.