Skip to content

Latest commit

 

History

History
185 lines (122 loc) · 7.82 KB

File metadata and controls

185 lines (122 loc) · 7.82 KB

rork-asc-support-plugin

App Store Connect と Rork を繋いで、IAP/サブスクリプションの設定・診断・審査準備をサポートする Claude Code プラグインです。

セットアップ

1. プラグインをインストール

claude --plugin-dir /path/to/rork-asc-support-plugin

2. RevenueCat MCP を有効化(任意)

環境変数 REVENUECAT_API_V2_SECRET_KEY を設定すると、RevenueCat の MCP サーバーが自動的に接続されます。

API キーは RevenueCat Dashboard > Project Settings > API Keys > V2 Secret Key から取得できます。

export REVENUECAT_API_V2_SECRET_KEY="sk_..."

3. Fastlane テンプレート(任意)

templates/Fastfile.template をプロジェクトの fastlane/Fastfile にコピーして、BUNDLE_ID を設定してください。

cp templates/Fastfile.template your-project/fastlane/Fastfile

ASC 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-----"
}

Skills

/check-env — 環境チェック

プロジェクトの初期セットアップ時や接続トラブル時に使用します。以下の項目を検証します:

  • ASC API Key (p8)asc_key.json の存在、key_id / issuer_id / key のフォーマット検証
  • Fastlane — インストール状況、Fastfile の存在、BUNDLE_ID の設定、利用可能な Lane の一覧
  • RevenueCat MCPREVENUECAT_API_V2_SECRET_KEY 環境変数と .mcp.json の設定状況
  • Gitignore Safetyasc_key.jsonLocal.xcconfig.env が gitignore されているか

すべてチェックが通ると exit code 0 を返します。


/check-iap — IAP メタデータ診断

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 レーンを使って確認できます。


/setup-iap-metadata — IAP メタデータ修正

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_checkREADY_TO_SUBMIT への状態遷移を確認します。


/setup-iap-prices — IAP 価格設定

IAP の価格設定・確認・変更を行います。アプリ内で価格が不正表示される場合のトラブルシューティングにも使えます。

機能:

  • 現在の価格スケジュール確認(Non-Consumable / Subscription それぞれ)
  • Price Point ID の取得と新規価格スケジュール作成
  • テリトリー別の価格検証

注意: Non-Consumable に価格スケジュールがない場合、StoreKit が不正な値を返すことがあります(例: $9.99 のはずが $1,480 と表示)。


/setup-eula — 利用規約 (EULA) 設定

Apple の Guideline 3.1.2(c) 対応として、利用規約の作成と設定を行います。

2つの選択肢:

  1. カスタム EULA(サブスクリプションアプリ推奨) — サブスクリプション条件、自動更新、キャンセルポリシー等をカバーする独自の利用規約を作成。GitHub Gist 等で公開
  2. Apple 標準 EULA — Apple の標準利用規約 URL をリンク

設置が必要な箇所:

  • アプリの Paywall / 購入画面(機能するリンク)
  • アプリの設定画面
  • App Store の説明文(URL)
  • App Store Connect の EULA フィールド(任意)

/check-submission — 審査提出前チェックリスト

App Store 審査提出前に全要件を検証するチェックリストです。

検証カテゴリ:

  • App Metadata — アプリ名、説明文、キーワード、スクリーンショット、プライバシーポリシー URL、年齢制限
  • Guideline 3.1.2 対応(サブスクリプション) — Paywall でのサブスクリプション情報表示(タイトル、期間、価格、プライバシーポリシー、利用規約、解約方法)
  • Guideline 2.1(b) 対応(IAP) — 全プロダクトが READY_TO_SUBMIT 状態か、アプリバージョンに紐付いているか

よくあるリジェクト理由と修正方法の対応表も含まれます。


/generate-iap-screenshots — IAP 審査用スクリーンショット生成

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 にアップロードしてください。

Scripts

プラグインに同梱されるシェルスクリプト:

Script 説明
scripts/check-env.sh ASC API キー・Fastlane・RevenueCat MCP・gitignore の設定状況をチェック
scripts/generate-iap-screenshots.sh ソース画像から IAP 審査用スクリーンショットをバッチ生成(macOS sips 使用)

Fastlane Lanes

テンプレートに含まれる 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