mcpField
C
capacitor-app-store

capacitor-app-store

github.com/cap-go開発731.2k 回インストール2 週間前に更新
リポジトリ

capacitor-app-store について

capacitor-app-storeは、CapacitorアプリのApp StoreとGoogle Playへの公開準備を支援する開発スキルです。バージョン管理、SDK要件、プライバシーマニフェスト、ストア素材、提出手順、アップロード時の問題を扱います。

主な機能

  1. 01Capacitorとネイティブ公開設定の確認
  2. 02バージョンとビルド番号の更新案内
  3. 03SDKとターゲットAPI要件の確認
  4. 04ストア素材とメタデータの準備
  5. 05アップロードと処理エラーの調査

活用シーン

  1. 01アプリの初回公開や更新の準備
  2. 02ストアのアップロードやバージョンエラーの解決
  3. 03プライバシーマニフェストとターゲットAPIの確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/cap-go/capgo-skills --skill capacitor-app-store

インストール後、Claude Code で/capacitor-app-storeを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

metadata.json
references/
android-submission.md
assets-and-metadata.md
ios-submission.md

詳細

Capacitor アプリをストアに公開する

避けられるアップロードエラーや審査の不合格を防ぎながら、Capacitor のビルドを「自分のデバイスで動く」状態から「両方のストアで公開中」の状態にします。

使用するタイミング

次の場合に使用します:

  • ユーザーが App Store Connect または Google Play Console で初回リリースやアップデートを準備している。
  • アップロードや処理に失敗する(ITMS エラー、Play Console のバージョン/対象 API エラー)。
  • ユーザーがスクリーンショットのサイズ、アイコンの要件、ストア掲載情報の項目、プライバシーフォーム、または段階的な公開オプションを必要としている。
  • ユーザーが、現在ストアで求められている Xcode/SDK または対象 API レベルを尋ねている。

次の場合は使用しないでください:

  • アプリが App Review ガイドラインに準拠しているか監査する、または却下への対応をする -> capacitor-apple-review-preflight。
  • GitHub Actions/GitLab/Fastlane のパイプラインを作成する -> capacitor-ci-cd。
  • Capgo Cloud でビルド/署名する -> capgo-native-builds。
  • 承認後にウェブのみの修正を配信する -> capgo-live-updates。

ライブプロジェクトのスナップショット

Capacitor パッケージとバージョン: !node -e "const fs=require('fs');if(!fs.existsSync('package.json'))process.exit(0);const pkg=JSON.parse(fs.readFileSync('package.json','utf8'));const out=['version='+(pkg.version||'')];for(const section of ['dependencies','devDependencies']){for(const [name,version] of Object.entries(pkg[section]||{})){if(name.startsWith('@capacitor/')||name==='@capgo/capacitor-updater'||name==='@capacitor/assets')out.push(section+'.'+name+'='+version)}}console.log(out.join('\n'))"

ネイティブリリースファイル: !find . -maxdepth 5 -not -path '*/node_modules/*' \( -name 'Info.plist' -o -name 'PrivacyInfo.xcprivacy' -o -name '*.entitlements' -o -name 'SceneDelegate.swift' -o -name 'variables.gradle' -o -name 'build.gradle' -o -name 'ExportOptions.plist' -o -path './fastlane' \)

現在のストア要件(2026年10月)

要件詳細Capacitor への影響
Apple SDK の最低要件2026年4月28日以降:Xcode 26 以降および iOS 26 SDK でビルドする必要があります。2027年4月から:iOS 27 SDK(Xcode 27)が必要ですCapacitor 8 は Xcode 26 でビルドできます。Xcode 27 には Capacitor 8.5 以降のプロジェクト変更が必要です
UIScene ライフサイクルXcode 27/iOS 27 SDK でのビルドにはシーンライフサイクルが必要ですCapacitor 8.5 以降:SceneDelegate.swift、UIApplicationSceneManifest、AppDelegate の configurationForConnecting を追加します(capacitor-app-upgrades を参照)
プライバシーマニフェスト必須理由 API を宣言する必要があります。指定されたサードパーティ SDK には、それぞれ署名済みのマニフェストが必要ですCapacitor コアとメンテナンスされているプラグインにはマニフェストが含まれていますが、アプリ独自の PrivacyInfo.xcprivacy も必要です
Apple の年齢制限指定13+、16+、18+ の区分を含む新しい質問票です。回答期限は2026年1月31日で、未回答の場合はアップデートがブロックされますApp Store Connect -> App Information -> Age Ratings で回答します
Play の対象 API2026年8月31日以降、新規アプリとアップデートは API 36 を対象にする必要があります(申請により2026年11月1日まで延長可能)。API 35 未満の既存アプリは、新しいデバイスの新規ユーザーに届かなくなりますCapacitor 8 のテンプレートは compile/target 36 を使用し、Capacitor 9 は 37 を使用します
Play の形式新規アプリは Play App Signing を利用した AAB をアップロードする必要があります./gradlew bundleRelease
16 KB ページサイズAndroid 15 以降を対象とするアプリでネイティブ .so ライブラリを使用する場合は、16 KB にアラインする必要がありますSQLCipher、ML、メディア、分析 SDK を確認してください
Play のクローズドテスト2023年11月13日以降に作成された個人アカウントでは、本番公開の前に、オプトインしたテスター12人以上による14日間連続のクローズドテストが必要ですテストは早めに開始してください

