メインコンテンツにジャンプ
生産アップデート

すべてのユーザーが最新の修正を取得する

Upload a new web bundle from the CLI or CI. Devices download it in the background and run it the next time the app comes back to the foreground. Roll it out by percentage, watch it in Observe, and roll back if it misbehaves.

マーティンから人間のサポート

クレジットカードなし
自動ロールバック機能
Web層のみのアップデート

問題

製品のリリースは小さな修正を迅速に配信するための遅い方法です

ストア専用の修正パス

1

バグを見つける

監視またはサポートレポートで画面が破損していることが報告されます。修正はJavaScriptまたはCSSの数行です。

2

新しいバイナリをビルドする

バージョンを上げ、iOSとAndroid用にビルドし、2つのストアの提出準備を行います。

3

承認を待つ

承認は通常24~48時間、またはそれ以上の場合があります。却下すると待ち時間が再び始まります。

4

ユーザーが更新を待つ

承認後も、各ユーザーは新しいバージョンをインストールする必要があります。すると、古いcodeが実行されます。

各ステップは、修正が完了してユーザーのデバイスで実行されるまでの時間を追加します。

なぜ修正がユーザーに遅く到達するのか

24–48時間以上

通常のストアレビュー時間

AppleとGoogleは新しいバイナリをレビューする。レビューは通常24–48時間、またはそれ以上の場合、または却下された場合は再提出する必要があります。

ユーザーあたり

各デバイスごとにストアの更新が依存する

ユーザーが、またはユーザーの自動更新設定が、ストアの更新をインストールするまで、デバイスは更新が到達しません。古いビルドに長く留まるデバイスもあります。

2つのストア

修正ごとに2回の提出

App StoreとGoogle Playは同じウェブ修正を別々にレビューし、リリースするため、同じ修正は2回の提出が必要になります。

ソリューション

ユーザーに到達するまでのlive updateの流れ

こののはCapgoのデフォルトの更新動作です。更新の促し、強制的な再起動、ウェブ層の変更のストアの提出はありません。

デフォルトの更新フロー

  1. アプリは更新を確認します

    アプリが前面に来ると、そして10分ごとに開いている間、アップデーターはCapgoからチャンネルの最新のバンドルを問い合わせます。

    前面

  2. バンドルはバックグラウンドでダウンロードされます

    新しいバンドルはユーザーが現在のバージョンを使用している間ダウンロードされます。デルタ更新の場合、変更されたファイルのみがダウンロードされます。

    中断なし

  3. 次の再開でスイッチします

    ユーザーがアプリを離れたとき、アップデーターはバンドルをインストールします。次に、ユーザーがアプリを開くと、新しいバージョンを実行します。

    次の前面

ユーザーが新しいバージョンをすぐにアプリを開く必要がある場合、直接更新モードは起動時にスプラッシュ画面が表示されている間適用します。

最新のアップデートを直接確認

アップデートの動作に関するドキュメント

どうやって機能するか

Capgo アプリの通常のリリース

A typical release for a Capacitor app that is already in the stores. Every command below is from the Capgo CLI docs.

  1. notifyAppReady() のドキュメント

    プロダクション環境に修正をアップロード

    npx @capgo/cli@latest init
    # in your app start-up code
    await CapacitorUpdater.notifyAppReady()
    --delta と --rollout を使用して進歩的なロールアウト
  2. 進歩的なロールアウトのドキュメント

    __CAPGO_KEEP_0__ が悪いロールアウトを止める

    npx @capgo/cli@latest bundle upload --channel production --delta --rollout 5
    __CAPGO_KEEP_0__
  3. Capgoの不正解放を止めましょう

    500の基準点で5%の失敗率を設定すると、失敗率が高い場合にロールバックが実行されます。Capgoは新しいバージョンを確認します。

    npx @capgo/cli@latest channel set production \
      --auto-pause-enabled \
      --auto-pause-failure-rate-bps 500 \
      --auto-pause-action rollback
    Observeドキュメント
  4. 全員に推進

    数値が正しければ、チャンネル内のすべてのデバイスにバンドルを推進します。そうでない場合は、ロールアウトコホートを安定状態に戻します。

    npx @capgo/cli@latest channel set production --rollout-promote
    # or, if something looks wrong
    npx @capgo/cli@latest channel set production --rollout-rollback
    ロールバックドキュメント

