● コミュニティ
furkancingoz
⚡ 即起動
aso-skill
作者 furkancingoz · furkancingoz/aso-skill
Claude Codeから完結するApp Store最適化:メタデータ生成+競合分析+スクリーンショット作成+JWTによるApp Store Connectへの直接提出。
ASOライフサイクルを網羅する6つのコマンド:文字数バリデーション付きメタデータ生成、iTunes APIを活用した競合分析、AI スクリーンショット生成(Gemini MCP)、App Store Connect API経由の提出(JWT)、バージョン管理、プライバシーポリシーと利用規約の自動生成。iOSアプリ提出時のWeb画面操作を不要にします。
なぜ使うのか
主な機能
- メタデータ生成+文字数制限バリデーション
- 無料のiTunes APIによる競合分析
- Gemini MCPを使ったAIスクリーンショット生成
- JWTによるApp Store Connect APIへの直接連携 — Web UI操作不要
- 段階的ロールアウト制御
- プライバシーポリシー+利用規約の自動生成
ユースケース
実用的な使い方: aso-skill
使うタイミング: プロダクトページのコンバージョン率が横ばいで、データに基づいたリフレッシュを行いたいとき。
フロー
-
競合分析を実行
Use aso-skill to pull the top 10 competitors for 'habit tracker' in the US store. Compare their subtitles and keywords.✓ コピーしました
→ 頻度加重キーワードクラスターを含む比較表
-
最適化されたメタデータを生成
Now generate a new title, subtitle, keyword list, and promotional text for my app. Validate character limits.✓ コピーしました
→ 文字数制限内のフィールド一覧(推定インパクト順)
-
ASC API経由で提出
Push the new metadata to App Store Connect as a new version pending submission.✓ コピーしました
→ バージョンドラフトが作成され、手動レビューの準備完了
結果: データに裏付けられたストーリーで刷新されたリスティングが、ASCを手動操作することなく提出されます。
注意点
- 100文字のキーワードフィールドを超えるキーワード詰め込み — スキルがバリデーションしますが、必ず再確認してください — 詰め込みすぎは関連性を損ないます
使うタイミング: IPAの準備ができており、それ以外のすべてを自動化したいとき。
前提条件
- App Store ConnectにIPAがアップロード済み — Xcodeまたは Transporter を使用
フロー
-
メタデータ+法務ドキュメントを生成
Generate metadata and auto-draft privacy policy + terms for a meditation app targeting EN/DE/FR.✓ コピーしました
→ ローカライズ済みメタデータ+ホスティングされた法務ドキュメントのURL
-
スクリーンショットを生成
Use aso-skill + Gemini MCP to generate 5 App Store screenshots per locale matching the app's visual identity.✓ コピーしました
→ 正しい解像度のPNGセット
-
審査に提出
Attach the build, upload screenshots, submit for review with a phased 7-day rollout.✓ コピーしました
→ バージョンステータス: Waiting For Review
結果: ASCを手動で開くことなく、アプリが審査に提出されます。
注意点
- スクリーンショットのテキストがストアガイドラインに違反 — スクリーンショットのテキストを最小限にし、セーフエリア内に収めるようスキルに指示してください
使うタイミング: 四半期ごと、または競合がキーワード戦略を変更したとき。
フロー
-
前四半期とのキーワード差分を比較
Compare this quarter's competitor keyword cluster against last quarter's. What's new?✓ コピーしました
→ 追加・削除されたキーワード
-
更新を提案
Propose a keyword update — keep my wins, capture 2–3 new opportunities.✓ コピーしました
→ 修正された100文字キーワードフィールド
結果: 6か月前のリサーチではなく、最新の市場状況を反映したキーワード更新が反映されます。
組み合わせ
他のMCPと組み合わせて10倍の力を
本スキルの実行レイヤーの上に、もう一つのASOスキルのレポーティングレイヤーを活用する
After aso-skill submits, use claude-code-aso-skill reporting to summarize the changes.✓ コピーしました
メタデータとスクリーンショットをリポジトリにコミットしてバージョン管理する
Write metadata to fastlane/metadata and commit with the version tag.✓ コピーしました
コストと制限
運用コスト
- APIクォータ
- iTunes Search API: 無料、軽度のレート制限あり。App Store Connect: アカウントごとのクォータ制。
- 呼び出しあたりのトークン
- スクリーンショット生成は大量消費、それ以外は中程度
- 金額
- スキル自体は無料。Geminiの利用料は別途発生します
- ヒント
- 競合データは四半期単位でローカルにキャッシュしてください — 毎時変わるものではありません
セキュリティ
権限、シークレット、影響範囲
最小スコープ: App Store Connect: App Manager on one app (prefer) over admin
認証情報の保管: JWTの.p8キーはローカルに保存し、環境変数でパスを参照してください。絶対にgitにコミットしないこと
データ送信先: iTunes API(パブリック)、Apple ASC API、スクリーンショット有効時はGemini MCP
絶対に付与しない: Account Holder role to the key used by the skill
.p8が漏洩すると、アプリへの完全な書き込み権限が奪われます — 誤ってコミットした場合は直ちにキーをローテーションしてください。
トラブルシューティング
よくあるエラーと対処法
ASC 401
JWTの有効期限切れ(最大20分) — 再生成してください。issuer idとkey idが正しいか確認してください
確認: curl with the JWT against https://api.appstoreconnect.apple.com/v1/apps
Metadata field rejected for character limit
スキルのバリデーションがローカライズに対応していない可能性があります — ロケールごとに個別にバリデーションしてください
Screenshots wrong resolution
デバイスリストを明示的に指定してください。Appleの必須サイズは変更されることがあります
代替案
aso-skill 他との比較
| 代替案 | 代わりに使う場面 | トレードオフ |
| claude-code-aso-skill | エージェントベースのASOレポーティングフレームワークが必要なとき | App Store Connectとの直接連携が少ない |
| Fastlane deliver | すでにFastlaneパイプラインを運用しているとき | AIによるメタデータ下書き機能がない |