CI/CDの設定は Capacitor アプリケーションに複雑で時間のかかることがあります。ここでは、必要なことを知っておくことがおすすめです。
推奨設定: Capgo ビルドを使用
今後は __CAPGO_KEEP_0__ ビルドと __CAPGO_KEEP_1__ __CAPGO_KEEP_2__ を使用することをお勧めします。 Capgo Capgo CLI このFastlaneガイドは、既存の 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.
Prerequisites
__CAPGO_KEEP_0__ アカウントに管理者権限を持つアカウントを作成する
- GitHub
- Google Play Storeにすでに適切な署名で公開されているアプリ
- Android署名キーとキーストアファイル
- Google Cloud ConsoleプロジェクトでPlay Store APIが有効
- サービスアカウントで適切な権限
- GitHub Actionsワークフローの理解
- Fastlane構成の知識
- パイプラインの維持とデバッグに必要な時間
Capgo CI/CD用ビルドに Capgo を使用
Fastlane、Gradleランナー、キーストア、アップロードスクリプトのメンテナンスをスキップ Capgo ビルド CI/CDパイプラインから既存の署名済みネイティブAndroidビルドを実行します。
- CI/CDパイプラインからすでに存在する、署名済みネイティブAndroidビルドを実行します:: Capgo をトリガーして GitHub Actions、GitLab CI、Jenkins、またはローカルスクリプトから Capgo ビルドを実行します。
npx cap sync. - : CI シークレットから署名します。: __CAPGO_KEEP_0__ ビルドはAndroidのキーストア、キーアライアス、パスワード、プレイコンソールサービスアカウントJSONを管理する必要がなくなるので、CI シークレットに保管してください。
- : __CAPGO_KEEP_0__ ビルドはAndroidビルド環境を提供するので、__CAPGO_KEEP_1__ イメージ、Gradle キャッシュの問題、またはFastlane ラインを管理する必要がなくなります。: QA のために署名済みアーティファクトをダウンロードしたり、Capgo SDK を通じてリリースビルドを提出することができます。
- 価格: Download signed artifacts for QA or submit release builds through the Capgo CLI.
Pricing
- Capgo プランは 1 か月あたり 12 ドルから
- : __CAPGO_KEEP_0__ ビルドを CI/CD に設定してください。
- : __CAPGO_KEEP_0__ __CAPGO_KEEP_1__
Capgo plans start at $12/month
マニュアルセットアップガイド
ここで行う必要があります:
GitHub アクションの価格

