ATT通知は表示されたのに、欧州向けアプリをそのまま公開してよいか判断できない。
今週は、iOS 27.2のEU ATT変更を「適用地域」「通知の流れ」「追跡許可」の別々の証拠で検収してください。追跡許可の要件は変わらず、対象国向けの配信では代替通知が必要です。ベータ環境での表示確認だけを合格根拠にせず、Appleの最新資料と実際のテスト結果をそろえましょう。

対象読者
ATTの実装と利用者の選択処理を見直すiOSエンジニア。
欧州向けの表示や分岐を検証するQA。
XcodeとmacOSのCI環境を管理し、証拠を残すエンジニア。

今週の確認起点:ベータ情報と公開判断を分ける

最終更新:2026年11月1日。Appleのシステムリリース記録とXcodeのシステム要件を照合しています。iOS 27.2とiPadOS 27.2にはEU向けの代替システム通知が示されていますが、確認時点でiOS 27.2の資料はベータとして扱われています。正式版の公開済みと誤認せず、リリース前にAppleの記録を再確認してください。

Appleが示す変更は、通知の選択肢に関するものです。アプリによる追跡に必要な許可が不要になる、あるいは利用者の選択を省略できるという意味ではありません。画面の変更とアプリの追跡動作を別々に判定します。

検収の入口では、公式に確認できるルール、テスト時点のOS状態、プロジェクト独自の公開基準を混ぜないことが重要です。ベータでの成功は、そのベータ環境での結果です。正式版やAppleの説明が変わった場合に再評価できるよう、判断時点と参照資料も記録します。

配信担当:国別の必須条件と任意の選択肢を分ける

Appleの説明では、フランス、ドイツ、イタリア、ポーランド、ルーマニアで配信するアプリには代替通知のみが提供されます。その他のEU地域では代替通知を選択できる扱いです。AppleのEU向けATT説明に基づいて国名と適用条件を確認し、特定国の条件をEU全域の一律ルールとして扱わないでください。

配信担当者は、次の証拠をそろえます。

  • アプリの配信対象国と、検収対象のビルドを対応付けます。ストア設定や社内のリリース設定を確認し、国の対象範囲を記録します。
  • 対象国向けに必要な代替通知と、他地域での選択可能な運用を区別して、アプリ側の設定・表示条件に反映します。
  • Appleの資料の確認日と、参照したリリース状態をテスト記録に残します。
  • 法令上の適合性と技術上の動作確認を別の判断として扱います。ここでの検収は法律相談の代替ではありません。

国ごとの条件は、アプリの配信範囲を変更した時点で再確認します。地域判定の根拠が曖昧なままなら、技術テストが通っても公開承認に進めず、対象範囲を確定させてください。

iOSエンジニア:通知の変更と許可処理を切り離す

アプリが追跡許可を求める実装では、表示する目的説明、要求するタイミング、利用者の選択後の処理を点検します。目的説明に使うNSUserTrackingUsageDescriptionの要件は、Appleのプロパティリスト文書で確認できます。文言が存在するだけでなく、実際の利用目的と一致しているかをレビューしてください。

実装では、ATTの要求を行う処理と、結果の扱いを別々に追います。認証要求APIの説明に照らして、アプリが要求を呼び出す条件と完了後の分岐を確認します。ATTの選択と、アプリ内の別のプライバシー同意を同じフラグで代用せず、それぞれの目的と状態を分けて管理してください。

年次の再確認についても、毎年ATTの許可画面を再表示できるという前提を置かないでください。Appleが定義するATTの許可状態を確認し、現在の状態を取得したうえで分岐を設計します。年次レビューは、許可の有効期限を仮定して再要求する仕組みではなく、利用目的や実装、Appleの最新仕様を見直す運用として定義します。

QA:画面確認と利用者の選択結果を対照する

iOSプライバシー通知テストでは、スクリーンショットだけで合格を決めず、表示条件と後続動作を一続きで確認します。特に「Additional Information」がある場合は、入口の表示だけでなく、アプリが設計した補足説明や、より細かな選択フローへ到達できるかを検証します。実際に提示される内容は対象環境で確かめ、画面仕様を推測で補わないでください。

