axiom-app-store-ref について
App Store の提出要件を調べる開発者向けリファレンススキルです。メタデータ、プライバシー、審査、年齢レーティング、コンプライアンス、ビルドのアップロードを扱い、提出準備の判定や却下への対処は対象外です。
主な機能
- 01メタデータ項目と上限の確認
- 02プライバシーマニフェストと API 要件
- 03審査ガイドラインと年齢レーティング
- 04EU コンプライアンスと IAP 手順
- 05ビルドのアップロードと処理
活用シーン
- 01アプリ名やスクリーンショットの規則確認
- 02プライバシーマニフェスト項目と API 分類の確認
- 03EU DSA のトレーダー要件の調査
- 04暗号化とビルドアップロード規則の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ charleswiltgen/ axiom --skill axiom-app-store-refインストール後、Claude Code で/axiom-app-store-refを入力して読み込まれたか確認します。
同梱ファイルreferences/app-review-guidelines.mdreferences/expert-review-checklist.md
詳細
App Store 提出リファレンス
概要
App Store 提出に必要なすべての要件を網羅したリファレンスです。
- Part 1 — 必須メタデータフィールド(説明、スクリーンショット、キーワード、App Review 情報)
- Part 2 — プライバシー要件(マニフェストのスキーマ、プライバシーラベル、ATT、Required Reason API)
- Part 3 — App Review Guidelines クイックリファレンス(セクション 1~5 のすべて)
- Part 4 — 年齢レーティングシステム(5 段階、機能、地域ごとの違い)
- Part 5 — 輸出コンプライアンス(暗号化の判断フロー)
- Part 6 — アカウントと認証の要件(削除、SIWA)
- Part 7 — 収益化と IAP の提出パイプライン
- Part 8 — EU 固有のコンプライアンス(DSA トレーダーステータス)
- Part 9 — ビルドのアップロードと処理
- Part 10 — WWDC25 の変更点(ドラフト提出、アクセシビリティラベル、タグ)
このスキルを使用する場面
使用する場合
- 特定のメタデータフィールドの要件や文字数制限を調べるとき
- 特定のトピックに関する App Review ガイドラインの番号を確認するとき
- プライバシーマニフェストのスキーマフィールドや Required Reason API のカテゴリを確認するとき
- 年齢レーティングの段階と新しい機能の申告について理解するとき
- DSA トレーダーステータスに関する EU のコンプライアンス要件を確認するとき
- IAP の提出パイプラインとレビューの流れを理解するとき
- アップロード用のビルドを準備するとき(SDK 要件、暗号化、署名)
使用しない場合
- アプリを提出する準備ができているか判断するとき(app-store-submission を使用してください)
- リジェクトへの対処方法を調べるとき(app-store-diag を使用してください)
- アプリ内課金を実装するとき(storekit-ref を使用してください)
- プライバシーマニフェストのコードを記述するとき(privacy-ux を使用してください)
- アクセシビリティへの準拠を監査するとき(accessibility-diag を使用してください)
関連スキル
- app-store-submission — 提出前チェックリストとワークフローを含む実務スキル
- app-store-diag — リジェクトへの対処方法と異議申し立てのガイダンス
- privacy-ux — プライバシーマニフェストの実装、ATT の UX、アクセス許可のリクエスト
- storekit-ref — IAP 実装向けの StoreKit 2 API リファレンス
- accessibility-diag — アクセシビリティ準拠のスキャンと VoiceOver のテスト
主要用語
| 用語 | 定義 |
|---|---|
| App Store Connect | アプリのメタデータ、ビルド、価格、TestFlight、分析を管理するためのウェブポータルおよび API |
| App Review | App Review ガイドラインに照らして、すべてのアプリのアップデートを評価する Apple の人による審査プロセス |
| プライバシーマニフェスト | データ収集、トラッキングドメイン、Required Reason API の使用状況を宣言する PrivacyInfo.xcprivacy ファイル |
| Required Reason API | 使用理由の宣言が必要なシステム API(ファイルのタイムスタンプ、ディスク容量、ユーザーデフォルトなど) |
| プライバシーラベル | アプリが収集するデータとその使用方法を示す、App Store のプライバシーカード |
| DSA トレーダーステータス | EU の消費者に販売する「トレーダー」に該当するかどうかを定める EU デジタルサービス法上の分類 |
| ビルド文字列 | アップロードされた各ビルドの固有識別子(例:「1.2.3.4」)。バージョン番号とは別のもの |
| Bundle ID | Apple のエコシステム全体でアプリを一意に識別する、逆ドメイン形式の識別子(例:「com.company.app」) |
Part 1:必須メタデータフィールド
変更不可のフィールド(作成後は変更できません)
これらのフィールドは一度設定するとロックされます。慎重に選択してください。
- Bundle ID — Xcode プロジェクトと完全に一致する必要があります
- SKU — 内部識別子で、ユーザーには表示されません
- IAP Product ID — 作成後は変更も再利用もできません
- Subscription Duration — サブスクリプションの作成後はロックされます
アプリ情報
| 項目 | 必須 | ローカライズ可能 | 最大文字数 | 備考 |
|---|---|---|---|---|
| アプリ名 | はい | はい | 30 文字 | App Store で一意である必要があります |
| サブタイトル | いいえ | はい | 30 文字 | 検索結果でアプリ名の下に表示されます |
| 説明 | はい | はい | 4000 文字 | プレーンテキストのみ。HTML やリッチテキスト形式は使用できません |
| プロモーションテキスト | いいえ | はい | 170 文字 | 新しいバージョンを提出せずに編集できます |
| キーワード | はい | はい | 100 バイト | カンマ区切りで、各キーワードは 3 文字以上 |
| 新機能 | はい* | はい | 4000 文字 | *初回を除くすべてのバージョンで必須です |
| 著作権 | はい | いいえ | — | 形式:「YYYY Company Name」 |
| サポート URL | はい | はい | — | 実際の連絡先情報へのリンクである必要があります |
| マーケティング URL | いいえ | はい | — | プロモーションページは任意です |
| プライバシーポリシー URL | はい | はい | — | HTTPS で、一般にアクセス可能である必要があります |
ビジュアルアセット
| アセット | 必須 | ローカライズ可能 | 仕様 |
|---|---|---|---|
| アプリアイコン | はい | いいえ | 1024x1024 PNG、アルファチャンネルなし、角丸なし |
| スクリーンショット | はい | はい | デバイスサイズごとに、デバイスごと・ロケールごとに 2~10 枚 |
| アプリプレビュー | いいえ | はい | デバイスサイズごと・ロケールごとに最大 3 本の動画 |
スクリーンショットの要件
形式:.jpeg、.jpg、.png。デバイスサイズごと・ロケールごとに最小 1 枚、最大 10 枚です。
フォールバック:最高解像度の画像のみを用意してください。App Store が小さいサイズに自動調整します。必須:iPhone は 6.9 インチまたは 6.5 インチ、iPad は 13 インチ。
| デバイス | 縦向き | 横向き |
|---|---|---|
| iPhone 6.9"(Air、17 Pro Max、16 Pro Max) | 1260x2736 | 2736x1260 |
| iPhone 6.5"(14 Plus、13 Pro Max、XS Max) | 1284x2778 または 1242x2688 | 2778x1284 または 2688x1242 |
| iPhone 6.3"(17 Pro、16 Pro、16、15 Pro) | 1179x2556 または 1206x2622 | 2556x1179 または 2622x1206 |
| iPhone 6.1"(17e、16e、14、13、12) | 1170x2532、1125x2436、または 1080x2340 | 2532x1170、2436x1125、または 2340x1080 |
| iPhone 5.5"(8 Plus、7 Plus) | 1242x2208 | 2208x1242 |
| iPad 13"(Pro M5/M4、Air M4/M3) | 2064x2752 または 2048x2732 | 2752x2064 または 2732x2048 |
| iPad 11"(Pro、Air、mini、第 10 世代) | 1488x2266 または 1668x2420 | 2266x1488 または 2420x1668 |
| Mac | 1280x800、1440x900、2560x1600、または 2880x1800 | — |
| Apple TV | 1920x1080 または 3840x2160 | — |
| Apple Vision Pro | 3840x2160 | — |
スクリーンショットには、アプリを実際に使用している様子を表示する必要があります。タイトルアートのみ、ログイン画面、スプラッシュ画面、または他のプラットフォームの画面は使用できません。承認済みバージョンのスクリーンショットは更新できません。新しいバージョンを作成する必要があります。
アプリプレビュー動画の仕様
| 仕様 | 値 |
|---|---|
| 長さ | 15~30 秒 |
| 最大ファイルサイズ | 500 MB |
| 最大フレームレート | 30 fps |
| デバイス/ロケールごとの最大数 | 3 |
| H.264 | 10~12 Mbps、.mov/.m4v/.mp4、256 kbps AAC ステレオ |
| ProRes 422 HQ | 約 220 Mbps VBR、.mov のみ、PCM または 256 kbps AAC ステレオ |
| オーディオサンプルレート | 44.1 または 48 kHz |
| 向き | 縦向きまたは横向き(Mac/tvOS/visionOS は横向きのみ) |
注意点:処理に最大 24 時間かかる場合があります。プレビューをアップロードした直後に審査を申請しないでください。すべてのオーディオトラックを有効にする必要があります(無効なトラックがあると却下されます)。プレビューは常に、製品ページでスクリーンショットより先に表示されます。
アプリアイコンの要件
| 仕様 | 要件 |
|---|---|
| サイズ | 1024 x 1024 ピクセル |
| 形式 | PNG |
| 色空間 | sRGB または P3 |
| アルファチャンネル | 使用不可 |
| 角丸 | 使用不可(システムが自動的に適用します) |
| レイヤー/透明度 | 使用不可 |
| コンテンツ | アプリの実際のレーティングにかかわらず、4+ のレーティングに適した内容である必要があります |
アプリの審査情報
| 項目 | 必須 | 備考 |
|---|---|---|
| 連絡先の名 | はい | 審査担当者の連絡先 |
| 連絡先の姓 | はい | 審査担当者の連絡先 |
| 連絡先メールアドレス | はい | 確認できる状態にしてください |
| 連絡先電話番号 | はい | 国番号を含めてください |
| 審査に関するメモ | いいえ | 最大4000バイト。わかりにくい機能について説明してください |
| サインインユーザー名 | ログインが必要な場合 | 審査中に有効期限が切れないようにしてください |
| サインインパスワード | ログインが必要な場合 | 審査中に有効期限が切れないようにしてください |
| 添付ファイル | いいえ | 最大10ファイル、合計512 MBまで |
メタデータのルール(ガイドライン2.3)
- アプリ名は固有で、最大30文字にする必要があります
- キーワードに、商標登録された用語、人気アプリの名前、価格に関する用語(「free」、「sale」)を含めてはいけません
- スクリーンショットには、宣伝用のアートだけではなく、使用中のアプリを表示する必要があります
- アプリの評価がそれ以上であっても、アイコン、スクリーンショット、プレビューは4+の評価に適した内容にする必要があります
- 「For Kids」と「For Children」はキッズカテゴリ用に予約されています
- スクリーンショットに、他のモバイルプラットフォームの名前や画像を含めてはいけません(Androidのスマートフォン、Windowsのロゴなど)
- メタデータはアプリの機能を正確に反映する必要があります。誤解を招くメタデータは却下の理由になります
ローカライズの要件
| 項目 | 詳細 |
|---|---|
| 最低要件 | プライマリ言語が必須です。他のすべてのローカライズは任意です |
| ロケールごとのメタデータ | アプリ名、サブタイトル、説明、キーワード、「新機能」、スクリーンショット |
| プロモーションテキスト | ローカライズ可能で、新たに提出しなくても編集できます |
| スクリーンショット | ロケールごとに変更できます(ローカライズされたUIを表示) |
| アプリプレビュー | ロケールごとに変更できます(ローカライズされた音声/UIを表示) |
| URLフィールド | サポートURLとマーケティングURLはロケールごとに変更できます |
ローカライズする際は、ローカライズされたUIに合ったスクリーンショットを用意してください。審査担当者は、スクリーンショットが各ロケールのアプリを正確に表しているかを確認します。
カテゴリの選択
| プライマリカテゴリ | セカンダリカテゴリ | ルール |
|---|---|---|
| 必須 | 任意 | アプリを最も適切に表すカテゴリを選択してください |
| 正確である必要があります | プライマリカテゴリを補完できます | 不正確なカテゴリは却下の理由になります(2.3.7) |
| ゲームにはサブカテゴリがあります | — | ゲームでは、ゲームのサブカテゴリも最大2つ選択する必要があります |
利用可能なカテゴリ:ブック、ビジネス、デベロッパーツール、教育、エンターテインメント、ファイナンス、フード&ドリンク、ゲーム、グラフィック&デザイン、ヘルスケア&フィットネス、ライフスタイル、雑誌&新聞、医療、ミュージック、ナビゲーション、ニュース、写真&ビデオ、仕事効率化、辞書/辞典/その他、ショッピング、ソーシャルネットワーキング、スポーツ、旅行、ユーティリティ、天気。
パート2:プライバシー要件
プライバシーポリシー(ガイドライン5.1.1(i))
次の両方の場所に掲載する必要があります。
- App Store Connectのメタデータ(プライバシーポリシーURLフィールド)
- アプリ内(設定画面または同等の場所からアクセス可能)
プライバシーポリシーには、次の内容を記載する必要があります。
- 収集するデータとその収集方法
- 収集したデータのすべての利用目的
- 第三者との共有に関する慣行
- データの保持および削除に関するポリシー
- ユーザーが同意を撤回する方法
プライバシーマニフェストのスキーマ(PrivacyInfo.xcprivacy)
NSPrivacyTracking
NSPrivacyTrackingDomains
NSPrivacyCollectedDataTypes
NSPrivacyAccessedAPITypes
NSPrivacyCollectedDataTypesエントリ
配列内の各辞書には、次の項目が含まれます。
| キー | 型 | 説明 |
|---|---|---|
NSPrivacyCollectedDataType | 文字列 | カテゴリキー(例:「NSPrivacyCollectedDataTypeName」) |
NSPrivacyCollectedDataTypePurposes | Array<String> | このデータタイプの目的を表すキー |
NSPrivacyCollectedDataTypeLinked | ブール値 | このデータはユーザーの身元に紐付けられていますか? |
NSPrivacyCollectedDataTypeTracking | ブール値 | このデータはトラッキングに使用されますか? |
NSPrivacyAccessedAPITypesエントリ
配列内の各辞書には、次の項目が含まれます。
| キー | 型 | 説明 |
|---|---|---|
NSPrivacyAccessedAPIType | 文字列 | APIカテゴリの識別子 |
NSPrivacyAccessedAPITypeReasons | Array<String> | 使用に対して承認された理由コード |
PrivacyInfo.xcprivacyの完全な例
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrivacyTracking</key>
<false/>
<key>NSPrivacyTrackingDomains</key>
<array/>
<key>NSPrivacyCollectedDataTypes</key>
<array>
<dict>
<key>NSPrivacyCollectedDataType</key>
<string>NSPrivacyCollectedDataTypeEmailAddress</string>
<key>NSPrivacyCollectedDataTypeLinked</key>
<true/>
<key>NSPrivacyCollectedDataTypeTracking</key>
<false/>
<key>NSPrivacyCollectedDataTypePurposes</key>
<array>
<string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
</array>
</dict>
</array>
<key>NSPrivacyAccessedAPITypes</key>
<array>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>CA92.1</string>
</array>
</dict>
</array>
</dict>
</plist>
API カテゴリ識別子
| カテゴリ | 識別子文字列 |
|---|---|
| ファイルのタイムスタンプ | NSPrivacyAccessedAPICategoryFileTimestamp |
| システム起動時刻 | NSPrivacyAccessedAPICategorySystemBootTime |
| ディスク容量 | NSPrivacyAccessedAPICategoryDiskSpace |
| アクティブなキーボード | NSPrivacyAccessedAPICategoryActiveKeyboards |
| ユーザーデフォルト | NSPrivacyAccessedAPICategoryUserDefaults |
プライバシーレポートの統合生成
Xcode > Product > Archive > Generate Privacy Report
アプリと、組み込まれているすべてのフレームワークのプライバシーマニフェストをまとめた PDF が生成されます。
プライバシーマニフェストに関する注意点:
NSPrivacyCollectedDataTypeまたはNSPrivacyCollectedDataTypePurposesに独自の文字列値を指定しても Xcode によって黙って拒否されます。Apple が定義した定数を使用する必要があります- iOS 17 では、ユーザーがトラッキングを拒否すると、宣言されたトラッキングドメインへの接続が自動的にブロックされます
- IP アドレスの収集は宣言が必要です(位置情報、デバイス ID、または診断情報として)
- Web ビューによるデータ収集は宣言が必要です
- アプリ内のサードパーティ SDK が収集するすべてのデータについて、責任を負うのはお客様です
- 一部の SDK は、明示的に無効にしない限りトラッキングが有効になっており、意図しないトラッキングが発生します
- ATT の許可にかかわらず、フィンガープリンティングは決して許可されません
- 2024 年 5 月 1 日以降、必須の理由 API 宣言が不足していると、自動的に却下されます(人による審査はありません)
必須理由 API カテゴリ
| カテゴリ | 対象 API | よく使われる理由 |
|---|---|---|
| ファイルのタイムスタンプ | NSFileCreationDate、NSFileModificationDate、NSURLContentModificationDateKey | DDA9.1(ユーザーに表示する)、C617.1(アプリコンテナ内) |
| システム起動時刻 | systemUptime、mach_absolute_time | 35F9.1(経過時間を測定する) |
| ディスク容量 | NSFileSystemFreeSize、NSFileSystemSize、volumeAvailableCapacityKey | E174.1(書き込み前に確認する)、85F4.1(ユーザーに表示する) |
| アクティブなキーボード | activeInputModes | 54BD.1(キーボードに合わせて UI をカスタマイズする) |
| ユーザーデフォルト | UserDefaults(すべてのアクセスで宣言が必要) | CA92.1(アプリグループ内でアクセスする)、1C8F.1(同じアプリ内でアクセスする) |
App Privacy Details(プライバシーラベル)
データの種類
| カテゴリ | 例 |
|---|---|
| 連絡先情報 | 氏名、メールアドレス、電話番号、住所 |
| 健康とフィットネス | 健康データ、フィットネスデータ |
| 財務情報 | 支払い情報、信用情報 |
| 位置情報 | 正確な位置情報、おおよその位置情報 |
| 機微な情報 | 人種または民族に関するデータ、性的指向、宗教、生体認証情報 |
| 連絡先 | アドレス帳の連絡先 |
| ユーザーコンテンツ | 写真、動画、音声、ゲームプレイコンテンツ、カスタマーサポートのメッセージ |
| 閲覧履歴 | Web 閲覧履歴 |
| 検索履歴 | アプリ内検索履歴 |
| 識別子 | ユーザー ID、デバイス ID |
| 購入 | 購入履歴 |
| 使用状況データ | 製品とのやり取り、広告データ、アプリの起動、タップ、スクロール |
| 診断情報 | クラッシュデータ、パフォーマンスデータ |
| 周囲の環境 | 環境のスキャン(例:AR データ) |
| 身体 | 手、頭(例:visionOS のハンドトラッキング) |
利用目的のカテゴリ
| 利用目的 | 説明 |
|---|---|
| サードパーティ広告 | サードパーティ広告の表示、または広告ネットワークとの共有 |
| デベロッパの広告/マーケティング | 自社のマーケティングキャンペーン |
| 分析 | ユーザーの行動の理解と効果の測定 |
| 製品のパーソナライズ | 機能やコンテンツのおすすめのカスタマイズ |
| アプリの機能 | アプリの動作に必要(例:認証、データ同期) |
| その他 | 上記に記載されていない目的 |
トラッキングと収集の定義
「収集」とは、デバイス外にデータが送信され、現在のリクエストへの対応に必要な範囲を超えてアクセス可能になることです。デバイス上のみでの処理は収集に該当しません。
「トラッキング」とは、次のいずれかを指します。
- 広告または測定のために、アプリのユーザー/デバイスデータをサードパーティのデータと結び付けること、または
- ユーザー/デバイスデータをデータブローカーと共有すること
App Tracking Transparency(ATT)
Apple の上記の定義における「トラッキング」をアプリが行う場合に必須です。
- Info.plist に
NSUserTrackingUsageDescriptionを追加します(トラッキングが必要な理由を説明します) - トラッキングの前に
ATTrackingManager.requestTrackingAuthorization()を呼び出します - 結果を尊重します。
.authorized— ユーザーがトラッキングを許可しています.denied— ユーザーがトラッキングを拒否しています。トラッキングを行わないでください.notDetermined— ユーザーにまだ確認していません.restricted— デバイスレベルの制限によりトラッキングできません
初回起動時ではなく、状況に適したタイミングでリクエストしてください。
一般的な用途説明文字列(NS*UsageDescription)
アプリがリクエストするシステム権限ごとに、以下の Info.plist キーを設定する必要があります。
| 権限 | Info.plist キー |
|---|---|
| カメラ | NSCameraUsageDescription |
| マイク | NSMicrophoneUsageDescription |
| 写真ライブラリ(読み取り) | NSPhotoLibraryUsageDescription |
| 写真ライブラリ(書き込み) | NSPhotoLibraryAddUsageDescription |
| 位置情報(使用中のみ) | NSLocationWhenInUseUsageDescription |
| 位置情報(常に) | NSLocationAlwaysAndWhenInUseUsageDescription |
| 連絡先 | NSContactsUsageDescription |
| カレンダー(フルアクセス) | NSCalendarsFullAccessUsageDescription |
| リマインダー(フルアクセス) | NSRemindersFullAccessUsageDescription |
| ヘルスケア | NSHealthShareUsageDescription、NSHealthUpdateUsageDescription |
| モーション | NSMotionUsageDescription |
| Bluetooth | NSBluetoothAlwaysUsageDescription |
| Face ID | NSFaceIDUsageDescription |
| ローカルネットワーク | NSLocalNetworkUsageDescription |
| トラッキング | NSUserTrackingUsageDescription |
| 音声認識 | NSSpeechRecognitionUsageDescription |
| Apple Music | NSAppleMusicUsageDescription |
用途説明文字列が欠落していると、直ちに却下されます。用途説明文字列では、アプリの機能に照らして、その権限が必要な理由を明確に説明する必要があります。
サードパーティ SDK のプライバシーマニフェスト
Apple は、プライバシーマニフェストが必要な、一般的に使用される SDK の一覧を管理しています。2024 年春以降、これらの SDK をプライバシーマニフェストなしでアプリに含めると、提出時にフラグが付けられます。
サードパーティ SDK には、フレームワークバンドル内に独自の PrivacyInfo.xcprivacy を含める必要があります。集約されたプライバシーレポートには、アプリおよび埋め込みフレームワークのすべてのマニフェストがまとめられます。
サードパーティ SDK にプライバシーマニフェストが含まれていない場合は、そのデータ収集をアプリのプライバシーマニフェストで宣言する必要があります。
パート 3:App Review ガイドラインのクイックリファレンス
ガイドラインの全項目(セクション 1~5)については、references/app-review-guidelines.md を参照してください。
よくある却下理由
却下理由の上位 10 件と割合をまとめた表全体については、references/app-review-guidelines.md を参照してください。
App Review の所要時間
| 段階 | 目安 |
|---|---|
| 審査待ち | 数分~数時間 |
| 審査中 | 数分~24 時間 |
| 合計(90 パーセンタイル) | 24 時間未満 |
| 合計(例外的なケース) | 最長 7 日 |
| 優先審査 | 当日~24 時間(承認された場合) |
祝日や主要な iOS リリース時期には審査時間が長くなります。それに応じて提出計画を立ててください。
パート 4:年齢制限システム
5 段階の年齢制限システム(2026 年 1 月 31 日更新)
| レーティング | 該当条件 |
|---|---|
| 4+ | 問題となる内容なし |
| 9+ | まれ、または軽度の不適切な言葉、漫画・ファンタジーの暴力、恐怖を与えるテーマ。ルートボックスあり |
| 13+ | 頻繁、または強度の高い不適切な言葉や下品なユーモア。まれに、アルコール・タバコ・薬物への言及、性的な内容・ヌード、リアルな暴力あり |
| 16+ | 制限のないウェブアクセス、医療・治療情報が頻繁に表示される、成人向け・示唆的なテーマ |
| 18+ | 頻繁、または強度の高いアルコール・タバコ・薬物の使用、性的な内容・ヌード、リアルな暴力。現金要素を伴うギャンブルのシミュレーション |
| レーティングなし | 質問票を完了しないとアプリを公開できません |
機能の申告(新規、WWDC25)
アプリに以下の機能が含まれる場合、申告する必要があります。
| 機能 | 申告が必要な場合 |
|---|---|
| メッセージング/チャット | アプリ内でユーザー間のメッセージをやり取りできる場合 |
| ユーザー生成コンテンツ | ユーザーが他のユーザーに公開されるコンテンツを投稿、共有、またはアップロードできる場合 |
| 広告 | アプリにいずれかの広告ネットワークの広告が表示される場合 |
| ペアレンタルコントロール | アプリに保護者による制限機能またはファミリー向け機能がある場合 |
| 年齢確認 | 制限対象のコンテンツについてユーザーの年齢を確認する場合 |
これらの申告は、App Store の製品ページに年齢レーティングとともに表示され、保護者やユーザーに追加の透明性を提供します。
地域ごとの違い
年齢レーティングは地域によって対応が異なります。
| Apple のレーティング | オーストラリア | ブラジル | 韓国 | ドイツ(USK) |
|---|---|---|---|---|
| 4+ | 4+ | L(全年齢) | 全年齢 | 0 |
| 9+ | 9+ | A10 | 12+ | 6 |
| 13+ | 13+ | A12 | 15+ | 12 |
| 16+ | 15+ | A16 | 19+ | 16 |
| 18+ | R 18+ | A18 | 19+ | 18 |
年齢レーティングの質問票は、回答に基づいて地域ごとの適切なレーティングを自動的に生成します。
年齢レーティングのベストプラクティス
- 質問票には慎重に回答してください。実際より低いレーティングを申告すると、却下につながります。
- アプリが制限のないウェブコンテンツにアクセスする場合(コンテンツフィルターのない WebView)、最低でも 16+ のレーティングになります。
- UGC アプリは通常、モデレーション要件により最低でも 13+ が必要です。
- シミュレートされたギャンブル(実際のお金を使わない場合も含む)には、少なくとも 9+ が必要です。
- ゲームプレイにおけるリアルな暴力表現には、少なくとも 13+ が必要です。
年齢レーティング質問票の項目
質問票では、以下のコンテンツカテゴリが対象になります。
| カテゴリ | 選択肢 |
|---|---|
| カートゥーンまたはファンタジーの暴力 | なし、まれ/軽度、頻繁/強度が高い |
| リアルな暴力 | なし、まれ/軽度、頻繁/強度が高い |
| 罵り言葉または下品なユーモア | なし、まれ/軽度、頻繁/強度が高い |
| 成人向け/性的示唆のあるテーマ | なし、まれ/軽度、頻繁/強度が高い |
| アルコール、タバコ、薬物の使用または言及 | なし、まれ/軽度、頻繁/強度が高い |
| 性的コンテンツおよびヌード | なし、まれ/軽度、頻繁/強度が高い |
| ホラー/恐怖を感じさせるテーマ | なし、まれ/軽度、頻繁/強度が高い |
| シミュレートされたギャンブル | なし、まれ/軽度、頻繁/強度が高い |
| 医療/治療に関する情報 | なし、まれ/軽度、頻繁/強度が高い |
| 制限のないウェブアクセス | はい/いいえ |
システムは、回答に基づいてすべての地域におけるアプリの年齢レーティングを自動的に算出します。
パート 5:輸出コンプライアンス
3 段階の暗号化システム
| 段階 | 暗号化の種類 | 必要な書類 |
|---|---|---|
| 免除対象 | Apple OS に組み込まれた機能(URLSession による HTTPS、AES データ保護、CryptoKit、Keychain、Secure Enclave) | 不要 — ITSAppUsesNonExemptEncryption = NO を設定 |
| 標準 | 業界標準のアルゴリズム(IEEE、IETF、ISO、ITU、ETSI、3GPP が承認) | フランスで配布する場合のみ、フランスの ANSSI への申告 |
| 独自 | 標準化団体に採用されていない、独自または未公開のアルゴリズム | 米国の CCATS + フランスで配布する場合はフランスへの申告 |
暗号化の判断フローチャート
Does your app use encryption?
├── No → ITSAppUsesNonExemptEncryption = NO → Done
├── Only Apple OS encryption (HTTPS, Keychain, CryptoKit)?
│ ├── Yes → ITSAppUsesNonExemptEncryption = NO → Done
│ │ (May need annual BIS self-classification report)
│ └── No → Industry-standard algorithm (AES, RSA, etc.)?
│ ├── Yes → ITSAppUsesNonExemptEncryption = YES
│ │ French declaration if distributing in France
│ │ Upload docs → receive ITSEncryptionExportComplianceCode
│ └── No (custom/proprietary) →
│ ITSAppUsesNonExemptEncryption = YES
│ US CCATS required (~2 business days)
│ French declaration if France
│ Upload docs → receive ITSEncryptionExportComplianceCode
Info.plist のキー
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>ITSAppUsesNonExemptEncryption</key>
<true/>
<key>ITSEncryptionExportComplianceCode</key>
<string>YOUR_COMPLIANCE_CODE</string>
Info.plist で ITSAppUsesNonExemptEncryption を設定すると、提出のたびに暗号化に関する質問票に回答する必要がなくなります。
免除対象となる暗号化の用途
書類は不要です。
- HTTPS/TLS(URLSession、Network.framework、WKWebView)
- Secure Enclave、Keychain、生体認証
- Apple のドキュメントに準拠した CryptoKit、Security.framework
- パスワードのハッシュ化(bcrypt、scrypt、PBKDF2)
免除対象外となる暗号化の用途
書類が必要です。
- 独自の暗号化アルゴリズム
- 標準規格に準拠しない目的での OpenSSL、libsodium の使用
- エンドツーエンド暗号化メッセージング
- VPN の実装
- 独自の DRM システム
フランス固有の要件
輸出入は ANSSI によって規制されています。銀行アプリと医療アプリは免除対象です。対象となる用途:セキュアストレージ、セキュア通信、セキュリティ/ウイルス対策アプリ。
パート 6:アカウントと認証
アカウント削除(2022 年 6 月以降必須)
アカウント作成に対応するアプリは、アカウント削除を提供する必要があります。要件は次のとおりです。
| 要件 | 詳細 |
|---|---|
| 完全な削除 | アカウントを無効化するだけでなく、完全に削除する必要があります |
| 見つけやすさ | アプリの設定からアクセスできる必要があります。サポートへの問い合わせの先に隠してはいけません |
| 所要時間の案内 | 削除にかかる時間をユーザーに伝えます |
| 完了の通知 | 削除が完了したらユーザーに通知します |
| 共有 UGC の削除 | 他のユーザーと共有したユーザー生成コンテンツにも対応する必要があります |
| SIWA トークンの取り消し | Sign in with Apple アカウントの場合は、Apple のトークン取り消しエンドポイントを呼び出します |
| サブスクリプションへの対応 | 有効なサブスクリプションがある場合は警告し、サブスクリプション管理へ案内します |
Sign in with Apple トークンの取り消し
// Server-side: revoke SIWA tokens when account deleted
// POST https://appleid.apple.com/auth/revoke
// Parameters: client_id, client_secret, token, token_type_hint
アカウント削除時に SIWA トークンを取り消さないことは、よくある却下理由です。
Sign in with Apple(ガイドライン 4.8)
必須となる場合: アプリがサードパーティーまたはソーシャルログインの方法(Google、Facebook、Twitter、サードパーティープロバイダー経由のメールアドレス/パスワードなど)を 1 つでも提供している場合。
例外 — SIWA が不要な場合
- 会社の従業員のみを対象とするアプリ(社内向けエンタープライズアプリ)
- 既存の機関認証を使用する教育機関向けまたはエンタープライズ向けアプリ
- 政府または業界が支援する市民 ID システムを使用するアプリ
- 特定のサードパーティーサービス向けのクライアント(例:Gmail アプリ、Slack)
SIWA が必須の場合は、ほかのサインイン方法と並べて、同等に目立つ選択肢として提供する必要があります。隠したり、視覚的な強調を弱めたりしてはいけません。
アカウント削除の実装チェックリスト
| 手順 | 詳細 |
|---|---|
| 1. UI の入り口を追加 | 設定画面に「アカウントを削除」と明確に表示します |
| 2. 削除の影響を説明 | 削除されるもの(データ、サブスクリプション、購入)を表示します |
| 3. 確認を必須にする | ユーザーが削除を明示的に確認する必要があります |
| 4. 有効なサブスクリプションに対応 | 削除前に有効なサブスクリプションを解約するようユーザーに案内します |
| 5. 削除を処理 | サーバーからすべてのユーザーデータを削除します |
| 6. SIWA トークンを取り消す | SIWA が使用されていた場合は、Apple の取り消しエンドポイントを呼び出します |
| 7. ユーザーに確認 | 削除が完了したら、メールまたはアプリ内で確認を通知します |
| 8. 所要時間を定める | 削除にかかる時間(即時、30 日など)を明記します |
Apple は、次のようなアプリを明確に却下します。
- アカウント削除のために電話番号への発信をユーザーに求める
- 削除を申請するためにユーザーにメールの送信を求める
- 完全な削除ではなく、アカウントの無効化(プロフィールの非表示)のみを提供する
- SIWA トークンの取り消しに対応しない
パート 7:収益化と IAP
IAP の審査提出プロセス
アプリ内課金には、アプリの提出とは別の審査プロセスがあります。
| ケース | 動作 |
|---|---|
| 初めての IAP | 新しいアプリバージョンの提出に含める必要があります |
| 2 回目以降の IAP | アプリのアップデートとは別に提出できます |
| IAP メタデータの変更 | 個別に審査へ提出します |
| IAP 価格の変更 | 審査なしで反映されます |
必須の IAP メタデータ
| フィールド | 必須 | 備考 |
|---|---|---|
| 参照名 | はい | 内部名(ユーザーには表示されません) |
| 製品 ID | はい | 一意である必要があり、削除後に再利用できません |
| 種類 | はい | 消耗型、非消耗型、自動更新サブスクリプション、非更新サブスクリプション |
| 価格 | はい | Apple の価格帯から選択します |
| 表示名 | はい | ローカライズ可能で、ユーザーに表示されます |
| 説明 | はい | ローカライズ可能で、ユーザーに表示されます |
| スクリーンショット | はい | IAP の使用状況を示すスクリーンショット 1 枚 |
| 審査メモ | いいえ | IAP で利用可能になる機能を説明します |
IAP のステータスフロー
Missing Metadata → Ready to Submit → Waiting for Review → In Review → Approved
→ Rejected
アプリの提出に含めるには、IAP のステータスが「提出準備完了」である必要があります。
サブスクリプションのルール(ガイドライン 3.1.2)
| ルール | 詳細 |
|---|---|
| 継続的な価値 | サブスクリプションは、時間の経過とともに継続的な価値を提供する必要があります |
| 最低期間 | サブスクリプション期間は最低 7 日間です |
| 複数デバイス対応 | アプリを利用できるユーザーのすべてのデバイスで動作する必要があります |
| 条件の明示 | 価格、期間、自動更新、キャンセルについて明確に提示する必要があります |
| 機能の削除禁止 | サブスクリプションを強制するために、以前に有料で提供した機能を削除することはできません |
| 猶予期間 | 請求の猶予期間に対応する必要があります(再試行中もユーザーはアクセスを維持できます) |
| アップグレード/ダウングレード | サブスクリプショングループ内でプランを変更できる必要があります |
ルートボックス(ガイドライン 3.1.1)
ルートボックスやランダムなアイテムの仕組みを提供するアプリは、購入前に各種類のアイテムが当たる確率を開示する必要があります。
外部決済の対象
| カテゴリ | ガイドライン | 許可される内容 |
|---|---|---|
| リーダーアプリ | 3.1.3(a) | 購入済みコンテンツ(雑誌、新聞、書籍、オーディオ、音楽、動画)を利用するためのウェブサイトへのリンク |
| マルチプラットフォームサービス | 3.1.3(b) | クロスプラットフォームのサブスクリプション(例:Netflix、Spotify) |
| エンタープライズサービス | 3.1.3(c) | 個人消費者ではなく、組織向けの B2B アプリ |
| 個人間サービス | 3.1.3(d) | リアルタイムの 1 対 1 サービス(個別指導、コンサルティング、ライドシェア) |
| 物理的な商品/サービス | 3.1.3(e) | アプリ外で消費される商品(フードデリバリー、衣料品、物理的なサブスクリプション) |
これらのカテゴリのアプリは、IAP システム以外で決済を受け付けることができます。
サブスクリプショングループの構成
| 概念 | 詳細 |
|---|---|
| サブスクリプショングループ | 関連するサブスクリプションの階層(例:Basic、Pro、Premium)の集合 |
| サービスレベル | グループ内の順位。アップグレード/ダウングレードの動作を決定します |
| アップグレード | より高いサービスレベルへの移行(即時、日割り計算) |
| ダウングレード | より低いサービスレベルへの移行(次回更新時に適用) |
| クロスグレード | 同じサービスレベルで期間を変更(毎月 ↔ 毎年) |
| ファミリー共有 | サブスクリプショングループごとに有効化できます |
サブスクリプションの価格設定
| 機能 | 詳細 |
|---|---|
| 価格帯 | Apple は 175 以上のストアフロントで 900 以上の価格ポイントを提供しています |
| 価格の均等化 | Apple は通貨間の価格を自動的に均等化します |
| カスタム価格設定 | ストアフロントごとにカスタム価格を設定できます |
| 導入オファー | 無料トライアル、従量課金、前払い |
| プロモーションオファー | 既存の登録者または登録を終了した登録者向け。サーバー署名付き JWS が必要です |
| 再獲得オファー | 登録を終了した登録者向け。システムによって自動的に表示されます |
| オファーコード | 無料または割引価格でのアクセスに利用できる配布可能なコード |
サブスクリプションの購入を復元
すべてのサブスクリプションアプリは、購入を復元する機能を実装する必要があります。これは App Review 中にテストされます。次の方法で実装してください。
try await AppStore.sync()
購入を復元する機能がない、または正常に動作しない場合、アプリは却下されます。
無料トライアルのベストプラクティス
| プラクティス | 詳細 |
|---|---|
| 期間の表示 | ユーザーが申し込む前に、トライアル期間を明確に表示します |
| トライアル後の価格 | トライアル終了後に請求される価格を表示します |
| キャンセル | トライアル終了前のキャンセル方法を説明します |
| ダークパターンの禁止 | キャンセルを難しくしたり、見つけにくくしたりしないでください |
| リマインダー | トライアル終了前にプッシュ通知を送信することを検討してください |
パート 8:EU 固有のコンプライアンス
デジタルサービス法(DSA)におけるトレーダーステータス
対象: EU(27 加盟国)で配信されるすべてのアプリ
日程: 2025 年 2 月 17 日以降、トレーダーステータスが申告されていないアプリは、EU の App Store から削除される対象となります。
トレーダーステータスとは?
自己評価です。EU の消費者に商品やサービスを販売する「トレーダー」として活動しているのか、それとも趣味、オープンソース、非商用の「非トレーダー」なのかを判断します。Apple がこれを判断することはできません。
トレーダーの要件
トレーダーとして申告する場合、次の情報を提供する必要があります。
| フィールド | 必須 | 確認方法 |
|---|---|---|
| 法的氏名 | はい | — |
| 住所 | はい | — |
| 電話番号 | はい | 2FA による確認 |
| メールアドレス | はい | 2FA による確認 |
| 会社登録情報 | 該当する場合 | — |
| VAT ID | 該当する場合 | — |
この連絡先情報は、EU 向けの商品ページに表示されます。
App Store Connect での申告
App Store Connect > Users and Access > Developer Profile > Trader Status
各アプリについて、トレーダーとしてのステータスを選択します。有料アプリと無料アプリの両方がある場合、アプリごとに異なる分類を設定できます。
EU での代替配信
デジタル市場法(DMA)に基づき、Apple は EU での代替アプリ配信を認めています。
- 代替アプリマーケットプレイス
- Web 配信(公証済みアプリ)
- 代替決済処理
これらを利用するには、別途ビジネス条件(Alternative Terms Addendum)への同意と、追加のコンプライアンス手順が必要です。詳しくは、Apple の EU 開発者向けドキュメントをご覧ください。
EU 加盟 27 か国
次のいずれかの地域で配信されるアプリは、DSA への準拠が必要です。
オーストリア、ベルギー、ブルガリア、クロアチア、キプロス、チェコ、デンマーク、エストニア、フィンランド、フランス、ドイツ、ギリシャ、ハンガリー、アイルランド、イタリア、ラトビア、リトアニア、ルクセンブルク、マルタ、オランダ、ポーランド、ポルトガル、ルーマニア、スロバキア、スロベニア、スペイン、スウェーデン。
アプリが「すべての地域」で利用可能な場合(デフォルト)、EU でも利用可能となるため、DSA への準拠が必要です。
パート 9:ビルドのアップロードと処理
アップロード方法
| 方法 | 最適な用途 |
|---|---|
| Xcode(推奨) | ほとんどの開発者。アーカイブのワークフローと統合されています |
| Xcode Cloud | ビルドと配信を自動化する CI/CD |
| Transporter | 複数のビルドを一括アップロードできる単体の macOS アプリ |
| altool(CLI) | スクリプト化された CI/CD パイプライン |
| App Store Connect API | ワークフローの完全な自動化 |
ビルド識別子
| 識別子 | 目的 | 例 | ルール |
|---|---|---|---|
| バンドル ID | アプリを一意に識別します | com.company.app | 一度設定すると変更できません |
| バージョン番号 | ユーザー向けのバージョン | 2.1.0 | リリースごとに増やす必要があります |
| ビルド文字列 | 同じバージョンのビルドを区別します | 2.1.0.42 | プラットフォームごとに、バージョン内で一意である必要があります |
ビルドの選択
- バージョンごとに選択できるビルドは 1 つだけです
- バージョンを審査に提出するまで、ビルドの選択を変更できます
- 「Missing Compliance」ステータスの場合、輸出コンプライアンスに関する質問に回答するまでビルドを選択できません
SDK の要件
| 発効日 | 要件 |
|---|---|
| 2025 年 4 月(現在) | Xcode 16、iOS 18 SDK |
| 2026 年 4 月 28 日(予定) | Xcode 26、iOS 26 SDK |
古い SDK でビルドされたアプリは、新規提出について発効日以降に却下されます。ストアで公開中の既存アプリは、アップデートを提出するまでは影響を受けません。
ビルド処理
アップロード後、Apple がビルドを処理します。
- アップロード — バイナリを Apple に転送します(サイズに応じて 5~30 分)
- 処理 — Apple がバイナリを検証し、自動チェックを実行します(15~60 分)
- 利用可能 — ビルドが App Store Connect に表示され、TestFlight または提出に利用できる状態になります
- メール通知 — 処理の完了時または失敗時に送信されます
よくある処理失敗の原因:
- 必須アーキテクチャの不足(arm64 が必要)
- プロビジョニングプロファイルまたは署名 ID が無効
- Apple のリストにあるサードパーティ SDK のプライバシーマニフェストが不足
- Info.plist に必須キーが不足
- バイナリが大きすぎる(OTA ダウンロードの上限:モバイル通信で 200 MB)
IPv6 互換性
すべてのアプリは IPv6 のみのネットワークで動作する必要があります。Apple の審査環境では IPv6 が使用されます。よくある問題:
- IPv4 アドレスのハードコード
- 高水準のネットワーク機能ではなく、低水準のソケット API を使用している
- IPv4 のみを前提とするコードを含むサードパーティ SDK
URLSession または Network.framework を使用すると、IPv6 互換性を自動的に確保できます。
App Thinning と Bitcode
| トピック | 状況 |
|---|---|
| Bitcode | Xcode 14 以降で非推奨となり、受け付けられなくなりました |
| App Thinning | 有効です。Apple がデバイスごとのバリアントを生成します |
| On-Demand Resources | 有効です。オンデマンドでダウンロードするリソースにタグを付けます |
| アセットカタログ | 画像(1x/2x/3x)の App Thinning に使用されます |
エンタイトルメントと機能
一部の機能では、Xcode とプロビジョニングプロファイルでエンタイトルメントを設定する必要があります。
| 機能 | エンタイトルメント | よくある問題 |
|---|---|---|
| プッシュ通知 | aps-environment | 証明書の期限切れ、プロビジョニングの不足 |
| App Groups | com.apple.security.application-groups | 共有コンテナ ID の不一致 |
| Associated Domains | com.apple.developer.associated-domains | AASA ファイルが正しく配信されない |
| HealthKit | com.apple.developer.healthkit | 必要な機能が不足している |
| バックグラウンドモード | UIBackgroundModes | 正当な理由なくモードを使用している |
| Apple でサインイン | com.apple.developer.applesignin | プロビジョニングプロファイルに含まれていない |
| CloudKit | com.apple.developer.icloud-services | コンテナ ID の不一致 |
| アプリ内課金 | — | デフォルトで有効です。テストには StoreKit の設定が必要です |
TestFlight への提出
| 項目 | 内部テスト | 外部テスト |
|---|---|---|
| テスター | ASC ユーザー最大 100 人 | メール/公開リンク経由で最大 10,000 人 |
| 審査の必要性 | いいえ | はい(バージョンごとの最初のビルドは完全な App Review が必要です) |
| 審査時間 | — | 通常 24 時間以内 |
| ビルドの有効期限 | アップロードから 90 日 | アップロードから 90 日 |
| グループ | 自動(ASC のロール) | 「テスト内容」のメモを設定できるカスタムグループ |
| フィードバック | クラッシュレポート | スクリーンショット、テキストフィードバック、クラッシュレポート |
| 提出制限 | — | 24 時間あたり最大 6 ビルド |
TestFlight の準備チェックリスト:
- 内部テスターグループが存在する(外部グループの作成前に必要)
- ベータ版 App の説明が設定されている(製品版とは異なる内容にできます)
- フィードバック用メールアドレスが設定されている
- 各外部グループの「テスト内容」のメモが記載されている
- 輸出コンプライアンスへの回答が済んでいる(ベータビルドでも必要)
- デモ用認証情報が含まれている(ログインが必要な場合)
- 最初の外部ビルドでは、完全な App Review が行われることを想定する(ガイドラインへの準拠が確認されます)
注意点:
- Xcode/Xcode Cloud から「TestFlight 内部のみ」としてアップロードしたビルドは、内部グループにのみ配信できます
- 管理対象 Apple Account(School/Business Manager)はテスターになれません
- 公開リンクのテスター上限は、リンクごとに設定できます(1~10,000 人)
- App Store でアプリが公開された後も、ビルドはテスト可能です
- 開発者は 90 日より前にビルドを手動で期限切れにできます
Part 10:WWDC25 の変更点
下書き提出(WWDC 2025-328)
複数の項目を 1 つの下書き提出にまとめます。
- アプリのバージョン+新しい IAP+プロダクトページの変更
- 個別に提出する代わりに、すべてをまとめて審査に出します
- 下書き状態:項目を時間をかけて準備し、準備ができたら提出します
失敗時にビルド番号を再利用可能
バイナリの問題ではなくメタデータの問題でビルドが却下された場合、再アップロードせずに同じビルドを再利用できます。以前は、却下されたビルドには新しいビルド文字列が必要でした。
エラーによる却下後もビルドを保持
特定の種類の却下後も、ビルドは App Store Connect から削除されなくなりました。メタデータの問題を修正し、同じビルドで再提出できます。
アクセシビリティに関する栄養成分表示
アクセシビリティ機能に関する App Store の新しいメタデータです。
- アプリがサポートするアクセシビリティ機能を申告します
- App Store のプロダクトページに表示されます
- カテゴリには VoiceOver のサポート、Dynamic Type、スイッチコントロールなどが含まれます
- ユーザーがアクセシビリティのニーズに合うアプリを見つけやすくします
App Store タグ(LLM による生成、編集可能)
Apple は AI を使ってアプリの説明的なタグを生成します。
- タグはプロダクトページに表示されます
- 提案されたタグを確認して編集できます
- タグによって検索で見つけやすくなります
- アプリのメタデータ、説明、機能に基づいて生成されます
カスタムプロダクトページのキーワード
プロダクトページごとに固有のキーワードを設定できるようになりました。
- カスタムプロダクトページごとに異なるキーワードを設定できます
- 異なるオーディエンスへのターゲティングが改善されます
- 各カスタムページが異なる検索結果に表示される可能性があります
オファーコードの対象拡大
オファーコードがすべての IAP タイプに対応するようになりました。
- 消費型
- 非消費型
- 非更新サブスクリプション
- 自動更新サブスクリプション(従来から対応)
レビューの要約(AI 生成)
Apple がユーザーレビューの AI 要約を生成します。
- レビュー全体に共通するテーマを要約します
- プロダクトページに表示されます
- 新しいレビューが届くと更新されます
- ユーザーがアプリの品質やよくあるフィードバックをすばやく把握できるようになります
アナリティクスの拡充
100 以上の新しいアナリティクス指標が追加されます。次のものが含まれます。
- 予約注文のコンバージョンファネル
- カスタムプロダクトページのパフォーマンス比較
- サブスクリプションのライフサイクル指標(トライアルから有料へのコンバージョン、解約のタイミング)
- ピアグループのベンチマーク(類似アプリとのパフォーマンス比較)
- ダウンロードソースのアトリビューションの改善
年齢制限指定の全面刷新
新しい機能の申告を含む 5 段階のシステムです(詳細はパート 4 をご覧ください)。
カスタムプロダクトページ(既存機能、WWDC25 で強化)
カスタムプロダクトページを使うと、オーディエンスごとに異なる App Store の表示内容を用意できます。
| 機能 | 詳細 |
|---|---|
| 最大数 | アプリごとに最大 35 件のカスタムプロダクトページ |
| カスタマイズ可能 | スクリーンショット、アプリのプレビュー、プロモーション用テキスト |
| カスタマイズ不可 | アプリ名、アイコン、説明、最新情報 |
| URL | アトリビューション用の、カスタムページごとの固有 URL |
| キーワード | WWDC25 で追加:カスタムプロダクトページごとに固有のキーワード |
| アナリティクス | ページごとのインプレッション、ダウンロード、コンバージョン率 |
App Store の価格変更
| 機能 | 詳細 |
|---|---|
| 900 以上の価格ポイント | 従来の 87 段階から拡大 |
| 世界各地域での価格調整 | 地域別価格設定に基づく自動通貨換算 |
| カスタム価格設定 | 特定のストアフロントで自動調整を上書き |
| 値上げ | 既存のサブスク登録者に通知されます。50%を超える値上げには同意が必要です |
| 地域別価格設定 | 各市場の購買力に合わせて最適化された価格を設定 |
エキスパートレビューのチェックリスト
包括的な 9 セクションの提出チェックリストについては、references/expert-review-checklist.md をご覧ください。
各分野に特化した提出前ワークフローについては、app-store-submission をご覧ください。
トラブルシューティング
よくある提出時の問題 10 件
| # | 問題 | 原因 | 解決方法 |
|---|---|---|---|
| 1 | ビルドに「Missing Compliance」と表示される | 輸出コンプライアンスの質問に未回答 | App Store Connect > ビルド > 暗号化に関する質問に回答 |
| 2 | ビルドが ASC に表示されない | 処理の遅延または失敗 | 15~60 分待ち、処理エラーに関するメールを確認 |
| 3 | 「Add for Review」ボタンがグレー表示される | 必須メタデータが不足 | App Information と Version Information の必須項目をすべて確認 |
| 4 | スクリーンショットのサイズが正しくない | デバイス仕様との不一致 | デバイスの各サイズクラスに正確なピクセル寸法を使用 |
| 5 | プライバシーポリシーの URL が無効 | HTTPS ではない、または一般公開されていない | ログインなしでアクセスできる https:// URL が必要です |
| 6 | IAP を審査に提出できない | IAP が「Ready to Submit」ステータスではない | スクリーンショットを含む IAP メタデータをすべて入力し、ステータスを設定 |
| 7 | 年齢制限指定に関する警告 | 質問票が未完了、または機能が申告されていない | 質問票を完了し、新しい機能に関する質問に回答 |
| 8 | DSA のトレーダーステータスが未完了 | メールアドレスまたは電話番号が未確認 | メールアドレスと電話番号の両方で 2FA 認証を完了 |
| 9 | ビルド文字列の競合 | 同じバージョンに重複するビルド文字列がある | ビルドをアップロードするたびに、一意のビルド文字列を使用 |
| 10 | 「In Review」の状態が長期間続く | 複雑な審査、または休暇期間中の審査待ち | アプリの 90% は 24 時間未満で審査されます。重大または緊急の問題には迅速審査を利用 |
却下への対応(迅速審査、異議申し立て、Resolution Center)については、app-store-diag の Pattern 7 をご覧ください。
提出前テストのチェックリストについては、app-store-diag または app-store-submission をご覧ください。
提出向け App Store Connect API
自動提出ワークフロー向け:
| エンドポイント | 用途 |
|---|---|
POST /v1/appStoreVersions | 新しいバージョンを作成 |
PATCH /v1/appStoreVersions/{id} | バージョンのメタデータを更新 |
POST /v1/appStoreVersionSubmissions | バージョンを審査に提出 |
GET /v1/apps/{id}/appStoreVersions | すべてのバージョンを一覧表示 |
POST /v1/appScreenshots | スクリーンショットをアップロード |
POST /v1/appPreviews | アプリのプレビュー動画をアップロード |
GET /v1/apps/{id}/builds | 処理済みのビルドを一覧表示 |
認証には、App Store Connect の API キーが必要です(Users and Access > Integrations > App Store Connect API)。
リソース
WWDC:2022-10166、2025-224、2025-241、2025-252、2025-328
ドキュメント:/app-store/review/guidelines、/app-store/submitting、/app-store/app-privacy-details、/help/app-store-connect
スキル:app-store-submission、app-store-diag、privacy-ux、storekit-ref、accessibility-diag