← 開発ノート一覧に戻る
めぐる日記 2026-07-29

審査に出したら「トラッキング情報が無効」と言われた話

初めてのApp Store提出。アーカイブを作って、コマンドラインからアップロードして、審査へ提出。ここまでは何の問題もなく進んだ。ところが数分後、Appleから「バイナリが無効です」という通知と、詳細を伝えるメールが届いた。

ITMS-91064という数字

メールの本文には「ITMS-91064: Invalid tracking information」とあり、続けて「NSPrivacyTracking must be true if NSPrivacyTrackingDomains isn't empty」という一文。プライバシーマニフェスト(`PrivacyInfo.xcprivacy`)というファイルの中の設定が、Appleの検証ルールに違反している、ということだけは分かった。

このアプリでは広告表示のためにGoogleのAdMobを使っていて、広告のためのトラッキング(IDFAの利用)も行っている。だから「トラッキングする」という宣言自体は正しいはずなのに、なぜ弾かれたのか。

4つのマニフェストを全部見比べる

アプリのビルド物の中には、プライバシーマニフェストが4つ含まれていた。自分のメインアプリ用、ウィジェット用、そしてGoogleMobileAds・UserMessagingPlatformという2つの外部SDKが持っているもの。まず疑ったのは外部SDK側だったが、中身を見比べてみると、そちらは特に矛盾は無い。

残るは自分のアプリ本体のファイル。よく見ると「トラッキングする(true)」と書いてある一方で、「トラッキングに使うドメインの一覧」が空の配列になっていた。つまり「トラッキングします」と宣言しているのに、「具体的にどこに繋いでトラッキングするのか」の情報が何も無い、という中途半端な状態だった。

ドメインを書けば直るはず、なのだが

Appleの公式なルールの文言は「ドメインの一覧が空でないなら、トラッキングはtrueでなければならない」という一方向の言い回しだったので、最初はどちらを直すべきか迷った。ただ実際の広告SDKの動作を考えれば「トラッキングをtrueにしたまま、ドメインを埋める」方が正しい対応のはず。AdMobが実際に広告配信のために接続するGoogle系のドメイン(`doubleclick.net`や`googlesyndication.com`など)を、いくつか調べて追加した。

ビルド番号を1つ上げて、同じ手順でもう一度アーカイブ・アップロード。今度は無効判定のメールは来ず、そのまま審査待ちの状態に進んだ。

持ち帰ったこと