期限が近づいたら日付を再確認してください。Apple は developer.apple.com/news/upcoming-requirements、Google は developer.android.com/google/play/requirements/target-sdk に掲載しています。

手順

  1. スナップショットを確認します。Capacitor のバージョン、iOS のシーンライフサイクル(SceneDelegate.swift の有無を確認)、variables.gradle の SDK 値、プライバシーマニフェストの有無を確認します。
  2. ユーザーとリリース方法を決めます。手動(Xcode Organizer + Play Console)、CLI/CI(capacitor-ci-cd)、または Capgo Cloud Build(capgo-native-builds)から選びます。
  3. バージョンを更新します。ユーザーに表示されるバージョンは両方のプラットフォームで一致させ、ビルド番号はアップロードのたびに必ず増やします。
    • iOS:Xcode のターゲットのビルド設定で、MARKETING_VERSION(CFBundleShortVersionString)とCURRENT_PROJECT_VERSION(CFBundleVersion)を設定します。通常、Info.plist は$(MARKETING_VERSION)/$(CURRENT_PROJECT_VERSION)を参照します。plist の値ではなく、ビルド設定を編集してください。
    • Android:android/app/build.gradle のversionNameとversionCodeを設定します(versionCodeの上限は 2100000000 です)。
  4. Web アセットをビルドして同期します:npm run build && npx cap sync。
  5. プラットフォームのリファレンスを読み込み、その手順に従います:references/ios-submission.md、references/android-submission.md。
  6. references/assets-and-metadata.mdを使って、ストア掲載用のアセットを準備します。
  7. iOS で送信ボタンを押す前に、軽微な更新以外の場合はcapacitor-apple-review-preflightを実行します。
  8. 段階的に公開します:iOS は段階的リリース(7 日間、途中停止可能)、Play は段階的なロールアウト率を設定します。公開範囲を広げる前にクラッシュ率を確認します。

検証

  • iOS:Xcode Organizer のアーカイブ検証(「Validate App」)でエラーが発生しないこと。処理後に TestFlight にビルドが表示されること。実機に TestFlight からインストールし、重要なフローを実行します。
  • Android:bundletoolまたは Play の内部テストでインストールできること。Play Console のリリース前レポートにクラッシュがないこと。aapt2 dump badging app-release.aabまたは Play Console で、想定どおりのversionCodeとtargetSdkVersionが表示されること。
  • 両方:デバッグビルドではなく、ストア用ビルドからアプリをコールドスタートできること。レビュー担当者用のデモアカウントでログインできること。リリース署名でディープリンクとプッシュ通知が機能すること。

エラー処理

エラー修正方法
ITMS-4238 "Redundant Binary Upload"(ビルド番号がすでに使用されています)CURRENT_PROJECT_VERSIONを増やします
ITMS-90062 CFBundleShortVersionString must be higher than the previously approved versionMARKETING_VERSIONを増やします
ITMS-90186 "Invalid Pre-Release Train"(バージョンのリリース系列が終了しています)マーケティングバージョンはすでにリリースされています。MARKETING_VERSIONを増やします
ITMS-90725 "SDK Version Issue"(古い SDK でビルドされています)要件を満たす Xcode/SDK(現時点では Xcode 26 以降、2027 年 4 月からは Xcode 27)でビルドします
ITMS-91053 "Missing API declaration"必要な理由を要する API カテゴリと理由コードをPrivacyInfo.xcprivacyに追加します
ITMS-91061 名前が指定された SDK の "Missing privacy manifest"プライバシーマニフェストが同梱されるバージョンに、その SDK/プラグインを更新します。SDK のプライバシー慣行をアプリのマニフェストにコピーしないでください
ITMS-90683 "Missing purpose string in Info.plist"用途を具体的に記述した、名前が示すNS...UsageDescriptionを追加します
Xcode 27 でビルドすると、アプリが黒い画面のまま、または起動しないUIScene ライフサイクルが未対応です。Capacitor 8.5 以降にアップグレードし、8.5 のプロジェクト変更を適用します
Play:「Version code 45 has already been used. Try another version code.」versionCodeを増やします
Play:アップロード時のターゲット API レベルエラーvariables.gradleのtargetSdkVersion/compileSdkVersionを、必要なレベルまで引き上げます
Play:「You uploaded an APK or Android App Bundle that was signed in debug mode」アップロードキーを使ってbundleReleaseをビルドします
Play:「Your Android App Bundle is signed with the wrong key」登録済みのアップロードキーで署名するか、Play Console でアップロードキーのリセットを申請します
Play:製品版トラックを利用できない12 人のテスターによる 14 日間のクローズドテストを完了します(個人アカウントの場合)

参考資料

  • references/ios-submission.md - 署名、アーカイブ、アップロード方法、TestFlight、App Privacy、輸出コンプライアンス、審査メモ、段階的リリース。
  • references/android-submission.md - リリース署名、AAB、Play App Signing、トラック、Data safety、ターゲット API と 16 KB のチェック、段階的ロールアウト。
  • references/assets-and-metadata.md - アイコンの生成、スクリーンショットのサイズ、両ストアのテキストフィールドの上限。

関連スキル:capacitor-apple-review-preflight、capacitor-ci-cd、capgo-native-builds、capacitor-app-upgrades、capgo-live-updates。

コメント