生産用リリース用に作られた

生産用リリースの制御チームがユーザーに驚かれないようにしながら、しばしばリリースするもの

デルタアップデート

ファイルの変更点を--deltaオプションでアップロードし、デバイスは現在のバンドルから変更されたファイルのみをダウンロードする。 まれに変更されない大きなアセットは、ダウンロードされる

  • ユーザーが遅いネットワークまたはメートルネットワークにいる場合、ダウンロードサイズが小さくなる
  • デフォルトモードでは、更新はセッションの間で適用される。セッションの途中で適用されることはない
デルタアップデートドキュメント

--delta

変更されたファイルのみがダウンロードされる

進化的なロールアウトと自動停止

ランダムに選択されたチャンネルの固定シェアに新しいバンドルを送信し、他のすべてのユーザーは安定したバンドルに留まる。CLI またはコンソールからパーセンテージを上げてプロモートするか、ロールバックする。

  • 失敗率が指定された閾値を超えたときにロールバックまたはロールバックを自動的に実行できます。
  • オブザーブは、新しいバージョンと前のバージョンを比較する前に、露出を上げる前に行われます。
進化的なロールアウトのドキュメント

1–5%

最初のロールアウトステップは通常どのようになります。

自動ロールバック

新しいバンドルがnotifyAppReady()を呼び出さない場合、デバイスは最後の正常に機能したバンドルに戻り、新しいバンドルを失敗としてマークします。

  • notifyAppReady()が呼び出されない場合、ロールバックトリガーが発生します (デフォルトは10秒)。
  • チャンネル全体を、チャンネルの履歴から任意の前のバンドルにロールバックします。
notifyAppReady()のドキュメント

10秒

自動ロールバックのデフォルトのappReadyTimeout

配信レビューに応じた配信

CapgoはCapacitorのWeb層: JavaScript、CSS、資産を提供します。Nativeバイナリ、プラグイン、権限、エンタイトルメント、またはアプリストアメタデータは変更されません。ストアレビューはアプリ固有のものなので、ポリシーへの準拠と承認について責任を負ってください。

  • Nativeストアリリースを使用する必要があります。Native機能、プラグイン、権限、またはアプリストアメタデータが変更された場合
  • レビューノートは、Web層のアップデートパスとアプリの目的の機能性を明確にします。
  • AppleとGoogleの現在のポリシーを各提出前に確認してください。

これを使用することの意味

ライブアップデートが実装された後、日常のリリース作業を行う。各カードはドキュメントへのリンクです。

重大なバグ修正

チェックアウトまたはログイン画面が壊れた場合、Web層の修正をアップロードし、デバイスは次回のアップデートチェックでそれを取得します。

アップデート動作ドキュメント

コピーとコンテンツの変更

ビルドせずに、Live Update、ヘルプテキストの修正、画像やその他のバンドルアセットの置き換えを行うことができます。

ネイティブ互換性ドキュメント

リリースの健康状態をObserveで確認する

新しいバンドルと前のバンドルを比較する: 問題のない率、リリースとWebViewのタイミング、バージョンごとのデプロイマーカー

Observeドキュメント

アップデート通知で早くキャッチする

チャンネルのバンドルを変更した後、静的なアップデート通知を送信して、デバイスが今すぐチェックするようにする

アップデート通知を送信

古いネイティブビルドを保護する

チャンネルでメジャーアップデートをブロックして、古いバイナリに新しいネイティブcodeが到達しないようにする

バージョン対象ドキュメント

チャンネル履歴からロールバック

任意の前のバンドルをチャンネルのHistoryタブで選択して、すべてのデバイスに再度有効化します。

ロールバックドキュメント

既存のプロダクションアプリをサポートするインフラ

Capgoは2021年から生産アプリにライブアップデートを提供してきました。

