メインコンテンツへスキップ

Android ビルド

Capgo の専用インフラを使用して、Android アプリをビルドし、Google Play Store に提出します。

  • Capgo Native Build を使用してアプリをアップロードする方法を学びます
  • Capgo Native Build の認証情報を設定する方法を学びます。
  • 有効な Google Developer アカウントが必要です
  • Android Studio がインストールされている必要があります
  • アプリは Android Studio で正常にビルドできる必要があります

Capgo を使ってアプリのビルドを考え始める前に、まずセットアップを行い、手動で最初の Android ビルドを実行する必要があります。 手動ビルドを先に実行する利点はいくつかあります:

  • 後々の Capgo ビルド用の資格情報を準備できます
  • Play Store コンソールにレコードを作成できます

Android Studio を使ってアプリを手動でビルドする

セクション「Android Studio を使ってアプリを手動でビルドする」

Capgoでアプリのビルドを開始する前に、Android Studioで手動ビルドを行う必要があります。

  1. Android Studio を開く

    実行 bunx cap open android Android Studio プロジェクトを開くには。

  2. 次をクリックします: Build -> Generate Signed App Bundles / APKs Android Studio で署名済み App Bundle / APK を生成

  3. 選択します Android App Bundle をクリックします Next Android Studio で Android App Bundle を選択

現時点では keystore ファイルがありません。このファイルはアプリへの署名に使われ、Google にアプリをビルドしたのが自分であることを示すためのものです。 生成するには、Android Studio の GUI を使います。 コマンドラインで行う方法もありますが、このチュートリアルでは扱いません。

  1. 次をクリックします: Create new Android Studio で新しい keystore を作成

  2. Key Storeのパスを入力 Android StudioでKey Storeのパスを入力

  3. Key Storeのパスワードを設定 Android StudioでKey Storeのパスワードを設定

  4. フォームの残りの項目を入力してください

    1. Key Alias はそのまま (key0) にしてください
    2. 証明書の詳細を入力してください。ここではダミーデータを入力していますが、実際にはご自身の情報を入力してください。

    Android Studio でフォームの残りを記入

  5. 次をクリックします: OK Android Studio で OK をクリック

  1. Keystoreの詳細がすべて正しく入力されていることを確認し、次をクリックします。 Next Android Studio:Keystoreの詳細がすべて正しく入力されていることを確認してください

  2. 次の release ビルドバリアントを選択し、次をクリックします。 Create Android Studio:releaseビルドバリアントを選択

  3. ビルドが成功すると、次の画面が表示されます。 Android Studio:ビルド成功後の画面

    1. このポップアップは、ビルドが成功したことを示しています。
    2. 次の locate ボタン — クリックするとファイルエクスプローラーが開き、ビルドが表示されるはずです。
  4. ファイルエクスプローラーにビルドが表示されていることを確認してください Android Studio で、ファイルエクスプローラーにビルドが表示されることを確認してください

  1. 以下に移動します: Google Play Console

  2. 正しいデベロッパーアカウントを選択 Google Play Consoleで正しいデベロッパーアカウントを選択してください

  3. 次をクリックします: Create app Google Play Console でアプリを作成

  4. アプリ名と言語を選択 Google Play Console でアプリ名と言語を選択します

  5. アプリのカテゴリと、有料か無料かを選択します Google Play Consoleでアプリのカテゴリと、有料か無料かを選択します

  6. 利用規約に同意します Google Play Consoleで利用規約に同意します

  7. 次をクリックします: Create Google Play Consoleで「作成」をクリックします

アプリの作成が完了したら、内部テストグループを作成できます。今回はPlay Storeで一般公開しないため、内部テストグループを作成する必要があります。

  1. 以下に移動します: internal testing 次をクリックします: Test and release -> Testing -> Internal testing

    Google Play Console の内部テスト

  2. 次をクリックします: Testers Google Play Console のテスター

  3. 次をクリックします: Create email list Google Play Consoleでメールリストを作成

  4. メールリストに名前を付ける Google Play Consoleでメールリストに名前を付ける

  5. テスターのメールアドレスを追加 Google Play Consoleでテスターのメールアドレスを追加

  6. を押して、 Enter をクリックします Save Google Play ConsoleでEnterキーを押して保存をクリック

  7. 次をクリックします: Create group Google Play Consoleでグループを作成

  8. 新しいリストが選択されていることを確認して、クリック Save Google Play Console で新しいリストが選択されていることを確認し、保存をクリックしてください

