ITMS-91064「無効なバイナリ」:NSPrivacyTracking が true なのに NSPrivacyTrackingDomains が空だった

English version

トレカダッシュ 開発の記録 / 2026年10月

iOS アプリ「トレカダッシュ」をアップロードしたところ、Apple 側の自動審査で、ビルド 877 が「無効なバイナリ」として却下されました。エラーコードは ITMS-91064。原因は、プライバシーマニフェスト(PrivacyInfo.xcprivacy)の、二つの項目の組み合わせでした。コミットの記録で、何が起きて、どう直したかを書きます。

このサイトには、トレカダッシュの作品ページがあります(トレカダッシュ)。ここに書くのは、開発の記録です。

起きたこと

ビルド 877 が、Apple の自動審査で、「無効なバイナリ」として却下されました(2026年10月6日)。人が見る審査の前に、機械の検査で弾かれた、ということです。

原因:「トラッキングする」と書いて、ドメインが空だった

プライバシーマニフェストには、次の二つの項目がありました。

項目値
NSPrivacyTracking(トラッキングをするか)true
NSPrivacyTrackingDomains(トラッキングに使うドメイン)空の配列

Apple の検査は、この組み合わせを、矛盾として弾きます。「トラッキングをする」と宣言しているのに、そのドメインが、一つも書かれていないからです。

では、NSPrivacyTracking のほうを false にすればよいか、というと、そうではありませんでした。このアプリは、AdMob の広告(バナー、ネイティブ、アプリ起動広告)を、ATT(トラッキングの許可)に同意した人に、パーソナライズして出しています。トラッキングは、実際にしているので、true が正しい宣言です。直すべきは、空のドメインのほうでした。

直し方:ドメインを書く

ただ、Google は、AdMob 向けの、トラッキングドメインの公式な一覧を、出していません。そこで、広く使われている広告配信のドメインを、追加しました。

Release 構成で、ビルドが通る(xcodebuild が BUILD SUCCEEDED)ことは、確認しています。

確認できていないこと

コミットに書かれているのは、ビルドが通ることまでです。修正したビルドを、Apple が受け付けたかは、この記事を書いた時点で、記録にありません。また、ここに挙げたドメインの一覧が、AdMob のトラッキングに使われるドメインを、すべて覆っているかも、公式の一覧が無いため、確かめられていません。

分かったこと

宣言と中身は、機械に、突き合わせられる。

この記事は、コミット(2026年10月6日)の記録から書きました。

この話に出てくるもの

ほかの記録

コメント

感想や、記事の間違いの指摘は、ここへ。書くには、GitHub のアカウントが要ります。

押すと、giscus(giscus.app)と GitHub に接続します。押さなければ、接続しません。詳しくはあつかいに書いています。