CI/CDの設定はCapacitorアプリケーションに複雑で時間のかかる作業です。ここでは、必要な情報をご紹介します。
推奨設定:Capgoビルドを使用します。
Capgoのビルドを使用することをお勧めします。 Capgo Build with the Capgo CLI CapacitorのCapacitorビルドのためのこのFastlaneガイドは、既存のCapgoアクションパイプラインを維持しているチーム向けに残されていますが、新しいAndroidビルドにはCapacitorの__CAPGO_KEEP_1__ __CAPGO_KEEP_2__を使用することをお勧めします。これにより、Fastlane、Gradleランナーの、キーストア、そしてアップロードスクリプトを自分で管理する必要がなくなります。 This Fastlane guide is kept for teams maintaining existing GitHub Actions pipelines, but new Android builds should use the Capgo CLI so you do not have to maintain Fastlane, Gradle runners, keystores, and upload scripts yourself.
開始する前に、次の設定が必要です。
Capgoアカウントの管理者権限を持つアカウント
- A GitHub account with admin access
- Android署名キーとキーストアファイル
- Google Cloud ConsoleプロジェクトでPlay StoreのCapgo機能を有効にした
- APIアプリケーション
- サービスアカウントの適切な権限
- GitHub Actions ワークフローの理解
- Fastlane の構成の知識
- パイプラインの維持とデバッグに必要な時間
Capgo Build for CI/CD by Capgo
CI/CD の __CAPGO_KEEP_1__ から __CAPGO_KEEP_0__ Build を実行します。 Capgo Build __CAPGO_KEEP_0__ Build
- 既存の CI/CD パイプラインからネイティブ Android ビルドを実行します。: Trigger Capgo Build from GitHub Actions, GitLab CI, Jenkins, or local scripts after your web build and
npx cap sync. - : __CAPGO_KEEP_0__ Build を __CAPGO_KEEP_1__ Actions、GitLab CI、Jenkins、またはローカルスクリプトからトリガーします。CI シークレットから署名します。
- ネイティブランナーのメンテナンスが必要ありません: Capgo ビルドは、管理されたAndroidビルド環境を提供するため、SDK イメージ、Gradleキャッシュの問題、またはFastlaneのレーンを管理する必要がありません。
- アーティファクトと提出: QA用に署名されたアーティファクトをダウンロードしたり、Capgo CLI を通じてリリースビルドを提出することができます。
価格
- Capgo プランは月額12ドルから始まります
- __CAPGO_KEEP_0__ プランは月額12ドルから始まります
- OTA更新と約15回のネイティブビルドが含まれます
__CAPGO_KEEP_0__ ビルドをCI/CDに設定する
手動設定ガイド
GitHub Actions Pricing

