StudySmarter - 学校・大学向け
レッスン、コース、サブスクリプションの変更にステークホルダーの確認が必要な教育アプリ。
- Google Play インストール数
- 650万
- ストア評価
- 4.8
CIが各プルリクエストのWebビルドをそれぞれ専用のCapgoチャンネルにアップロードします。レビュアーはQR code をスキャンするか、アプリ内でチャンネルを切り替えて実機で試せます。PRがクローズされるとチャンネルは削除されます。ネイティブ側のcodeの変更には、引き続き新しいビルドが必要です。
課題
開発者がPRを作成
変更はレビュー可能な状態ですが、まだ実機で試すことができません。
ビルド、署名、アップロード
ブランチ用のNative Buildを作成し、署名してTestFlightやPlayストアのテストトラックにアップロードし、処理完了を待ちます。
招待とインストール
レビュアーをテスターとして追加し、その特定のビルドをインストールする必要があります。
修正のたびに繰り返し
code を変更するレビューコメントが届くたびに、ビルド、アップロード、インストールの工程が繰り返されます。
JavaScriptの変更だけでも、レビューのたびにNative Buildを待つことになります。
すべてのbuild
ストアの処理待ち
TestFlightやPlayのテストトラックにアップロードしたbuildは、テスターがインストールできるようになる前に処理されます。これはすべてのbuildで発生します。
すべてのPR
テストには専用のネイティブビルドが必要
Live Updatesがない場合、Webのみの変更でも、誰かが新しいバイナリをbuild・署名・アップロードするまでレビュアーはブランチを試せません。
フィードバックの遅れ
レビューは作成者が別の作業に移った後
レビューがbuild待ちになると、フィードバックは遅れて届き、作成者は別のタスクに移り、ブランチはmainから乖離します。
仕組み
4つのCIステップ:スコープ付きキーを一度設定、pushごとにアップロード、プレビューを共有、クローズ時にクリーンアップ。以下のコマンドはすべてCapgoのドキュメントからです。
管理者がCI用にApp Preview API キーを作成します。このキーはプレビューチャネルを作成し、bundleをアップロードできますが、デフォルトまたは本番チャネルは変更できません。プレビューの有効化はアプリごとに1回だけです。
# once, run by an admin (not the preview key)
npx @capgo/cli@latest app set com.example.app --preview
App Preview API キー
pushのたびに、CIがWebアプリをビルドし、一意のbundleバージョンでアップロードします。bundle upload --channel は、pr-<number> チャネルが存在しなければ作成し、bundleを紐付けます。
npx @capgo/cli@latest bundle upload com.example.app \
--apikey "$CAPGO_PREVIEW_KEY" \
--path ./dist \
--channel "pr-$PR_NUMBER" \
--bundle "1.2.3-pr.$PR_NUMBER.$GITHUB_RUN_NUMBER"
チャネルドキュメントのPRプレビュー
get-qrはチャネル用のQR code、または --url を付けるとプレビューURLを出力するので、CIがPRコメントに追加できます。
npx @capgo/cli@latest get-qr com.example.app \
--channel "pr-$PR_NUMBER" \
--apikey "$CAPGO_PREVIEW_KEY" \
--url
get-qrのリファレンス
プルリクエストのクローズイベントでこれを実行します。App Preview キーを使えば、そのキーが作成したチャネルと、それに紐付けられたbundleだけを削除します。
npx @capgo/cli@latest channel delete \
"pr-$PR_NUMBER" com.example.app \
--apikey "$CAPGO_PREVIEW_KEY" \
--delete-bundle \
--success-if-not-found
channel CLI リファレンス
どちらもセルフアサインを許可するチャネルが必要です。App Preview キーではこれが設定されないため、そのキーを使う場合は QR プレビューを共有するか、コンソールでデバイスオーバーライドを設定してください。
内部ビルドでシェイクメニューを有効にします。テスターがデバイスを振ると Capgo のテストメニューが開き、シェイクによるチャンネル選択で任意のチャンネルを選べます。
// capacitor.config.ts (internal builds)
CapacitorUpdater: {
shakeMenu: true,
}
開発者設定画面にチャンネルフィールドを追加し、PRのチャンネル名を setChannel() で呼び出すだけです。
import { CapacitorUpdater } from '@capgo/capacitor-updater'
await CapacitorUpdater.setChannel({
channel: 'pr-123',
triggerAutoUpdate: true,
})
setChannel() リファレンス
作成者だけでなく、プルリクエストを確認する全員が実機でチェックできます。
チームのニーズに合ったソリューションを見つける
Capacitor で構築されたアプリ
学習、イベント、コミュニティアプリにおいて、オンボーディング、練習、ライブセッション、サブスクリプションの変更を同時にレビューできます。PR previewsを使えば、マージ前にプロダクト、QA、サポートチームがモバイル対応済みのビルドを検証できます。
レッスン、コース、サブスクリプションの変更にステークホルダーの確認が必要な教育アプリ。
マージ前にイベントフローのテストが必要な、ライブエンゲージメントアプリ。
トーナメントや解析画面のデバイスプレビューが役立つコミュニティアプリ。
CTO, プライベート
「セットアップは1日もかかりませんでした。チャンネルベースのロールアウトのおかげで、本番ユーザーに配信する前に自分のデバイスでテストできます。」
nethead emeritors
“Updater pluginは素晴らしい出来です。完璧に動作していますし、Live Updatesはテストのサイクルを劇的に速めてくれます。”
Webincode 開発者
「Device IDを特定のグループに追加して、そのグループにだけ変更をプッシュできるのは本当に助かります。」
よくある質問
CI担当者とレビュアー、双方の疑問に直接お答えします。
PRがWebレイヤーのみの変更であれば不要です。レビュアーは一度アプリをインストールするだけで、各PRのJavaScript、HTML、CSS、アセットはそれぞれの専用チャネルに配信されます。もしPRでプラグインの追加やネイティブのcodeの変更が行われた場合は、ネイティブビルドが必要です。CIでビルドの要否を検知するように設定してください。
Native Build が必要なケースApp Preview API キーを使用していれば安全です。このキーはプレビューチャネルの作成、bundleのupload、および自身が作成したチャネルとbundleの削除のみが可能です。デフォルトチャネルやメインチャネルを変更することはできません。GitHub Actionsでは、ジョブをpull_requestで実行し(pull_request_targetではなく)、同一リポジトリからのPRのみに制限してください。
App Preview API キー管理者が一度 `app set --preview` を実行してプレビューを有効にします。その後、`get-qr` でPRチャネル用のQR code を出力したり、`--url` でWebプレビューURLとディープリンクを出力したりできます。これらをPRのコメントに投稿してください。
get-qrのリファレンスpull request closed イベントで、`--delete-bundle` と `--success-if-not-found` を指定して `channel delete` を実行するジョブを追加してください。App Previewキーを使用していれば、そのチャネルと紐付いたbundleが削除されます。以前のプッシュによるbundleは、削除権限を持つキーを使用してbundle cleanupで削除できます。
channel CLI リファレンスはい。Capgo CLI コマンドによる手順のため、あらゆるCIで動作します。ドキュメントには GitHub Actions、GitLab CI、Bitbucket Pipelines、Azure DevOps向けの統合ガイドが用意されています。
CI/CD 連携CIにupload、QR、cleanupのステップを追加して、無料トライアル中に自身のアプリで試してみましょう。
Capgo PRプレビューを体験:各プルリクエストを専用の live update チャンネルで確認できます。
Martinによる人的サポート
14日間無制限の無料トライアル。クレジットカード不要 14日間の返金保証。いつでも解約可能。
14日間の無料トライアル(クレジットカード不要)。Native Buildには別途ビルドが必要です。