コンテンツにジャンプ

ロールバック

Capgoのライブ アップデート機能により、ユーザーに迅速に改善と修正を提供できますが、状況によっては、以前のバージョンに戻す必要がある場合があります。新しいアップデートが予期せぬ重大な問題を導入したり、特定の変更を修正するために修正を取り消したい場合は、修正を取り消す必要があるかもしれません。

Capgoは、チャンネルのビルドを管理し、ユーザーが受信するアプリのバージョンを制御するためのさまざまな方法を提供します。これには、手動のロールバックオプションと自動的な安全機構も含まれます。

Capgoには、ユーザーを破損したアップデートから保護するための組み込みの安全機構が含まれています。JavaScript エラーがメソッドが呼び出される前に発生した場合、プラグインは自動的に前の正常に動作するバージョンにロールバックします。 notifyAppReady() 自動ロールバックのしくみ

「自動ロールバックのしくみ」のセクション

ロールバック保護

新しいアップデートがダウンロードされ、適用された場合、Capgo は、アップデートが正常にロードされたことを確認するために、アプリが呼び出すことを期待します。 notifyAppReady() __CAPGO_KEEP_0__ のこのメソッドは、以下のことを示します。

  • JavaScript バンドルが重大なエラーなしでロードされた
  • アプリの基本機能が正常に動作している
  • アップデートが安全に保持されている

もしも、 notifyAppReady() このメソッドがJavaScriptのクラッシュや重大なエラーにより呼び出されなかった場合、Capgo は:

  1. アップデートが正しく初期化されていないことを検出する
  2. 自動的に前の正常に動作していたバンドルに戻す
  3. 問題のあるアップデートを失敗としてマークして再度適用しないようにする
import { CapacitorUpdater } from '@capgo/capacitor-updater'
// Call this after your app has successfully initialized
await CapacitorUpdater.notifyAppReady()

この自動保護により、誤って破損した更新をプッシュした場合でも、ユーザーは機能しないアプリに巻き込まれません。

Capgo が notifyAppReady() を呼び出すまで待つ時間を設定することができます。 appReadyTimeout in your Capacitor configuration:

{
"plugins": {
"CapacitorUpdater": {
"appReadyTimeout": 10000
}
}
}

クリップボードにコピー appReadyTimeout の値はミリ秒で指定されます。デフォルトのタイムアウトは通常 10 秒ですが、必要に応じてこの値を調整できます。アプリの初期化プロセスが複雑な場合、アプリのロード時間が長くなった場合、値を増やすことを検討してください。

__CAPGO_KEEP_0__の前のバンドルに戻す

__CAPGO_KEEP_0__の前のバンドルに戻すのセクション

Capgoに新しいビルドをアップロードし、チャネルに割り当てるとき、Capgoはそれらのビルドの履歴を保存します。特定のアップデートを戻したい場合は、以前のビルドのいずれかを選択してチャネルに再デプロイできます。

__CAPGO_KEEP_0__のロールバックUI

Capgo Dashboardのチャネルを表示するときに4番目のタブ(History)を使用すると、ロールバックの主な方法が利用できます。このタブでは、チャネルに利用可能なすべてのビルドを視覚化し、以前のバージョンに簡単に選択して戻すことができます。

__CAPGO_KEEP_0__ Dashboardでロールバックする方法

  1. __CAPGO_KEEP_0__にログインする Capgo Dashboardにアクセスし、チャネルセクションに移動する.

  2. チャネル名をクリックしてください。

  3. チャネルを表示し、4番目のタブ(History)に移動する

  4. ビルド履歴で戻したいビルドを探す

  5. __CAPGO_KEEP_0__ Dashboard

  6. そのビルドを選択して、チャンネルでそのビルドを有効にする。

  7. このビルドに戻りたいことを確認します。

代替方法:クラウン アイコンを使用する

「クラウン アイコンを使用する」セクション

2番目の方法として、チャンネルのビルド履歴の最初のタブで、任意のビルドの隣にあるクラウン アイコンをクリックして直接戻ります。

  1. チャンネルビューの最初のタブで、戻りたいビルドを探します。
  2. クラウン アイコンをクリックして、チャンネルのビルド履歴でそのビルドを有効にする。 チャンネル管理オプション
  3. このビルドに戻りたいことを確認します。

__CAPGO_KEEP_0__のチャンネル設定を元に戻すと、更新チャンネルに接続されているデバイスは、更新を検索するときに前のビルドを受信します。元に戻したビルドは、通常の更新フローと条件に従って新しい更新として扱われます。

チャンネルを解除する

チャンネルを解除するセクション

問題を調査するために、チャンネルに更新を一時停止したい場合は、チャンネルを現在のビルドから解除できます。

チャンネルを解除するには:

  1. Capgo ダッシュボードにチャンネルを移動します。

  2. 現在のビルドの横の「解除」ボタンをクリックします。

  3. チャンネルを解除することを確認します。

チャンネルが解除されたら、チャンネルに新しい更新を配布しなくなります。チャンネルに接続されているデバイスは、チャンネルがビルドに再接続されるまで、現在のビルドに留まります。

問題が発生した更新を特定したが、どのビルドに戻すか決められていない場合は、チャンネルを解除することが便利です。チャンネルを解除すると、問題を調査する時間を稼ぎながら、さらに更新を配布することができます。

インストール済みの組み込みパッケージを強制する

インストール済みの組み込みパッケージを強制するセクション

より重篤な状況では、チャンネル内のすべてのデバイスを、元のアプリのネイティブバイナリと同梱されたオリジナルのWebビルドに戻したい場合があります。これは「組み込みバンドル」と呼ばれます。

組み込みバンドルを強制する:

  1. チャンネルをCapgoダッシュボードに移動します。

  2. 「組み込みバンドル」ボタンをクリックします。

  3. 組み込みバンドルを強制することを確認します。

組み込みバンドルを強制すると、チャンネルに設定されているすべてのデバイスは、更新チェックの次回以降、元に同梱されたWebビルドに戻ります。これは、現在のビルドに関係なく、発生します。

これは、特定の前のビルドに戻ることよりも、より強力なロールバックオプションです。アプリが最後にアプリストアに公開された時点から、すべてのライブアップデートを破棄します。

問題の監視と対応

Monitoring and Responding to Issues

問題発生を迅速に検出し、問題のある更新の影響を最小限に抑えるには、リリースを監視し、問題に応じて対応するための計画が必要です。

いくつかの戦略があります。

  • 更新のリリース後すぐにクラッシュレポートとユーザーフィードバックを監視する
  • フェーズドロールアウトまたはステージドチャンネルシステムを使用して、幅広いリリース前に小規模なグループで更新をテストする
  • ロールバック、アンリンク、または組み込まれたバンドルを強制するための明確な決定プロセスを持ち、誰がそれを行う権限があるかを決定する
  • 問題と解決策についてユーザーに伝える

注意深い監視と問題のある更新を迅速に管理できる能力を組み合わせると、ユーザーに影響を最小限に抑えながら、継続的に改善されるアプリの体験を提供できます。