app-store-preflight-skills について
iOS と macOS のプロジェクトを、提出前に App Store のよくある却下要因に照らして確認するエージェントスキルです。アプリ種別ごとのチェックリストやルールの確認手順、報告形式、一部の自動修正案を提供します。
主な機能
- 01アプリ種別ごとのガイドライン一覧
- 02メタデータとルールの確認手順
- 03重大度順の事前審査レポート
- 04一部の問題への修正案
活用シーン
- 01App Store 提出前のアプリ確認
- 02サブスクリプションとプライバシー要件の確認
- 03メタデータの文字数やリンクの問題検出
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ truongduy2611/ app-store-preflight-skills --skill app-store-preflight-skillsインストール後、Claude Code で/app-store-preflight-skillsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdLICENSEreferences/guidelines/README.mdreferences/guidelines/by-app-type/health_fitness.mdgames.mdkids.mdcrypto_finance.mdmacos.mdall_apps.mdai_apps.mdsocial_ugc.mdvpn.mdsubscription_iap.mdreferences/rules/design/minimum_functionality.mdhidden_features.mdsign_in_with_apple.mdreferences/rules/entitlements/unused_entitlements.mdreferences/rules/metadata/accurate_metadata.mdchina_storefront.mdapple_trademark.mdsubscription_metadata.mdreview_notes_new_submission.mdreview_notes_template.mdcompetitor_terms.mdreferences/rules/privacy/privacy_manifest.mdthird_party_ai_consent.mdunnecessary_data.mdreferences/rules/subscription/misleading_pricing.mdmissing_tos_pp.md詳細
App Store 提出前チェックのスキル
iOS/macOS プロジェクトの提出前チェックを実施し、App Store でよくあるリジェクトのパターンを検出します。
前提条件
- asc CLI — Homebrew でインストールします:
brew install asc(App-Store-Connect-CLI) - ASC CLI Skills —
ascの使用パターンについては、app-store-connect-cli-skills を参照してください - jq — 任意ですが、ルールのドキュメントにある一部の JSON 検査例で使用します
ステップ 1:アプリの種類を特定 → チェックリストを読み込む
references/guidelines/by-app-type/ から該当するチェックリストを読み込み、適用されるガイドラインを特定します。必ず最初に all_apps.md を読み込み、その後、アプリの種類に固有のチェックリストを追加してください。
| アプリの種類 | チェックリスト |
|---|---|
| すべてのアプリ | references/guidelines/by-app-type/all_apps.md |
| サブスクリプション/IAP | references/guidelines/by-app-type/subscription_iap.md |
| ソーシャル/UGC | references/guidelines/by-app-type/social_ugc.md |
| キッズカテゴリ | references/guidelines/by-app-type/kids.md |
| ヘルスケア&フィットネス | references/guidelines/by-app-type/health_fitness.md |
| ゲーム | references/guidelines/by-app-type/games.md |
| macOS | references/guidelines/by-app-type/macos.md |
| AI/生成 AI | references/guidelines/by-app-type/ai_apps.md |
| 暗号資産&金融 | references/guidelines/by-app-type/crypto_finance.md |
| VPN | references/guidelines/by-app-type/vpn.md |
ガイドラインの完全なインデックス:references/guidelines/README.md
ステップ 2:検査用のメタデータを取得する
asc CLI を使って最新の App Store メタデータを取得します。
# Pull canonical metadata JSON for the version you want to review
asc metadata pull --app "<APP_ID>" --version "<VERSION>" --dir ./metadata
asc metadata pull は、アプリ情報ファイルを ./metadata/app-info/*.json に、バージョンごとのローカライズファイルを ./metadata/version/<VERSION>/*.json に書き込みます。
以下のルール例では、asc metadata pull によって書き込まれる標準的な JSON レイアウトを前提としています。
クリエイティブアセット(プロダクトページのヘッダー、検索結果アセット、ガイドライン 2.3.14)は App Store Connect のアセットライブラリにあります。お使いの asc のバージョンで取得されない場合は、ガイドライン 2.3.14 に照らして手動で確認してください。
別のレイアウト(たとえば fastlane の metadata/)でメタデータを管理している場合は、その構成に合わせてファイルパスの例を変更するか、先に標準の asc レイアウトで取得してください。
ステップ 3:リジェクトルールのチェックを実行する
各カテゴリについて、references/rules/ から該当するルールファイルを読み込み、確認します。各ルールには、確認項目、検出方法、解決方法、リジェクト例が含まれます。
| カテゴリ | ルールファイル |
|---|---|
| メタデータ | references/rules/metadata/*.md |
| サブスクリプション | references/rules/subscription/*.md |
| プライバシー | references/rules/privacy/*.md |
| デザイン | references/rules/design/*.md |
| エンタイトルメント | references/rules/entitlements/*.md |
ステップ 4:検出結果を報告する
次のテンプレートを使ってサマリーレポートを作成します。
## Preflight Report
### ❌ Rejections Found (N)
- [GUIDELINE X.X.X] Description of issue
- File: path/to/offending/file
- Fix: What to do
### ⚠️ Warnings (N)
- [GUIDELINE X.X.X] Potential issue
### ✅ Passed (N)
- [Category] All checks passed
重大度の高い順に並べます。まずリジェクト、次に警告、最後に合格です。
ステップ 5:自動修正と検証
自動修正できる問題もあります。
- 競合他社の用語 → 競合他社名を削除した置き換え文を提案します
- メタデータの文字数制限 → 現在の文字数と上限を表示します
- リンクの欠落 → ToS/PP のテンプレートリンクを生成します
自動修正を適用した後は、該当するチェックを再実行して、違反が解消されたことを確認してください。再スキャンに合格した場合にのみ、解決済みとします。
スクリーンショットや UI の再設計など、手動での対応が必要な問題については、明確な手順を示しますが、自動修正は行いません。
注意点
- 中国のストアフロント — 禁止されている AI 関連用語(ChatGPT、Gemini など)は、
zh-Hansだけでなく、すべてのロケールでチェックされます。Apple は中国のストアフロントに表示されるすべてのロケールを確認します。 - プライバシーマニフェスト — アプリが Required Reason API を直接呼び出さない場合でも、
PrivacyInfo.xcprivacyが必要です。UserDefaultsやNSFileManagerを使用するサードパーティ製 SDK(Firebase、Amplitude など)を含めると、間接的にこの要件が適用されます。 - asc 認証 —
asc metadata pullには App Store Connect の認証が必要です。先にasc auth loginを実行するか、ASC_KEY_ID、ASC_ISSUER_IDと、ASC_PRIVATE_KEY_PATH/ASC_PRIVATE_KEY/ASC_PRIVATE_KEY_B64のいずれかを設定してください。ascが何を読み込んでいるか不明な場合は、asc auth doctorを実行してください。 - サブスクリプションのメタデータ — Apple は、利用規約とプライバシーポリシーへのリンクを、App Store の説明とアプリ内のサブスクリプション購入画面の両方に記載するよう求めています。どちらか一方でも欠けていると、それぞれ別個の却下理由になります。
- 非表示機能(2.5.19) — 機能フラグは使用できますが、有効化できる機能はすべて審査用ビルドに含まれ、審査担当者が利用でき、審査メモに記載されている必要があります。審査環境のチェック(サンドボックスのレシート、TestFlight)に基づいて機能を制限すると、審査担当者を欺く行為とみなされ、開発者アカウントが停止される可能性があります。
- サードパーティ AI(5.1.2(i)) — AI 呼び出しを自社のバックエンド経由で中継しても、要件は免除されません。プロンプトやユーザーコンテンツが OpenAI、Gemini、Anthropic などに送信される場合、最初のリクエストを送信する前に、プロバイダー名を明示した同意画面がアプリに必要です。
- Sign in with Apple のリレードメイン — 2026 年後半以降、新しいリレーアドレスでは
privaterelay.appleid.comに加えてprivate.icloud.comが使用されます。ドメインをハードコードしてチェックすると、新規ユーザーに対して動作しなくなります。 - SDK の最小要件 — 2026 年 4 月 28 日以降、アップロードするアプリは iOS 26 SDK 以降でビルドする必要があります。古い Xcode では審査時ではなく、アップロード時に失敗します。
- macOS のエンタイトルメント — Apple は、一時的な例外エンタイトルメント(
com.apple.security.temporary-exception.*)を使用する理由をすべて説明するよう求めます。実際に使用していないエンタイトルメントは削除してください。
新しいルールの追加
適切な references/rules/ サブディレクトリに .md ファイルを作成します。
# Rule: [Short Title]
- **Guideline**: [Apple Guideline Number]
- **Severity**: REJECTION | WARNING
- **Category**: metadata | subscription | privacy | design | entitlements
## What to Check
## How to Detect
## Resolution
## Example Rejection