クライアントは、Lovableのボタン1つで全アクティブユーザーに変更を配信したいと考えています。更新フローが手動で動くことはすでに確認済みです:
npx @capgo/cli@latest bundle upload --channel=production --auto-bump
足りないのは、Lovable内で実行する別のターミナルコマンドではありません。 LovableはPublish時にCapgoを実行できません。 GitHubの同期が有効な場合、 Publishはリポジトリへのコミットをプッシュします. GitHub Actionsがビルドを実行し、 bundle upload 代行します。
このガイドでは、クライアント側で一度だけ必要な手動設定について説明します。それは、 CAPGO_TOKEN を GitHub secret として追加することです。ワークフローファイルについては、用意されたAI指示をLovableにコピー&ペーストしてください(ステップ3)。
パイプラインの仕組み
| ステップ | 担当 | 発生するアクション |
|---|---|---|
| 1 | クライアント | Lovableでアプリを編集し、 公開 |
| 2 | Lovable | GitHub へのコミットとプッシュ(通常は main) |
| 3 | GitHub アクション | npm ci, npm run build, bundle upload --auto-bump Capgo へ) |
| 4 | Capgo | 対象チャネルの production アクティブなデバイスにアップデートが配信されます |
SSH不要、ローカルの CLI も不要。シークレット設定後はクリックすら不要です。
前提条件
- GitHub に接続された Lovable プロジェクト(エクスポートガイド)
- Capacitor +
@capgo/capacitor-updaterリポジトリ(Lovableからモバイルへのガイド) - Capgoに登録済みのアプリ、および
capacitor.config.ts正しいappId productionchannelが存在し、ユーザーが実行するビルドに紐付いていること
なぜ必要か --auto-bump
すべてのCapgo uploadには、 新しい一意のbundleバージョンが必要です。Lovable Publishは自動で package.json を更新しないため、同じバージョンを再利用すると2回目のデプロイでCIが失敗します。
--auto-bump channel(またはapp)の最新バージョンを読み取り、インクリメントします。デフォルトのレベルは minorです。以下のように指定できます。 --auto-bump patch または --auto-bump major もしよろしければ。
ステップ 1 — Capgo API キーを作成する
- 開く console.capgo.app/apikeys/
- アプリの bundle を upload する権限がある API キーを作成します
- キーは一度だけコピーしてください。完全な値は二度と表示されません。
このキーはパスワードと同じように扱ってください。Git に commit したり、Lovable のチャットに貼り付けたりしないでください。
ステップ 2 — 追加 CAPGO_TOKEN GitHub 内(唯一の env ステップ)
これは Kuldeep と、リポジトリを所有するクライアントに送るステップです。
- Lovable が同期する GitHub リポジトリを開きます
- 以下に移動します: 設定 → Secrets と変数 → アクション
- クリック 新しいリポジトリ Secret
- Name:
CAPGO_TOKEN - Value: ステップ1の Capgo API キーを貼り付けます
- 保存
GitHub は、この secret を以下の形式で workflow に注入します: ${{ secrets.CAPGO_TOKEN }}以下の workflow では、これを CAPGO_TOKEN Capgo CLI 用の環境変数として読み込みます。
リポジトリがクライアントの組織内にある場合は、その 組織の リポジトリにsecretを追加する必要があります。Lovableの設定ではなく、GitHubのキーのみが必要です。
ステップ 3 — このプロンプトをLovableに貼り付ける
以下のブロックをLovableのチャットにコピーしてください。デフォルトブランチが mainでない場合は、 main ワークフロー内の箇所を自身のブランチ名に置き換えてください。
Add Capgo Live Updates CI with GitHub Actions.
Create `.github/workflows/capgo-live-updates.yml` (create folders if needed). Start from this YAML, then adapt install/build to this project while keeping Capgo upload + CAPGO_TOKEN secret behavior:
name: Capgo Live Updates
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '24'
cache: 'npm'
- name: Install and build
run: |
npm ci
npm run build
- name: Upload bundle to Capgo
run: npx @capgo/cli@latest bundle upload --channel=production --auto-bump
env:
CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }}
Rules:
- Do not hardcode any Capgo API key in the repo or in chat.
- The workflow must read CAPGO_TOKEN only from GitHub Actions secrets (`${{ secrets.CAPGO_TOKEN }}`).
- Keep `--auto-bump` on the upload command so each Publish gets a new unique bundle version.
- Prefer the project's real production build script from package.json (for example `npm run build` or `vite build`).
- If package-lock.json is missing, use `npm install` instead of `npm ci`.
- Do not modify app UI or Capacitor config for this task.
- Commit the workflow file so the next Publish pushes it to GitHub.
Lovableに変更が適用されたら、 公開 をクリックして、ワークフローをGitHubに反映させます。
手動で行う場合
Lovableのチャットを使用しない場合は、 .github/workflows/capgo-live-updates.yml このYAMLのみを使用してください(プロンプトの文章ではありません)。プロジェクト構成が異なる場合は、上記のルールに従ってinstall/buildの手順を適宜変更し、commitしてpushしてください。
name: Capgo Live Updates
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '24'
cache: 'npm'
- name: Install and build
run: |
npm ci
npm run build
- name: Upload bundle to Capgo
run: npx @capgo/cli@latest bundle upload --channel=production --auto-bump
env:
CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }}
Vite base path: LovableのViteアプリでは、多くの場合以下が必要になります: base: './' における vite.config.ts これにより、ネイティブシェル内でアセットが正しくロードされます。OTAアップデート後に画面が白くなる場合は、Lovableに以下を設定するよう依頼してください: base: './'、再度publishを行い、ワークフローによる再デプロイを待ってください。
暗号化されたbundle: もし以下を使用している場合は: Capgo 暗号化、以下を追加してください: CAPGO_PRIVATE_KEY を2つ目の GitHub secretとして追加し、 --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}" upload ステップにて。
ステップ 4 — Publish を確定してデプロイを開始
- Lovable で、目に見える小さな変更(ボタンのラベルテキストなど)を加えます
- クリック 公開
- GitHub で、以下を開きます アクション そして、以下を確認します Capgo Live Updates
- ジョブが成功(緑色)したら、 Capgo コンソール 新しい bundle が作成されたことを確認します
productionチャンネル - アプリをインストール済みのデバイスで、変更が反映されたことを確認してください(チャンネル設定により1分ほどかかる場合があります)
✅ 成功: LovableでPublish → 緑の GitHub Action → Capgoに新しいbundle → ユーザーにアップデートが届く。
トラブルシューティング
| 症状 | 考えられる原因 | 解決策 |
|---|---|---|
| ワークフローが実行されない | プッシュ先が指定のブランチ以外になっている main |
変更内容 branches ワークフロー内、またはpublish先の main |
CAPGO_TOKEN / 認証エラー |
Secretが未設定か、名前が間違っています | Secretは完全一致で CAPGO_TOKEN Actions secrets の下に |
| バージョンは既に存在します | アップロードで同じbundleバージョンが再利用されました | 保持 --auto-bump アップロードステップで (または渡す) --auto-bump patch) |
Buildが失敗する npm ci |
Lockfileが同期していません | 実行 npm install ローカルでcommit package-lock.json、再公開する |
| アップロードは成功していますが、画面が白くなります | 間違い webDir または Vite base |
一致 capacitor.config.ts webDir ビルド出力に合わせる(dist Vite の場合は、 base: './' |
| ユーザーにアップデートが表示されません | Channel がビルドに紐付けられていません | Capgo で、デバイスのビルドを紐付ける production または channel を public に設定してください |
その他のワークフローパターン(feature branches、PR channels、暗号化)については、こちらを参照してください GitHub Actionsとの連携.
クライアントに伝える内容
このチェックリストを送ってください:
- お客様 LovableをGitHubに接続し、モバイルアプリにCapgoを設定済みであること。
- クライアントは GitHubのsecretを1つ追加します:
CAPGO_TOKENCapgoのAPIキーを使って(apikeysページ)). - クライアントは クリックして 公開 Lovable上で、ユーザーにいつでも変更を届けたい時に実行できます。
- それ以外で、
npx @capgo/cliローカル環境で実行することはありません。
これは、彼らが求めていた「ワンクリック体験」を実現しています。Lovableで「Publish」を押すだけ。あとは GitHub Actions と Capgo がすべて処理します。
次へ進む
- LovableをiOSとAndroidに変換 — アプリのラップがまだの場合は、Capacitor と Capgo のフルセットアップが必要
- GitHub Actionsによる自動ビルドとリリース — タグベースのリリースとバージョンアップ
- GitHub Actionsとの連携 — マルチチャネルおよびPRプレビューチャネル
- Capgo Live Updates — チャネル、ロールバック、導入統計