ITMS-91064: cara memperbaiki Invalid tracking information
Oleh Mehdi Azizi
Terbit , 5 mnt
ITMS-91064 berarti dua kunci tracking di privacy manifest kamu saling bertentangan. Samakan NSPrivacyTracking dan NSPrivacyTrackingDomains, lalu build ulang.
ITMS-91064 adalah penolakan otomatis dari Apple, yang dikirim lewat e-mail setelah build kamu terkirim. Artinya, dua kunci tracking di privacy manifest kamu saling bertentangan. Perbaikannya: buat NSPrivacyTracking dan NSPrivacyTrackingDomains sejalan, lalu build ulang.
Saya kena error ini di TradaZen, app latihan trading saya, setelah menambahkan alat pengukuran iklan. Ini penyebab dan perbaikannya.
Apa arti error ITMS-91064?
Judul pesannya "ITMS-91064: Invalid tracking information". Yang dipermasalahkan adalah file PrivacyInfo.xcprivacy, privacy manifest yang bisa disertakan oleh setiap app dan setiap SDK. File ini antara lain berisi dua kunci yang berkaitan dengan tracking, dalam arti App Tracking Transparency:
NSPrivacyTracking: bernilai true jika app atau SDK memakai data untuk tracking.NSPrivacyTrackingDomains: daftar domain yang dihubungi untuk tracking tersebut.
Apple menjelaskan tiga kombinasi yang ditolak dalam catatan teknisnya tentang manifest yang tidak valid:
NSPrivacyTrackingbernilai true tapi daftar domainnya kosong. Daftarnya harus diisi. Ini kasus saya.NSPrivacyTrackingbernilai true tapi ada domain yang ditulis salah. Domain ditulis tanpa path dan tanpa garis miring di akhir.- Ada domain yang dicantumkan padahal
NSPrivacyTrackingbernilai false. Daftarnya harus dihapus.
Aturan dasarnya ada di dokumentasi tentang privacy manifest: jika NSPrivacyTracking bernilai true, kamu wajib menyertakan daftar domain.
E-mail dari Apple menyebutkan nama dan path file yang bermasalah. Baca path itu: dari situ kamu tahu masalahnya ada di manifest app kamu atau di manifest salah satu SDK yang disertakan.
Seperti error ITMS lainnya, ini bukan penolakan dari reviewer. Pemeriksaannya otomatis, saat build dikirim, dan build-nya langsung dibuang.
Kenapa ini terjadi: satu manifest per target
Ini jebakannya. SDK sering membawa manifest-nya sendiri, lengkap dengan domainnya. Kamu mungkin mengira itu sudah cukup. Tapi app kamu juga punya manifest sendiri, dan di kasus saya, justru manifest app yang ditolak Apple.
Kasus saya, 21 Juli 2026. Saat memasang alat pengukuran iklan di TradaZen, saya mendeklarasikan NSPrivacyTracking: true di konfigurasi app, dan itu memang benar. Tapi saya tidak menambahkan NSPrivacyTrackingDomains. Manifest SDK-nya lengkap. Manifest app, yang dibuat Expo dari konfigurasi saya, bilang "true" dengan daftar kosong. Build-nya ditolak saat diproses.
Pelajarannya: manifest SDK tidak menggantikan manifest app kamu. Kalau kamu mendeklarasikan tracking di konfigurasi, kamu juga harus mendeklarasikan domainnya.
Memperbaiki ITMS-91064 di app Expo
Di Expo, manifest app diatur lewat konfigurasi, di bawah ios.privacyManifests. Prinsipnya ada di dokumentasi Expo tentang privasi, dan kuncinya di referensi konfigurasi.
- Cari domain tracking milik SDK. Salin daftar dari manifest versi yang ikut di build kamu, bukan dari versi terbaru yang ada online: keduanya bisa berbeda. Jangan mengarang domain.
- Tambahkan ke konfigurasi kamu. Dua domain di bawah ini hanya contoh yang harus kamu ganti:
{
"expo": {
"ios": {
"privacyManifests": {
"NSPrivacyTracking": true,
"NSPrivacyTrackingDomains": [
"example-tracking-domain.com",
"other-tracking-domain.com"
]
}
}
}
}
- Cek file yang dihasilkan sebelum membayar build, jika folder
ioskamu dibuat oleh Expo dan diabaikan oleh git. Jalankannpx expo prebuild -p ios, lalu buka filePrivacyInfo.xcprivacyyang dibuat di folderios. File itu harus berisiNSPrivacyTrackingbernilaitruedan daftar domain yang lengkap. - Build ulang dan kirim lagi. Manifest adalah bagian dari binary: update jarak jauh tidak mengubahnya.
Hati-hati dengan langkah 3: perintah ini bisa menghapus lalu membuat ulang folder ios. Kalau kamu pernah mengubah isinya secara manual, jangan jalankan di proyek kamu. Kerjakan di salinannya.
Kalau app kamu sama sekali tidak melakukan tracking, caranya lebih singkat: ubah NSPrivacyTracking jadi false dan hapus daftarnya.
Apa pengaruh domain ini bagi pengguna kamu
Mendeklarasikan domain ini bukan sekadar formalitas. Menurut dokumentasi Apple, jika pengguna tidak menyetujui tracking di jendela App Tracking Transparency, request ke domain-domain ini akan gagal. Itu perilaku yang memang diharapkan: tracking hanya jalan kalau orangnya bilang ya.
Halaman App Store kamu harus menyampaikan hal yang sama. Kalau manifest kamu mendeklarasikan tracking, deklarasi privasi di halaman App Store dan kebijakan privasi kamu juga harus menyebutkannya. Kalau tidak, kamu berisiko ditolak reviewer berdasarkan guideline 5.1.1 atau 5.1.2: detailnya ada di kebijakan privasi aplikasi.
Mengirim build tanpa kejutan buruk
Error ITMS cepat diperbaiki kalau kamu tahu cara membacanya. Penolakan yang datang setelahnya butuh pemahaman lebih: langkah-langkahnya ada di halaman aplikasi ditolak Apple, dan alasan yang paling sering ada di kenapa Apple menolak app.
Untuk mengecek proyek kamu sebelum dikirim, Apple Review Kit berisi checklist saya dan skill Claude Code yang membaca ulang proyek kamu. Kalau pengirimanmu macet dan kamu ingin dilihat langsung oleh orang, pesan satu jam bersama saya: kita bedah proyek kamu lewat video call, di layar kamu. Dan kalau kamu sedang menyiapkan rilis pertama, ikuti diagnostic gratis: urutan langkahnya jadi jelas dan kamu dapat checklist anti-penolakan Apple dari saya.
Pertanyaan umum
Apakah ITMS-91064 penolakan dari App Review?
Bukan dari reviewer manusia. Ini pemeriksaan otomatis pada build saat dikirim, sebelum masuk review. Build-nya dibuang: kamu harus memperbaiki privacy manifest dan mengirim build baru.
Apa yang harus diisi di NSPrivacyTrackingDomains?
Domain yang dihubungi app atau SDK kamu untuk tracking. Salin domain yang dicantumkan SDK di manifest versi yang ikut di build kamu. Daftar kosong dengan NSPrivacyTracking bernilai true termasuk kombinasi yang ditolak Apple.
Apakah manifest SDK saya tidak cukup?
Tidak. Di TradaZen, manifest SDK-nya lengkap tapi build tetap ditolak: manifest app mendeklarasikan tracking tanpa satu domain pun. Kalau konfigurasi app kamu mendeklarasikan tracking, konfigurasi itu juga harus mencantumkan domainnya.
App saya tidak melakukan tracking: apa yang harus dilakukan?
Ubah NSPrivacyTracking jadi false di konfigurasi dan hapus daftar domainnya. Lalu pastikan halaman App Store dan kebijakan privasi kamu menyampaikan hal yang sama.
Bisakah ITMS-91064 diperbaiki tanpa build ulang?
Tidak. Privacy manifest adalah bagian dari binary yang dikirim ke Apple. Kamu harus memperbaiki konfigurasi, build ulang, lalu mengirimnya lagi.