内部テストグループへのアプリのアップロード

「内部テストグループへのアプリのアップロード」というセクション

内部テストグループを作成したので、アプリを内部テストグループにアップロードできます。

  1. 以下に移動します: Test and release -> Testing -> Internal testing Google Play Console の内部テスト

  2. 次の Releases ボタンをクリックします Google Play Console のリリースボタン

  3. 次をクリックします: Create new release Google Play Console の新規リリース作成

  4. 次をクリックします: Upload Google Play Console のアップロード

  5. AAB ファイルを選択 Google Play ConsoleでAABファイルを選択

  6. AABファイルのアップロードを待つ

  7. 次をクリックします: Next Google Play Consoleの「次へ」

  8. エラーを修正

    私の場合、この段階でこのエラーが表示されました

    Google Play Consoleの怖い警告

    これは電話番号の認証がまだ済んでいないためです。認証を済ませてから、チュートリアルを続けます。

  9. 次をクリックします: Save and publish これにより、アプリが内部テストグループに公開されます。 Google Play Console での保存と公開

  10. 公開を確定する Google Play Console での公開確定

  11. アプリが公開されていることを確認してください Google Play Console でアプリが公開されていることを確認します

  12. 一時的なアプリ名を取得する Google Play Console での一時的なアプリ名の取得

アプリを内部テストグループにアップロードしたら、内部テストグループへの招待を承諾できます。

  1. 以下に移動します: Test and release -> Testing -> Internal testing Google Play Console の内部テスト

  2. 次をクリックします: Testers Google Play Console のテスター

  3. 次をクリックします: Copy link Google Play Console でリンクをコピー

  4. スマートフォンにリンクを送り、ブラウザで開いてから、以下をクリックします: Accept Google Play Console で招待を承諾

  5. 招待が承諾されたことを確認し、「Play Store でダウンロード」をクリックしてください Google Play Console で Play Store からダウンロード

  6. アプリをインストール

    1. Android Studio を使う前にアプリをインストール済みの場合は、以下をクリックしてください: uninstall ボタンをクリックします Google Play Console でアプリをアンインストールする
    2. 次の install ボタンをクリックします Google Play Console でアプリをインストールする
    3. アプリを開き、正常にダウンロードされたことを確認します

これで、Capgo Native Build のセットアップを開始できます。おめでとうございます 🎉!

要件フラグ説明必須
Keystoreファイル--keystore <path>ファイルのパス .jks/.keystore APK/AABの署名に使用するファイル。はい
Keystoreエイリアス--keystore-alias <alias>Keystore内のキーのエイリアス名。はい
Keystoreのキーパスワード--keystore-key-password <password>キーのパスワード。キーとストアのパスワードが同じ場合、1つだけ指定できます。以下の注記を確認してください
Keystoreのストアパスワード--keystore-store-password <password>keystoreのパスワード。キーとストアのパスワードが同じ場合、1つだけ指定できます。以下の注記を確認してください
Google Playサービスアカウント--play-config <path>Play Storeへのアップロードに使用するJSONサービスアカウントファイル。はい
ターミナル
bunx @capgo/cli@latest build credentials save --platform android \
--keystore ./path/to/keystore.jks \
--keystore-alias "your-alias" \
--keystore-key-password "key-password" \
--keystore-store-password "store-password" \
--play-config ./play-store-service-account.json

Keystore、keystoreパスワード、keystoreキーパスワード、keystoreエイリアス

セクション「Keystore、keystore パスワード、keystore キーパスワード、keystore エイリアス」

に従った場合 手動ビルド手順に従っていれば、keystore はすでに生成されているはずです。 手順に従っていない場合は、keystore を生成するために手順に従ってください。

Google Play のサービスアカウント生成は手動かつ複雑なプロセスです。 しかし、アプリを Google Play にアップロードするには必須です。以下の点にご注意ください:

  • お客様 必要 であること 開発者アカウントのオーナー。そうでなければ、サービスアカウントを設定できません。
  • 新しい Google Cloud プロジェクトを作成する必要があります(Google Play アカウントとは別)