GitHub アクションは、リポジトリのタイプに基づいて無料分数を提供します:
- パブリックリポジトリ: 1 か月あたり 2,000 分
- プライベートリポジトリ: 1 か月あたり 2,000 分 (Linux ランナー)
プライベートプロジェクトの場合、コストは約 1 分あたり 0.008 ドルです。通常のビルド時間は 3-5 分です。
マニュアルセットアップ手順
- Android Keystore の作成
- Google Play Service Account の設定
- Fastlane の設定
- 設定 GitHub シークレット
- Create GitHub Actions ワークフロー
1. Android Keystoreを作成する
Android アプリを署名して公開する前に、Keystore ファイルを作成する必要があります。これは、一時的な設定です。
keytoolでKeystoreを生成する
ターミナルでこのコマンドを実行してください:
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
入力が求められます:
- Keystoreパスワード: 強力なパスワードを選択してください(これは後で必要になります)
KEYSTORE_STORE_PASSWORD) - Keyパスワード: 強力なパスワードを選択してください(これは後で必要になります)
KEYSTORE_KEY_PASSWORD) - 名前、組織など:
重要な注意事項
-
セキュリティ上の理由で、これらの値を安全に保存してください。:
- Keystoreファイルの場所(例:)
my-release-key.keystore) - キーアライアス(例:)
my-key-alias) - これを必要としますKEYSTORE_KEY_ALIAS - Keystore pasuword - kore o tsukau tame ni haitte imasu
KEYSTORE_STORE_PASSWORD - パスワード - このパスワードが必要です
KEYSTORE_KEY_PASSWORD
- Keystoreファイルの場所(例:)
-
キーストアファイルをバックアップしてください。: 公開アプリの更新ができなくなります
-
秘密にしましょう。: GitHub からキーストアファイルをコミットしないようにしてください。
-
安全に保管してください: 複数のバックアップを安全な場所に保管してください
既存のキーストアを使用する
既にアプリを公開している場合は、最初に使用したキーストアを使用する必要があります。キーストアは以下の場所で見つけることができます:
- ローカルマシンで最初にアプリをビルドした場所
- Play Console → 設定 → アプリ署名 (Google Play App Signing を使用している場合)
2. Google Play Service Account の設定
Google Play へのアップロードを許可する GitHub Actions を実行するには、サービス アカウントが必要です。
ステップ 2.1: Google Cloud Project の作成
- 行きます Go to
- Google Cloud Console
- 注目するプロジェクトID
Step 2.2: Enable Google Play Developer API
- Google Cloud Console にアクセスし、 APIs & Services → ライブラリ
- Google Play Android Developer API
- クリック 有効
ステップ 2.3: サービス アカウントの作成
- 行く サービス アカウント → サービスアカウント
- クリック サービス アカウントを作成
- 詳細を入力してください
- 名前
github-actions-uploader - GitHub アクションでビルドをアップロードするためのサービス アカウント
- 名前
- クリック 作成して続行
- 役割の割り当てを今回はスキップ (クリック) 続行, すると 完了)
ステップ 2.4: サービス アカウント キーを作成
- 新しいサービス アカウントをクリックしてください
- 行く キー タブ
- クリック キーを追加 → 新しいキーを作成
- 選択 JSON形式 フォーマット
- クリック 作成
- JSONファイルがダウンロードされます。 安全に保存してくださいの後、必要になります
Step 2.5: Play Consoleでアクセス権を付与する
- Capgoのページについて Google Play Consoleに移動
- Capgoのページについて Setup → APIへのアクセス
- Under 、クリックしてくださいSetup アクセス許可を付与する サービスアカウントのために
- 「 アプリの権限 」タブに移動し、アプリの
- 「 アカウントの権限 」タブに移動し、これらの権限を付与する:
- アプリの情報を参照し、大量のレポートをダウンロードする (読み取り専用)
- ドラフトアプリを作成、編集、削除する
- テストトラックにアプリをリリースする
- 生産トラック、除外、他にトラックにアプリをリリースする
- クリック ユーザーを招待
- クリック 招待を送信
ステップ 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": "..."
}
GitHub シークレット設定のステップで、このファイルを base64 に変換します。
3. Fastlane を設定する
Create a fastlane 4. __CAPGO_KEEP_0__ シークレットを設定する Fastfile Step 2.6: JSON Keyを検証する
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
You’ll convert this to base64 in the GitHub secrets setup step.
GitHub
Step 4.1: GitHubのシークレットにアクセス
- GitHub
- クリック 設定 → シークレットと変数 → アクション
- クリック 新しいリポジトリシークレット
Step 4.2: 必要なシークレットを追加
__CAPGO_KEEP_0__のシークレットをそれぞれ1つずつ追加してください
PLAY_CONFIG_JSON
- Step 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_JSONbase64の文字列をペーストしてください。
AndroidKeyStoreファイル
- キーストアをbase64に変換してください。
macOS/Linuxの場合:
base64 my-release-key.keystore | pbcopy
Windows (PowerShell)の場合:
[Convert]::ToBase64String([IO.File]::ReadAllBytes("my-release-key.keystore")) | Set-Clipboard
- 新しいシークレットを作成し、名前に
ANDROID_KEYSTORE_FILEbase64の文字列をペーストしてください。
キーストアキー・アリース
キーストアキー名を生成する際に使用したキーアリセイを入力してください。 my-key-alias)
キーストアキー暗号化用パスワード
キーストアキー名を生成する際に使用したパスワードを入力してください。
キーストアストアパスワード
キーストア名を生成する際に使用したパスワードを入力してください。
Capacitor
アプリのパッケージ名を入力してください。 com.example.app)
アプリのパッケージ名は android/app/build.gradle under applicationId
Step 4.3: 全てのシークレットを確認する
Capacitor Android ビルド GitHub アクションを自動化するには、次の 6 つのシークレットを設定する必要があります。
- ✅ Android 設定 JSON
- ✅ Android キーストア ファイル
- ✅ キーストア キー アリース
- ✅ キーストア キー パスワード
- ✅ キーストア ストア パスワード
- ✅ 開発者 パッケージ名
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
機能の仕組み
- Git タグを作成してワークフローをトリガーする
- GitHub Actions はアプリをビルドします
- Fastlane は Google Play のベータ チャンネルにアップロードします
- あなたのアプリは自動的に更新されます。
ビルド時間とコスト
- ビルド時間: 3-5 分
- プライベートリポジトリのビルドコスト: ~$0.04
- オープンソースプロジェクトは無料
関連記事
CI/CD設定ガイド
- 自動Capacitor iOS ビルドとGitHub アクション - iOS CI/CD設定の完了
- 自動ビルドとリリースとGitHub アクション - CI/CDパイプラインの完全なチュートリアル
- DevとProdビルドの管理とGitHub アクション - 環境管理
- CI/CD プラットフォームの代替
- - GitLab CI でビルド - Android 用の GitLab の代替
- - CodeMagic でビルド - CodeMagic のセットアップガイド
- ライブアップデート & デプロイ
- - Capgo ライブアップデートドキュメント - アプリに OTA アップデートを追加
- - Capgo と CI/CD の統合 - パイプラインにライブアップデートを統合
- リソース
Automatic Capacitor Android ビルドから GitHub アクションで続く
__CAPGO_KEEP_0__ を使用している場合 Automatic Capacitor Android ビルドから GitHub アクション CI/CD オートメーションを計画するには、__CAPGO_KEEP_0__ CI/CD Capgo CI/CD Capgo CI/CD Capgo Native ビルド Capgo Native ビルド Capgo 連携 Capacitorの製品ワークフローでCapgo統合 CI/CD統合 CI/CD統合の実装詳細については GitHub アクション統合 Capacitorの実装詳細についてはGitHubアクションの統合です。