App Store の審査で止まった四つ:iPad のスクショ、ITMS-91064、アカウント削除、投稿の通報

English version

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

iOS アプリ「トレカダッシュ」を App Store の審査に出そうとして、何度か、出す手前で止まりました。Apple 側の自動検査で止まったもの、提出画面で止まったもの、ガイドラインに照らして点検して見つけたもの。コミットに残っている記録から、四つ書きます。

このサイトには、トレカダッシュの作品ページはまだありません。審査の結果は、この記事には書いていません。

1. iPad のスクリーンショットを求められた

App Store Connect で審査に提出しようとすると、「13 インチの iPad ディスプレイのスクリーンショットをアップロードする必要があります」と出て止まりました。プロジェクトの設定が、もともと iPhone と iPad の両方(1,2)になっていたためです。

ところが、iPad を意識して作った形跡はなく、実機の確認も、レイアウトの調整も、すべて iPhone でした。未検証のまま「iPad 対応」として審査に出すのはリスクがあるので、iPhone 専用(1)に変えました。

2. 自動検査で「無効なバイナリ」(ITMS-91064)

ビルド 877 が、Apple 側の自動審査で、「無効なバイナリ」として却下されました。原因は、プライバシーマニフェスト(PrivacyInfo.xcprivacy)の、トラッキングは「する」(NSPrivacyTracking=true) と書いたのに、トラッキング先のドメイン一覧(NSPrivacyTrackingDomains)が空だったことです。Apple の検査は、この組み合わせを矛盾として弾きます。

アプリは、AdMob の広告(バナー、ネイティブ、アプリ起動広告)を、ATT の同意のあとにパーソナライズして出しています。トラッキング自体はしているので、「する」は正しい。直すべきは、空のドメイン一覧のほうでした。ただ、Google は AdMob 向けのドメインの公式な一覧を出していません。そこで、広く使われている広告配信のドメイン(googlesyndication.com、googleadservices.com、doubleclick.net、google.com)を追加しました。Release 構成のビルドが通ることは確認しています。

3. アカウント削除(ガイドライン 5.1.1(v))

アカウントを作れるアプリは、アプリの中からアカウントを削除できなければなりません。削除の処理は、利用者のマップ投稿(目撃情報)と、その付随データ(所有者、申告、通報、お礼)も消すようにしました。Apple でサインインしている人は、アプリ側で Apple に再確認してから、サーバーで削除して、トークンを取り消します。設定画面とプライバシーポリシーの説明も、実際の動きに合わせました。

さらに、アカウントを削除しても、購読は解約されません。これを、設定の説明と削除の確認画面に書き足しました(審査の要件として)。

4. 利用者の投稿(ガイドライン 1.2)

マップ投稿は、利用者が自由に書けます。それまでは、文字数や座標の範囲といった形式のチェックだけで、内容を弾く仕組みがありませんでした。そこで、自由記述の 3 項目(店舗名・商品名・メモ)に、簡易の NG ワード判定を足しました。該当すれば、投稿は作りますが、最初からレビュー待ちの状態にします。

もう一つ。投稿の通報は、開発者が管理画面の URL を自分から思い出して開かない限り、誰にも気づかれない状態でした。毎日の運用連絡に、レビュー待ちの件数を足して、見落としを防ぎました。

分かったこと

審査は、出してから落ちるものではなく、出す手前の点検で半分、見つかる。

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

この話に出てくるもの

ほかの記録

コメント

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

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