始めましょう。

  1. 以下に移動します: Google Cloud Console

  2. プロジェクトセレクターをクリックします Google Console プロジェクトセレクター

  3. 既存のプロジェクトがある場合は選択してください。ない場合は、新しいプロジェクトを作成します:

    1. 次をクリックします: New project Google Console の New Project ボタン
    2. プロジェクト名を入力してクリックします Create 名前入力欄と Create ボタンが表示されたプロジェクト名入力画面
    3. 正しいプロジェクトを選択していることを確認してください セレクターに表示されたプロジェクト名で、正しいプロジェクトが選択されていることがわかります
  4. 検索バーをクリックして、以下を検索します service accounts をクリックします Google Consoleの検索バー

  5. クリックします Create service account Google Consoleの「サービスアカウントを作成」ボタン

  6. サービスアカウントのフォームに入力し、次をクリックします Done

    1. 名前は以下に設定することをお勧めします Capgo Native Build Service Account
    2. Service Account ID は以下に設定することをお勧めします capgo-native-build-service-acc
    3. 説明は必須ではありませんが、以下を入力することをお勧めします Allows Capgo Native Build to build and submit the app to the Play Store

    Google Consoleのサービスアカウント作成フォーム

  7. 新しく作成したサービスアカウントをクリックしてください リストに新しく作成したサービスアカウントが表示されているはずです。それをクリックします。 Google Consoleで新しく作成したサービスアカウント

  8. 次の Keys タブ Google Console の Keys タブ

  9. 次をクリックします: Add Key と Create new key Google Console でキーを追加して新しいキーを作成

  10. 次をクリックします: JSON と Create Google Console の Create Key ボタン

  11. JSONファイルをダウンロード JSONファイルは自動的にダウンロードされているはずです。以下をクリックすると close ウィンドウが閉じます。 Google Console のダウンロードキー

サービスアカウントにPlay Store API へのアクセス権を付与

「サービスアカウントに Play Store の API へのアクセス権を付与する」セクション

作成したばかりのサービスアカウントには、まだ Play Store の API へのアクセス権がありません。付与するには、Play Store Console に移動してください。

  1. 以下に移動します: Google Play Console
  2. 正しいデベロッパーアカウントを選択 Google Play Consoleで正しいデベロッパーアカウントを選択してください
  3. 次をクリックします: Users and permissions Google Play Consoleのユーザーと権限
  4. 次をクリックします: Invite new users Google Play Consoleで新しいユーザーを招待する
  5. サービスアカウントのメールアドレスをコピー Google Play Consoleでサービスアカウントのメールアドレスをコピー
  6. 以下に移動します: Account permissions 必要最小限の権限を付与します:
    • では App permissions、アプリへのアクセス権限を付与します。
    • では Releases、有効にする Create, edit, and roll out releases.
    • ワークフローで Play App Signing を使用している場合は、関連する署名権限を有効にしてください。
    • 不明な場合は、使用してください Admin セットアップ時のみ使用し、その後は権限を減らしてください。 Google Play Console の権限付与
  7. 次をクリックします: Invite user Google Play Console のユーザー招待
  8. 招待を確認する Google Play Console の招待確認
  9. ユーザーが招待されたことを確認してください Google Play Console でユーザーが招待されていることを確認してください

認証情報を保存して、最初のビルドを実行する準備が整いました。 以下のコマンドを使用して認証情報を保存できます:

ターミナル
bunx @capgo/cli@latest build credentials save --platform android \
--keystore ./path/to/keystore.jks \
--keystore-alias "your-alias" \
--keystore-key-password "key-password" \
--keystore-store-password "store-password" \
--play-config ./play-store-service-account.json

すでに完了している場合 Keystore、keystoreパスワード、keystoreキーパスワード、keystoreエイリアス と Google Playサービスアカウント、CI/CDに必要なものはすべて揃っています。 このセクションでは、それらの値をGitHub Actionsのシークレットや環境変数として渡す方法のみを説明します。

1) 認証情報ファイルを単一行のbase64に変換する