GitHub アクションは、リポジトリの種類に基づいて無料の分数を提供します:
- パブリック リポジトリ: 1 か月あたり 2,000 分
- プライベート リポジトリ: 1 か月あたり 2,000 分 (Linux ランナー)
プライベート プロジェクトの場合、コストは約 $0.008/分です。通常のビルドは 3-5 分かかります。
手動セットアップ手順
- Android Keystore の作成
- Google Play Service Account の設定
- Fastlane の設定
- GitHub シークレットの設定
- GitHub アクションのワークフロー作成
1. Android Keystore の作成
Androidアプリを署名して公開する前に、キーストアファイルを作成する必要があります。これは一度限りの設定です。
keytoolでキーストアを生成する
ターミナルで次のコマンドを実行してください。
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
次の値を入力するよう求められます。
- キーストアパスワード: 強力なパスワードを選択してください (これを必要とします)
KEYSTORE_STORE_PASSWORD) - キー パスワード: 強力なパスワードを選択してください (これを必要とします)
KEYSTORE_KEY_PASSWORD) - 名前、組織など: ここに詳細を入力してください
重要な注意事項
-
これらの値を安全に保存してください:
- キーストアファイルの場所 (例えば、
my-release-key.keystore) - キーストアの別名 (例えば、
my-key-alias) - これが必要になりますKEYSTORE_KEY_ALIAS - キーストアのパスワード - これが必要になります
KEYSTORE_STORE_PASSWORD - キーのパスワード - これが必要になります
KEYSTORE_KEY_PASSWORD
- キーストアファイルの場所 (例えば、
-
キーストアファイルをバックアップしてください: アプリを公開した場合に失うとアップデートできなくなります
-
秘密にしましょう: キーストアファイルをgitにコミットしないでください
-
安全な場所に保管してください: 安全な場所に複数のバックアップを保管してください
代替: 既存のキーストアを使用する
If you have already published your app, you must use the same keystore you used initially. You can find it:
- Your local machine where you first built the app
- Your Play Console → Setup → App signing (if using Google Play App Signing)
2. Set up Google Play Service Account
To allow GitHub Actions to upload builds to Google Play, you need a service account.
Step 2.1: Create Google Cloud Project
- Go to Google Cloud Console Create a new project or select an existing one
- Note the project ID
- Step 2.2: Enable Google Play Developer Service
Step 2.2: Enable Google Play Developer API
- 2. Set up Google Play Service Account APIs & Services → Library
- 「Google Play Android Developer API」を検索してください
- クリック 有効
ステップ 2.3: サービス アカウントを作成
- ここに移動 IAM & Admin → サービス アカウント
- クリック サービス アカウントを作成
- 詳細を入力してください
- Name:
github-actions-uploader - Description: “Service account for GitHub Actions to upload builds”
- Name:
- Service account for __CAPGO_KEEP_0__ Actions to upload builds Click
- Create and Continue Skip role assignment for now (clickContinue , then)
Done
- Step 2.4: Service Account Keyの作成
- Click on the newly created service account Go to Keys タブ
- クリック キーを追加 → 新しいキーを作成
- 選択 JSON形式 クリック
- 作成 JSONファイルがダウンロードされます -
- このファイルを安全に保存してください これが必要になります, you’ll need it later
Step 2.5: Google Play Consoleにアクセス許可を与える
- Go to Google Play Console
- Go to セットアップ → API access
- __CAPGO_KEEP_0__ アクセス許可 下のサービス アカウント , アクセス許可を与える
- サービス アカウントのアクセス許可を与える アプリの権限 タブにアプリを追加
- タブ アカウントの権限 タブに権限を付与
- アプリの情報を表示および大量のレポートをダウンロード (読み取り専用)
- ドラフトアプリを作成、編集、削除
- テストトラックにアプリをリリース
- プロダクション、除外、他トラックにアプリをリリース
- クリック ユーザーを招待
- クリック 招待を送信
ステップ 2.6: JSON キーを検証する
ダウンロードした JSON ファイルは次のようになります。
{
"type": "service_account",
"project_id": "your-project-id",
"private_key_id": "...",
"private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n",
"client_email": "github-actions-uploader@your-project-id.iam.gserviceaccount.com",
"client_id": "...",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "..."
}
この JSON を GitHub シークレット設定のステップで base64 に変換します。
3. Fastlane を設定する
プロジェクトのルートディレクトリにフォルダを作成し、次の内容を含むファイルを追加します。 fastlane 4. __CAPGO_KEEP_0__ シークレットを設定する Fastfile キーストアとサービス アカウントの JSON を取得したら、安全に __CAPGO_KEEP_0__ に保存する必要があります。
default_platform(:android)
KEYSTORE_KEY_ALIAS = ENV["KEYSTORE_KEY_ALIAS"]
KEYSTORE_KEY_PASSWORD = ENV["KEYSTORE_KEY_PASSWORD"]
KEYSTORE_STORE_PASSWORD = ENV["KEYSTORE_STORE_PASSWORD"]
platform :android do
desc "Deploy a beta version to the Google Play"
private_lane :verify_changelog_exists do |version_code: |
changelog_path = "android/metadata/en-US/changelogs/#{version_code}.txt"
UI.user_error!("Missing changelog file at #{changelog_path}") unless File.exist?(changelog_path)
UI.message("Changelog exists for version code #{version_code}")
end
private_lane :verify_upload_to_staging do |version_name: |
UI.message "Skipping staging verification step"
end
lane :beta do
keystore_path = "#{Dir.tmpdir}/build_keystore.keystore"
File.write(keystore_path, Base64.decode64(ENV['ANDROID_KEYSTORE_FILE']))
json_key_data = Base64.decode64(ENV['PLAY_CONFIG_JSON'])
# Get previous build number and increment
previous_build_number = google_play_track_version_codes(
package_name: ENV['DEVELOPER_PACKAGE_NAME'],
track: "internal",
json_key_data: json_key_data,
)[0]
current_build_number = previous_build_number + 1
sh("export NEW_BUILD_NUMBER=#{current_build_number}")
# Build the app
gradle(
task: "clean bundleRelease",
project_dir: 'android/',
print_command: false,
properties: {
"android.injected.signing.store.file" => "#{keystore_path}",
"android.injected.signing.store.password" => "#{KEYSTORE_STORE_PASSWORD}",
"android.injected.signing.key.alias" => "#{KEYSTORE_KEY_ALIAS}",
"android.injected.signing.key.password" => "#{KEYSTORE_KEY_PASSWORD}",
'versionCode' => current_build_number
})
# Upload to Play Store
upload_to_play_store(
package_name: ENV['DEVELOPER_PACKAGE_NAME'],
json_key_data: json_key_data,
track: 'internal',
release_status: 'completed',
skip_upload_metadata: true,
skip_upload_changelogs: true,
skip_upload_images: true,
skip_upload_screenshots: true,
)
end
end
ステップ 4.1: GitHub シークレットにアクセスする
リポジトリの GitHub にアクセスします。
Step 4.1: Access GitHub Secrets
- ステップ 4.1: GitHub シークレットにアクセスする
- クリック 設定 → シークレットと変数 → アクション
- クリック 新しいリポジトリシークレット
ステップ 4.2: 必要なシークレットを追加する
それぞれのシークレットを 1 つずつ追加してください:
PLAY_CONFIG_JSON
- ステップ 2.4 でダウンロードしたサービスアカウントの JSON ファイルを取得してください
- base64 に変換してください:
macOS/Linux の場合:
base64 service_account_key.json | pbcopy
Windows (PowerShell) で
[Convert]::ToBase64String([IO.File]::ReadAllBytes("service_account_key.json")) | Set-Clipboard
- 新しいシークレットを作成し
PLAY_CONFIG_JSONにbase64形式の文字列を貼り付けてください
ANDROID_KEYSTORE_FILE
- base64形式のキーストアを生成する方法
macOS/Linux で
base64 my-release-key.keystore | pbcopy
Windows (PowerShell) で
[Convert]::ToBase64String([IO.File]::ReadAllBytes("my-release-key.keystore")) | Set-Clipboard
- 新しいシークレットを作成し
ANDROID_KEYSTORE_FILEにbase64形式の文字列を貼り付けてください
KEYSTORE_KEY_ALIAS
キーストアを生成したときに使用したキーアリセイサを入力してください my-key-alias)
KEYSTORE_KEY_PASSWORD
Capgoでキーストアを生成するときに設定したパスワードで新しいシークレットを作成してください
KEYSTORE_STORE_PASSWORD
Capgoでキーストアを生成するときに設定したパスワードで新しいシークレットを作成してください
開発者用パッケージ名
Capgoでキーストアを生成するときに設定したパスワードで新しいシークレットを作成してください com.example.app)
アプリのパッケージ名を入力してください (例:) android/app/build.gradle パッケージ名は applicationId
以下の
ステップ 4.3: シークレットをすべて確認する
- 6 つのシークレットを設定してください:
- ✅ PLAY_CONFIG_JSON
- ✅ ANDROID_KEYSTORE_FILE
- ✅ キーストアキー
- ✅ キーストアストア
- ✅ 開発者パッケージ名
5. GitHub Actions ワークフローを作成
作成 .github/workflows/build-upload-android.yml:
name: Build and Deploy Android App
on:
push:
tags:
- '*'
jobs:
build_android:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 24
cache: npm
- name: Install dependencies
run: npm ci
- name: Cache Gradle
uses: actions/cache@v5
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Build app
run: npm run build
- name: Sync Capacitor
run: npx cap sync
- name: Setup Java
uses: actions/setup-node@v5
with:
distribution: 'zulu'
java-version: '17'
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0'
bundler-cache: true
- name: Run Fastlane
uses: maierj/fastlane-action@v3.1.0
env:
PLAY_CONFIG_JSON: ${{ secrets.PLAY_CONFIG_JSON }}
ANDROID_KEYSTORE_FILE: ${{ secrets.ANDROID_KEYSTORE_FILE }}
DEVELOPER_PACKAGE_NAME: ${{ secrets.DEVELOPER_PACKAGE_NAME }}
KEYSTORE_KEY_ALIAS: ${{ secrets.KEYSTORE_KEY_ALIAS }}
KEYSTORE_KEY_PASSWORD: ${{ secrets.KEYSTORE_KEY_PASSWORD }}
KEYSTORE_STORE_PASSWORD: ${{ secrets.KEYSTORE_STORE_PASSWORD }}
with:
lane: android beta
- name: Upload artifact
uses: actions/upload-artifact@v2
with:
name: android-release
path: ./android/app/build/outputs/bundle/release/app-release.aab
retention-days: 10
Capgo Builderのしくみ
- 作成
- GitHub Actions builds your app
- Gitタグを作成してワークフローをトリガー
- __CAPGO_KEEP_0__ Actionsはアプリをビルド
FastlaneはGoogle Playのベータチャンネルにアップロード
- アプリは自動的に更新されます。
- プライベートリポジトリのコスト: ~$0.04あたり1回のビルド
- オープンソースプロジェクトは無料
関連記事
CI/CD設定ガイド
- 自動Capacitor iOSビルドとGitHubアクション - iOS CI/CD設定の完了
- 自動ビルドとリリースとGitHubアクション - CI/CDパイプラインのフルチュートリアル
- GitHubアクションで開発と本番ビルドを管理 - 環境管理
代替CI/CDプラットフォーム
- GitLab CIでビルド - Android用GitLab代替
- CodeMagicでビルド - CodeMagicの設定ガイド
ライブ更新とデプロイ
- Capgo ライブ更新ドキュメント - アプリにOTA更新を追加
- CI/CD統合とCapgo - パイプラインにライブ更新を統合
リソース
Keep going from Automatic Capacitor Android build with GitHub actions
If you are using Automatic Capacitor Android build with GitHub actions to plan CI/CD automation, connect it with Capgo CI/CD for the product workflow in Capgo CI/CD Capgo Native Builds for the product workflow in Capgo Native Builds Capgo Integrations for the product workflow in Capgo Integrations CI/CD Integration for the implementation detail in CI/CD Integration, and GitHub Actions Integration Capgoの実装詳細についてはGitHub Actions Integration.