QAは、次の条件分岐で検収結果を決めます。

  • 対象地域の条件と通知の表示を再現でき、選択後の動作も記録できた場合は、該当ビルドを検収候補にします。
  • 通知の表示だけ確認できた場合は、許可状態と後続の追跡処理を未検証として扱い、合格にしません。
  • 許可、拒否、未決定、システム設定による制限を区別して記録できない場合は、テスト条件を整えて再実行します。
  • Additional Informationから期待する説明や選択肢に進めない場合は、画面遷移と実装の不一致を修正するまで保留します。

画面上で選択肢を押せたことと、その結果がアプリの追跡処理に適切に反映されたことは、別の検証項目です。許可状態を読み取ったログやアプリ内の分岐結果も、画面記録と合わせて保存してください。

CI担当:実行条件と再現できる証拠を残す

Xcode 27.2は2026年10月29日に公開されました。一方、Xcodeの稼働条件はmacOSとの組み合わせを含めて確認が必要です。更新時はAppleのリリース記録とシステム要件を参照し、CIノードのmacOS、Xcode、対象ランタイムの組み合わせを記録してください。

再現可能な記録には、少なくとも次の項目を含めます。

  • 対象アプリのコミットまたはビルド識別情報と、使用したXcode・macOS・iOS環境。
  • テスト開始条件、アプリの操作手順、通知とAdditional Informationの結果。
  • 許可状態と、選択後にアプリが実行した追跡関連の分岐。
  • 失敗時のログ、再現条件、未確認項目。成功した画面だけを保存して終わらせないでください。

シミュレーターで確認できた画面やアプリ内分岐は、その環境で確認した証拠として扱います。実際の配信対象地域や、シミュレーターでは再現していない条件まで証明したことにはなりません。遠隔のMacを使う場合も、利用可能なXcode、OS、テスト対象を先に確かめ、真機や特定地域の再現機能があると決めつけないでください。

リリース担当:証拠がそろうまで試験公開と本公開を分ける

最終判断では、地域の適用条件、通知の表示、利用者の選択処理、CIの再現記録を合わせて確認します。以下のチェックリストを上から確認し、分岐条件に従って公開、追加検証、保留を判断してください。

  • [ ] 配信対象国を確認し、対象国ごとの代替通知の条件を記録した。
  • [ ] Appleの現行資料とテスト時点のOS状態を確認し、ベータか正式版かを区別した。
  • [ ] 通知とAdditional Informationの経路を確認し、許可・拒否・未決定・システム設定による制限を記録した。
  • [ ] 利用者の選択後にアプリが行う追跡関連の処理を確認した。
  • [ ] Xcode、macOS、テスト対象、実行手順、結果と失敗ログを再現可能な形で保存した。

判断条件:すべての項目を確認でき、地域の適用条件から選択後の処理まで再現できた場合は、チームの通常の承認手順に進めます。未確認の項目がある場合は、該当範囲を追加検証に戻してください。システムがベータのまま、テスト条件を再現できない、またはAppleの説明が更新された場合は、影響範囲と未確認事項を記録して公開を保留します。

ベータで一度通知が出たことだけを根拠に、EU向け全体の検収完了とは判断できません。AppleのATT説明や地域条件が更新された場合は、影響する国・ビルド・テストケースを特定して再検収します。

Macを手元で保有する方法は、継続的な専有環境を持てる一方、初期購入と保守の負担があり、使わない期間も設備を抱えます。Linux環境だけではXcodeを使うApple向け検証を代替できず、短期のCI用Macを都度整える方法では、ツールチェーンの差分確認が必要です。チームに再現可能なmacOS環境がなく、必要な期間だけ検証したいなら、実機のテスト対象や利用可能なXcodeを確認したうえで、VMSPINのMacレンタル料金を比較してください。恒常的に高負荷の処理を続ける場合や物理接続が必要な場合は、自社保有のMacのほうが適することもあります。まずはVMSPINのMac環境で必要な条件を確認し、遠隔実行が要件に合う場合に限って選択肢に加えるのが堅実です。