セクション「1) 認証情報ファイルを1行のbase64に変換」
ターミナル
# Android keystore (.jks or .keystore)
base64 -i ./path/to/keystore.jks | tr -d '\n' > keystore_base64.txt
# Google Play service account JSON
base64 -i ./play-store-service-account.json | tr -d '\n' > play_config_base64.txt

2) リポジトリシークレットを作成

セクション「2) リポジトリシークレットを作成」

では GitHub > Repository > Settings > Secrets and variables > Actions、追加:

シークレット名値
CAPGO_TOKENCapgo API トークン
APP_IDCapgo アプリの ID(例: com.example.app)
ANDROID_KEYSTORE_FILE内容: keystore_base64.txt
KEYSTORE_KEY_ALIASからの Keystore エイリアス Keystore、keystoreパスワード、keystoreキーパスワード、keystoreエイリアス
KEYSTORE_KEY_PASSWORDKeystoreのキーパスワード
KEYSTORE_STORE_PASSWORDKeystoreのストアパスワード
PLAY_CONFIG_JSON内容: play_config_base64.txt

3) GitHub Actions workflow で環境変数を使う

セクション「3) GitHub Actions workflow で環境変数を使う」
.github/workflows/android-build.yml
name: Android Cloud Build
on:
workflow_dispatch:
push:
branches: [main]
jobs:
android-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Request Android build with Capgo
run: bunx @capgo/cli@latest build request ${{ secrets.APP_ID }} --platform android
env:
CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }}
ANDROID_KEYSTORE_FILE: ${{ secrets.ANDROID_KEYSTORE_FILE }}
KEYSTORE_KEY_ALIAS: ${{ secrets.KEYSTORE_KEY_ALIAS }}
KEYSTORE_KEY_PASSWORD: ${{ secrets.KEYSTORE_KEY_PASSWORD }}
KEYSTORE_STORE_PASSWORD: ${{ secrets.KEYSTORE_STORE_PASSWORD }}
PLAY_CONFIG_JSON: ${{ secrets.PLAY_CONFIG_JSON }}

おめでとうございます 🎉! 初回のビルドを実行する準備が整いました。

実行:

ターミナル
bunx @capgo/cli@latest build request com.example.app --platform android

これでビルドプロセスが開始されます 🍾🥂

Playのリリースを審査に提出する

「Play リリースを審査に提出」セクション

デフォルトでは、Android のリリースビルドは Google Play にアップロードされ、Play Console でリリースを完了するまで非アクティブのままにできます。CI リリースで Play リリースを自動的に提出する場合は、 --submit-to-store-review リリースビルドで渡します:

ターミナル
npx @capgo/cli@latest build request com.example.app \
--platform android \
--build-mode release \
--submit-to-store-review \
--android-track production \
--store-release-name "1.2.3" \
--store-release-notes "General improvements" \
--store-release-notes-locale "en-US=General improvements" \
--store-release-notes-locale "nl-NL=Algemene verbeteringen" \
--store-release-notes-locale "fr-FR=Ameliorations generales"

これには、通常のアップロードパスと同じGoogle Playサービスアカウントの設定が必要です(PLAY_CONFIG_JSON をCIで使うか、Androidの認証情報をローカルに保存する場合)。 --store-release-name はGoogle Playの version_name. --store-release-notes はPlayの変更履歴のフォールバックで、各 --store-release-notes-locale "locale=notes" entry はそのロケール向けのローカライズされた Play 変更履歴を書き込みます。Capgo は Play リリースを次のように送信します completed を上書きしない限り、 --android-release-statusPlay Console で「管理公開」が有効な場合、Google は承認後も手動公開を待ちます。

使用している場合 Android ビルド CI/CD自動化を計画するには、次と連携してください Capgo での CI/CD 設定 Capgo CI/CDでのプロダクトワークフローについては、 Capgo Native Build Capgo Native Buildsでのプロダクトワークフローについては、 Capgo インテグレーション Capgo インテグレーションでのプロダクトワークフロー向けに、 CI/CD 連携 CI/CD Integrationの実装詳細については、 GitHub Actions 連携 GitHub Actions Integrationの実装詳細については。