ITMS-91064エラーの原因と対処法
著者:Mehdi Azizi
公開・5 分
ITMS-91064は、プライバシーマニフェストのNSPrivacyTrackingと追跡ドメインの矛盾が原因です。Expoアプリでの直し方を解説します。
ITMS-91064は、ビルドを送信したあとにメールで届くAppleの自動リジェクトです。プライバシーマニフェストにある追跡関連の2つのキーが矛盾している、という意味です。対処法は、NSPrivacyTracking と NSPrivacyTrackingDomains の内容をそろえることです。そのうえでビルドし直します。
僕はトレード練習アプリのTradaZenに広告計測ツールを入れたあと、このエラーを受け取りました。原因と直し方を説明します。
ITMS-91064エラーの意味は?
メッセージのタイトルは「ITMS-91064: Invalid tracking information」です。対象は PrivacyInfo.xcprivacy ファイル、つまり各アプリや各SDKが同梱できるプライバシーマニフェストです。このファイルには、App Tracking Transparencyでいう「トラッキング」に関わるキーが2つあります。
NSPrivacyTracking:アプリやSDKがデータをトラッキングに使う場合はtrue。NSPrivacyTrackingDomains:トラッキングのために通信するドメインのリスト。
リジェクトされる3つの組み合わせは、Appleの無効なマニフェストに関する技術ノートに書かれています。
NSPrivacyTrackingがtrueなのにドメインのリストが空。リストを埋める必要があります。僕のケースはこれでした。NSPrivacyTrackingがtrueだが、ドメインの書き方が間違っている。ドメインはパスも末尾のスラッシュも付けずに書きます。NSPrivacyTrackingがfalseなのにドメインが記載されている。リストを削除する必要があります。
基本ルールはプライバシーマニフェストのドキュメントにあります。NSPrivacyTracking がtrueなら、ドメインのリストを用意しなければなりません。
**Appleのメールには、問題のファイル名とパスが書かれています。**このパスを読んでください。問題が自分のアプリのマニフェストにあるのか、同梱しているSDKのマニフェストにあるのかがわかります。
ほかのITMSエラーと同じく、これはレビュアーによるリジェクトではありません。ビルド送信時の自動チェックで、ビルドは弾かれます。
原因:マニフェストはターゲットごとに1つ
ここが落とし穴です。SDKは自分のドメインを書いた独自のマニフェストを同梱していることが多いです。それで十分だと思うかもしれません。でもアプリにもアプリ自身のマニフェストがあり、僕の場合にAppleがリジェクトしたのはアプリ側のマニフェストでした。
2026年7月21日の僕のケースです。TradaZenに広告計測ツールを組み込むとき、アプリの設定で NSPrivacyTracking: true を宣言しました。これ自体は正しいです。ところが NSPrivacyTrackingDomains を追加していませんでした。SDKのマニフェストは完璧でした。一方、僕の設定からExpoが生成したアプリのマニフェストは「true」なのにリストが空。ビルドは処理の段階でリジェクトされました。
教訓:SDKのマニフェストはアプリのマニフェストをカバーしてくれません。設定でトラッキングを宣言するなら、ドメインも宣言します。
ExpoアプリでITMS-91064を直す
Expoでは、アプリのマニフェストは設定ファイルの ios.privacyManifests で指定します。仕組みはExpoのプライバシーに関するドキュメントに、キーは設定のリファレンスに載っています。
- **SDKのトラッキングドメインを確認する。**ネット上の最新版ではなく、ビルドに同梱しているバージョンのマニフェストからリストを書き写してください。内容が違うことがあります。ドメインを推測で書かないでください。
- **設定に追加する。**下の2つのドメインは置き換え用の例です。
{
"expo": {
"ios": {
"privacyManifests": {
"NSPrivacyTracking": true,
"NSPrivacyTrackingDomains": [
"example-tracking-domain.com",
"another-tracking-domain.com"
]
}
}
}
}
- お金のかかるビルドの前に、生成されたファイルを確認する。
iosフォルダがExpoで生成され、gitで無視されている場合の手順です。npx expo prebuild -p iosを実行し、iosフォルダに作られたPrivacyInfo.xcprivacyファイルを開きます。NSPrivacyTrackingがtrueで、ドメインのリストがすべて入っていればOKです。 - **ビルドし直して再送信する。**マニフェストはバイナリの一部です。リモートアップデートでは変更できません。
ステップ3には注意してください。このコマンドは ios フォルダを削除してから作り直すことがあります。手で変更を加えている場合は、自分のプロジェクトで実行しないでください。コピーで作業しましょう。
アプリがトラッキングを一切しないなら、もっと簡単です。NSPrivacyTracking を false にして、リストを削除します。
このドメインがユーザーに与える影響
このドメインの宣言はただの形式ではありません。Appleのドキュメントによると、ユーザーがApp Tracking Transparencyのダイアログでトラッキングを許可していない場合、これらのドメインへのリクエストは失敗します。これは想定どおりの動作です。トラッキングは本人が許可したときだけ行われます。
App Storeのページも同じ内容になっている必要があります。マニフェストでトラッキングを宣言しているなら、ページのプライバシー申告とプライバシーポリシーにもそう書かなければなりません。そうしないと、今度はガイドライン5.1.1や5.1.2を理由にレビュアーからリジェクトされるおそれがあります。詳しくはアプリのプライバシーポリシーを読んでください。
予想外のトラブルなしにビルドを送信する
ITMSエラーは、読み方さえわかればすぐに直せます。その先のリジェクトはもう少し落ち着いた対応が必要です。手順はAppleにアプリをリジェクトされたときのページに、よくある理由はAppleがアプリをリジェクトする理由にまとめています。
送信前にプロジェクトをチェックしたいなら、Apple Review Kitに僕のチェックリストと、プロジェクトを確認してくれるClaude Codeのスキルが入っています。送信で詰まっていて人の目で見てほしいなら、僕と1時間のセッションを予約してください。ビデオ通話で、あなたの画面を見ながら一緒にプロジェクトを見直します。初めてのリリースを準備中なら、無料診断を受けてください。やるべきことを順番に整理し、Appleのリジェクト対策チェックリストをお送りします。
よくある質問
ITMS-91064はApp Reviewによるリジェクトですか?
人間のレビュアーによるリジェクトではありません。ビルド送信時、審査に回る前に行われる自動チェックです。ビルドは弾かれるので、プライバシーマニフェストを直して新しいビルドを送る必要があります。
NSPrivacyTrackingDomainsには何を書けばいいですか?
アプリやSDKがトラッキングのために通信するドメインです。ビルドに同梱しているバージョンのSDKのマニフェストに載っているドメインを書き写してください。NSPrivacyTracking が true でリストが空という組み合わせは、Appleがリジェクトするパターンのひとつです。
SDKのマニフェストだけでは足りないのですか?
足りません。TradaZenではSDKのマニフェストは完璧でしたが、それでもビルドはリジェクトされました。アプリ側のマニフェストが、ドメインなしでトラッキングを宣言していたからです。アプリの設定でトラッキングを宣言するなら、ドメインも記載する必要があります。
アプリでトラッキングをしていない場合はどうすればいいですか?
設定で NSPrivacyTracking を false にして、ドメインのリストを削除します。そのあと、App Storeのページとプライバシーポリシーが同じ内容になっているか確認してください。
ビルドし直さずにITMS-91064を直せますか?
できません。プライバシーマニフェストはAppleに送るバイナリの一部です。設定を直して、ビルドし直し、再送信する必要があります。