App Store Connect と Rork を繋いで、IAP/サブスクリプションの設定・診断・審査準備をサポートする Claude Code プラグインです。
claude --plugin-dir /path/to/rork-asc-support-plugin環境変数 REVENUECAT_API_V2_SECRET_KEY を設定すると、RevenueCat の MCP サーバーが自動的に接続されます。
API キーは RevenueCat Dashboard > Project Settings > API Keys > V2 Secret Key から取得できます。
export REVENUECAT_API_V2_SECRET_KEY="sk_..."templates/Fastfile.template をプロジェクトの fastlane/Fastfile にコピーして、BUNDLE_ID を設定してください。
cp templates/Fastfile.template your-project/fastlane/FastfileASC API キーは fastlane/asc_key.json に配置します:
{
"key_id": "XXXXXXXXXX",
"issuer_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"key": "-----BEGIN EC PRIVATE KEY-----\n...\n-----END EC PRIVATE KEY-----"
}プロジェクトの初期セットアップ時や接続トラブル時に使用します。以下の項目を検証します:
- ASC API Key (p8) —
asc_key.jsonの存在、key_id/issuer_id/keyのフォーマット検証 - Fastlane — インストール状況、Fastfile の存在、
BUNDLE_IDの設定、利用可能な Lane の一覧 - RevenueCat MCP —
REVENUECAT_API_V2_SECRET_KEY環境変数と.mcp.jsonの設定状況 - Gitignore Safety —
asc_key.json、Local.xcconfig、.envが gitignore されているか
すべてチェックが通ると exit code 0 を返します。
IAP / サブスクリプションの審査準備状況を診断します。MISSING_METADATA の原因特定に使います。
チェック項目:
| カテゴリ | 確認内容 |
|---|---|
| Non-Consumable | プロダクト状態、ローカライゼーション(name + description)、価格スケジュール、審査用スクリーンショット |
| Auto-Renewable Subscription | プロダクト状態、ローカライゼーション、全テリトリーの価格、スクリーンショット、審査メモ |
| Subscription Group(重要) | グループローカライゼーション(name + customAppName)。これが欠けると他が完璧でも MISSING_METADATA のまま |
| Version Association | IAP がアプリバージョンに紐付いているか |
Fastlane の deep_iap_check / check_prices レーンを使って確認できます。
MISSING_METADATA 状態の修正を行います。/check-iap で原因を特定してから使用してください。
修正対象と ASC API エンドポイント:
| 修正内容 | API |
|---|---|
| Subscription Group ローカライゼーション追加(最頻出の原因) | POST /v1/subscriptionGroupLocalizations |
| Subscription ローカライゼーション追加 | POST /v1/subscriptionLocalizations |
| Non-Consumable ローカライゼーション追加 | POST /v2/inAppPurchaseLocalizations |
| Non-Consumable 価格スケジュール作成 | POST /v1/inAppPurchasePriceSchedules |
修正後は fastlane deep_iap_check で READY_TO_SUBMIT への状態遷移を確認します。
IAP の価格設定・確認・変更を行います。アプリ内で価格が不正表示される場合のトラブルシューティングにも使えます。
機能:
- 現在の価格スケジュール確認(Non-Consumable / Subscription それぞれ)
- Price Point ID の取得と新規価格スケジュール作成
- テリトリー別の価格検証
注意: Non-Consumable に価格スケジュールがない場合、StoreKit が不正な値を返すことがあります(例: $9.99 のはずが $1,480 と表示)。
Apple の Guideline 3.1.2(c) 対応として、利用規約の作成と設定を行います。
2つの選択肢:
- カスタム EULA(サブスクリプションアプリ推奨) — サブスクリプション条件、自動更新、キャンセルポリシー等をカバーする独自の利用規約を作成。GitHub Gist 等で公開
- Apple 標準 EULA — Apple の標準利用規約 URL をリンク
設置が必要な箇所:
- アプリの Paywall / 購入画面(機能するリンク)
- アプリの設定画面
- App Store の説明文(URL)
- App Store Connect の EULA フィールド(任意)
App Store 審査提出前に全要件を検証するチェックリストです。
検証カテゴリ:
- App Metadata — アプリ名、説明文、キーワード、スクリーンショット、プライバシーポリシー URL、年齢制限
- Guideline 3.1.2 対応(サブスクリプション) — Paywall でのサブスクリプション情報表示(タイトル、期間、価格、プライバシーポリシー、利用規約、解約方法)
- Guideline 2.1(b) 対応(IAP) — 全プロダクトが
READY_TO_SUBMIT状態か、アプリバージョンに紐付いているか
よくあるリジェクト理由と修正方法の対応表も含まれます。
IAP プロダクトの審査用スクリーンショットをソース画像からバッチ生成します(macOS sips 使用)。
./scripts/generate-iap-screenshots.sh <source_image> [output_dir] [sizes]対応デバイスサイズ:
| サイズ | デバイス |
|---|---|
640x920 |
iPhone 4s(3.5 インチ)— 最小必須サイズ |
1242x2208 |
iPhone 6s Plus(5.5 インチ) |
1242x2688 |
iPhone XS Max(6.5 インチ) |
1290x2796 |
iPhone 15 Pro Max(6.7 インチ) |
2048x2732 |
iPad Pro 12.9 インチ |
sizes 引数に all を指定すると全サイズを一括生成します。生成後は ASC の各プロダクトの Review Screenshot にアップロードしてください。
プラグインに同梱されるシェルスクリプト:
| Script | 説明 |
|---|---|
scripts/check-env.sh |
ASC API キー・Fastlane・RevenueCat MCP・gitignore の設定状況をチェック |
scripts/generate-iap-screenshots.sh |
ソース画像から IAP 審査用スクリーンショットをバッチ生成(macOS sips 使用) |
テンプレートに含まれる Fastlane レーン:
| Lane | 説明 |
|---|---|
verify |
ASC 接続の確認 |
iap_status |
IAP/サブスクリプションの一覧表示 |
deep_iap_check |
ローカライゼーション・価格・スクリーンショットの詳細チェック |
check_prices |
価格設定の詳細確認(territory 別) |
set_group_localizations |
サブスクリプショングループのローカライゼーション追加 |
| ガイドライン | 原因 | 対処 |
|---|---|---|
| 2.1(b) IAP not submitted | IAP がバージョンに紐付いていない | ASC UI で「App 内課金とサブスクリプション」セクションから関連付け |
| 2.1(b) IAP not submitted | MISSING_METADATA 状態 | /check-iap → /setup-iap-metadata で修正 |
| 3.1.2(c) Missing EULA | 利用規約リンクがない | /setup-eula で作成・設置 |
| 3.1.2(c) Missing subscription info | Paywall に必要情報が不足 | 価格・期間・管理方法・ポリシーリンクを追加 |
MIT