月間アップデート数
1億+
対象デバイス数
90百万+
Apps using Capgo
4.7万+
通常の API ラテンシティ
~50ms

Apps built with Capacitor

高トラフィックのアプリには、生産時点でのUIの信頼性が必要

天気予報、公衆衛生、通信アプリは、正確なインターフェイス、警告、ナビゲーションに依存しています。生産時点での更新は、承認されたインターフェイスの修正を配信し、採用を監視する前に拡大する

Windy.com - 天気予報アプリのアイコン 天気

Windy.com - 天気予報

地図、警報、ナビゲーションを含む天気アプリでは、生産拡張に注意が必要です。

Google Play インストール
32,900万
評価
4.7
Conecte SUS アプリのアイコン MEDICAL

アップデートの連続

公衆衛生アプリでは、迅速かつ信頼できる情報の更新が必要です。

Google Play インストール
27.7M
ストア評価
4.6
Mi Orange アプリ アイコン ツール

ミオレンジ

携帯電話のアカウントアプリで、警告やアカウントの表面が頻繁に変更される。

Google Play インストール
9,300万
ストア評価
4.2

顧客の証明

Capgo を使用しているチームが言っていること

5.0/5 開発者チームによる評価 9,400+ チーム レビューを読む
セルジウ・S

セルジウ・S

リーダー開発者、ドライヴォリンゴ GmbH

「CapgoのCapgo Capacitor Updaterプラグインは、更新を配信する方法を大幅に変えました。 これまでの1日かけて行っていた作業は、わずか数分で完了します。」

カピル

ファウンダー、NuTriQ

“App Storeのフルレビューサイクルを待たずに即時でOTAの生産アップデートをプッシュできることは、運用上の莫大な利点であった.”

Michael Haberler

Portrait of Michael Haberler

ネットヘッド エマージョン

“アップデートプラグインの素晴らしい実行に感謝します。私にとって、ライブアップデートは迅速なテスト回転のスーパーアクセレレーターです。”

FAQ

質問

生産チームがよく聞く質問

ユーザーはいつlive updateを受け取るか

デバイスは緊急修正を早く取得できるか?

はい。チャンネルのバンドルを変更した後、コンソールからアップデート通知を送信するか、--send-update-notificationをbundle uploadに追加すると、デバイスは静的プッシュを受け取り、すぐにチェックします。この機能はiOSとAndroidのプッシュ認証情報とともにCapgo通知と呼ばれます。配信はベストエフォートです。オフラインまたは強制終了されたアプリは、次の起動時にチェックします。

アップデート通知を送信

アップデートがアプリを壊す場合に何が起こる?

新しいバンドルがnotifyAppReady()を10秒以内に呼び出さない場合、デバイスは前のバンドルに戻り、新しいバンドルを失敗としてマークします。起動を停止しないバグの場合、進化的なロールアウトをロールバックするか、チャンネル履歴から前のバンドルを選択します。

ロールバックドキュメント

最初に何人かのユーザーにリリースする方法は?

--rolloutオプションでアップロードすると、ランダムで固定されたチャンネルのシェアにバンドルを送信し、残りのユーザーは安定したバンドルに留まる。シェアを増やす、プロモート、またはCLIまたはコンソールからロールバックすることができます。自動停止は、失敗率が一定値を超えたときに露出を停止することができます。

進化的なロールアウトドキュメント

何がlive updateで変更できない?

ライブアップデートはウェブ層を置き換えます: JavaScript、HTML、CSS、そしてアセット。ネイティブプラグイン、Capacitorアップグレード、capacitor.config変更、そしてiOSまたはAndroidのプロジェクトファイルはストアリリースが必要です。Capgoはアップロード時にネイティブの互換性をチェックし、チャンネルは古いバイナリへの更新をブロックします。

ネイティブ互換性ドキュメント

次の修正をlive updateで配信

試用期間中は、独自のアプリでフルフローを試してみてください: バンドルをアップロードし、数台のデバイスに展開し、ロールバックしてみてください。

マーティンから人間のサポートを受けます

14日間の無料試用。クレジットカードは必要ありません。