メインコンテンツにジャンプ

モバイルアプリロールバックプラットフォーム:ハウツー ガイド

最適なモバイルアプリロールバックプラットフォームの機能を比較し、安全なリリース、段階的なロールアウト、分析、自動復旧を設定するにはCapgo。

モバイル アプリ ロールバック プラットフォーム: 使い方のガイド

悪いモバイル アップデートは、チームが問題が発生していることを知る前にユーザーに影響を与えることができます。アプリ ストアのリリースは、ウェブ デプロイと同様に取り消すことができません。正しいロールバック設定は、安全なパスを提供します: 小さな変更を送信し、ライブ シグナルを監視し、1 つのコマンドで知られている良いバンドルを復元します。このガイドでは、そのプロセスを評価して実行する方法を示します。 Capgo.

目次

  • Capgo
  • ステップ 2: ロールバック プラットフォームの機能を比較する
  • ステップ 3: プラットフォームをビルドと CI/CD Pipelines に接続する
  • ステップ 4: チャンネル、ロールアウト、分析を使用してリリースをステージングする
  • ステップ 5: 自動ロールバックを設定してテストする
  • ステップ 6: ロールバック プラットフォームをリリース後に運用する
  • FAQ
  • 結論

1. Capgo

Capgoは、IonicおよびCapacitorアプリ向けのOTA更新とロールバックプラットフォームです。新しいストアレビューを待たずにウェブ層の変更を配信し、チャンネルとステージドリリースを通じて各バンドルの配布を制御できます。

Capgoホームページスクリーンショット

主なポイントは、フィットです。Capacitorアプリには、ネイティブシェルとウェブ層があります。 OTA更新 ウェブ層のみを変更できますが、ネイティブ変更には新しいiOSまたはAndroidビルドが必要です。Capgoは、この分離を中心に構築されており、各種類の変更に対して適切なリリース計画を立てることができます。

Capgoは、以下の4つの要素を同じワークフローに統合します:

  • 自動ロールバック: アプリは、リリースが正常性チェックを通過しない場合に安定したバンドルに戻ることができます。
  • 差分更新: ユーザーは、変更された部分のみをダウンロードすることで、帯域幅の使用を削減できます。
  • CI/CD統合: チームはGitHubアクション、GitLab CI、またはJenkinsとリリースを接続できます。
  • リアルタイム分析: リリースチームは、バンドルが広がるにつれて採用とアプリの健康を監視できます。

弱いモバイル接続では、その組み合わせが重要です。フルバンドルでは、小さなパッチよりも遅くなる可能性があります。差分配布により、ダウンロードサイズが小さくなり、緊急修正がユーザーに迅速に到達する可能性が高くなります。

Capgoは、1コマンドのデプロイメントも使用します。実際には、ビルドジョブはテスト済みのバンドルを公開できるようになり、開発者がダッシュボードを開いて手動でリリースステップを繰り返す必要がなくなります。パイプラインにコマンドを保存し、出力を確認し、チャンネル規則で露出を制御するようにしてください。

ロールアウト前に、明確な安定バージョンを設定し、チームが認識できるリリースIDを付与してください。関連するコミット、ビルドノート、テスト結果をそのIDとともに保存してください。2時ごろに復元する必要がある場合、安全なバンドルを推測する必要がなくなるでしょう。

セキュリティも同じ注意が必要です。Capgoの オーバー・ザ・エア更新の信頼情報 を確認する前に、アクセス規則を設定してください。その後、チームメンバーが生産チャンネルを公開、停止、またはロールバックできるように決定してください。

生産前のプレビューが必要なチームには、プルリクエストがチャンネルにマップできる機能があります。そのため、テスターのバンドルが主なリリースパスから離れます。Capgoの プルリクエストプレビュー チャンネル は、そのようなレビューフローをサポートできます。

モバイル アプリ ロールバック プラットフォームのステージド リリース チャンネル

Capgo は、Capacitor または Ionic を使用するアプリでロールバック、小さいアップデート パケット、CI/CD、分析を 1 つのサブスクリプションあたり組織ごとに提供する強力なスターティング ポイントです。権限の変更、ネイティブ プラグイン、またはアプリ シェルを変更した場合にはネイティブ ストア リリースを置き換えることはできません。その境界は、最初の日からリリース ポリシーにすべきです。

ステップ 2: ロールバック プラットフォームの機能性を比較する

ロールバック プラットフォームを評価するには、回復パスを機能リストだけでは比較するのではなく、比較する必要があります。ユーザーに悪いバンドルが到達した場合に何が起こるか、デバイスがダウンロードするデータの量、パイプラインがマニュアル作業なしで公開できるかどうかを尋ねてください。

以下の表は、質問を使用します。

オプション ロールバック パス 差分更新 CI/CD統合 適切なフィット
Capgo 自動および手動ロールバック はい GitHub アクション、GitLab CI、Jenkins Capacitor と Ionic チームが 1 つのリリースフローを望む
Appflow 以前のバージョンは即時復元できます いいえ — 既存のユーザーがマイグレーションを計画中
エクスポ・アップデート 手動で以前のチャネル更新に戻す いいえ ネイティブ統合のみ Expo と React Native プロジェクト
Japanese Japanese 元のバージョンに戻す — はい
チーム CodePush No いいえ ネイティブ統合のみ
EASアップデート EAS Update No ネイティブ統合のみ React NativeチームはEASをすでに使用しています
手動更新 新しいストアレビューが必要 いいえ — OTAレイヤーなしのアプリ

スタックフィットが先に来ます。Expo UpdatesとEAS UpdateはReact Nativeの議論に属し、ShorebirdはFlutterの議論に属します。Capacitorチームは、ロールバック言語が耳にしっくりくるツールを選択するのを避けるべきです。実行環境は、ツールが安全に変更できるかどうかを決定します。

次に、更新サイズを確認してください。研究では、Shorebirdのパッチが約50から200KBで、フラッタのフルリリースが約15から30MBと比較されています。その差はモバイルデータユーザーにとって大きいです。Capgoは、Capacitorアプリのウェブ層更新に対して、差分配布を適用します。

分析も別の区別線です。ロールバックボタンは行動を示します。ライブ分析は行動のタイミングを示します。リリースレベルデータがなければ、チームはサポートチケットを待つことになります。その遅延は小さな問題をより広範なインシデントに変えます。

ExpoはCI/CDワークフローとパフォーマンスメトリクスを、Observeサービスを通じてサポートしています。比較は実行環境に従うべきであり、一般的なスコアに従うべきではありません。

コストもより広い視点が必要です。低いエントリ価格は、別の分析ツール、カスタムロールバックスクリプト、ストレージ、警告、エンジニアリング時間を追加した場合に、良く見えなくなります。Capgoは、組織ごとにサブスクリプションを使用し、14日間の無料試用版を提供しているため、リリースフローをテストすることができます。

一時的な確認: 供給元が方向性を変える場合に何が起こるかを確認する。新規のプランを販売しなくなったプラットフォームは、現在のユーザーには機能するかもしれないが、将来の移行タスクを生じる。提供元の状況と技術的能力を確認表に記載する。

メインポイント: ランタイムに合ったプラットフォームを選び、チームにテスト済みの復旧パスを提供するのではなく、最も機能が多いプラットフォームを選ぶのではなく。

ステップ3:プラットフォームをビルドとCI/CDパイプラインに接続

リリースパイプラインが再び知られている良いバンドルを公開できる場合にのみ、ロールバック計画が機能します。モバイルアプリロールバックプラットフォームをソース管理、テスト、デプロイコマンドと接続する必要があります。最初のインシデント前に実行してください。実際の CI/CD ワークフローにおけるロールバック戦略, 各パイプラインの失敗を明確な停止、停止、または復元アクションにマップします。

Native ビルドとウェブ層リリースを分離することから始めます。Native ビルドはアプリのバイナリを変更します。OTA バンドルは、すでにインストールされているバイナリが実行できるようにする code を変更します。パイプラインにこのルールを記述して、Native依存性がOTAリリースに間違って含まれないようにします。

リリースジョブを設定し、固定ステージの数を少なくしてください。

  1. 依存関係をロックした依存をインストールする。
  2. タイプチェックとユニットテストを実行。
  3. ウェブアセットを構築する。
  4. アプリのSmokeテストを実行してください。
  5. 非生産チャンネルにバンドルを公開してください。
  6. テスト済みバンドルを生産に昇格してください。

デプロイ用トークンに保護されたシークレットを使用してください。リポジトリにトークンを保存したり、ジョブログにトークンを表示したりしないでください。生産ジョブに別の承認ルールを付与する必要がある場合は、チームが人間のチェックを必要とする前に公開される前に、別の承認ルールを付与してください。

CapgoはGitHubアクション、GitLab CI、Jenkinsと接続されます。ランナーは具体的ではありますが、リリース契約は重要です。ジョブは、どのコミットをビルドしたか、どのチャンネルをターゲットにしているか、どのバージョンを置き換えることができるかを知る必要があります。

新しいプロジェクトの場合、最初のパイプラインは単純に保ちましょう。リリース候補ごとに実行してください。テストチャンネルにバンドルを公開してください。アプリがバンドルをダウンロードし、正常に起動し、稼動可能であることを確認してください。そうすることで、ジョブがリリースを昇格することができます。

Capacitorチームは、lintとテスト用に一般的なCIランナーを使用し、次にネイティブビルドをモバイル専用サービスに移行することがよくあります。その分離は効果的です。Pull Requestごとに高速チェックを近づけ、署名やストアビルドをモバイル専用システムに残すことができます。

CapacitorのCI/CDの研究では、一般ランナーとモバイルスペシャリストの重要な違いが見つかりました。一般ランナーはコントロールが高くなりますが、パイプラインを自分で書く必要があります。専門サービスは、署名、ネイティブビルド、ライブアップデートを同じワークフローで管理する必要がある場合にセットアップワークを削減できます。 リリースガイド 選択肢を検討しているチームがいる場合

今すぐエラーのパスをテストしてください。Smokeテストを破壊し、パブリッシュステップが停止することを確認してください。非生産プロジェクトに間違ったチャンネルにバンドルを送信し、生産が触れられないことを確認してください。これらのチェックは、実際のインシデントがパイプラインに圧力を加えるまで、小さく感じられます。

この時点で、テスト済みのバンドルを1つ発行し、前の安定バンドルを特定し、チェックが失敗したときに安全に停止できるジョブを繰り返し実行できるはずです。そのは、ステージドロールアウトの基礎です。

ステップ 4: チャンネル、ロールアウト、分析を使用したリリースのステージング

コンテキスト: About Capgo ページ。役割: UI ラベル。見られる場所: about.astro ページ。メッセージキー `about_how_step_label` (About How Step Label)。

チャンネルは、各アウディエンスに制御されたリリースパスを提供します。チャンネルは、モバイルアプリロールバックプラットフォームがバンドルが全ユーザーに到達する前に、ダメージを制限する主な理由の1つです。

  • Preview: プレビュー:
  • Canary: カニ:
  • Production: 生産:

全ユーザーに到達した後、ソークパリオドの後、全ユーザーが使用します。

ユーザー層を反映したキャニラーグループを選択してください。最新のスマートフォンを含むより多くのデバイスを選択することをお勧めします。デバイスの年齢、OSバージョン、ネットワークの品質、使用パターンは、バンドルの動作に影響を与える可能性があります。

小規模なロールアウトは、影響範囲を小さくします。10人のユーザーが不良のバンドルを受け取った場合、チームは調査に十分な時間を持ちます。すべてのユーザーが一度に受け取った場合、サポートキューは監視システムになります。そのような状況は、リリースについて学ぶには最悪の場所です。

ユーザーの被害につながる可能性のあるシグナルを監視してください。単にクラッシュ数だけでは、キャニラーグループが活発であるため、クラッシュ数が増加する可能性があります。クラッシュがなかったユーザー数、失敗した起動、認証エラー、重要なアクションの完了率を組み合わせてみましょう。リリース前に基準を設定してください。チームは、リリースで何が変化したかを知ることができます。

シグナルが合意した制限値を超えた場合にロールアウトを停止してください。完璧な診断を待つ必要はありません。最初の行動は、抑制です。チャネルをロールバックするか、プロモーションを停止してください。次に、ログを調査し、失敗したリリースと最後の安定したコミットを比較してください。

チャネルとリアルタイム分析を使用したモバイルアプリのステージング

OTAには制限があります。ネイティブプラグインを追加することはできません。パーミッションを変更することもできません。ネイティブ依存関係を置き換えることもできません。さらに、主要な機能をプッシュすることもできません。ストアレビューが必要な変更は、ストアリリースを使用してください。その後、インストール済みバイナリに合うウェブ層の修正をOTAで使用してください。

エンタープライズアプリでは、デバイスグループを追加してください。倉庫のデバイスとオフィス電話のデバイスは、ロールアウトのペースが異なる可能性があります。フィールドチームは、ネットワークの品質が悪い可能性があります。そのようなグループは、1つのテストプールとして扱うべきではありません。

Capgoのチャンネルモデルは、このような分離をサポートしています。トラッキング、採用、ロールバック。短いループは、リリースオーナーが各バンドルの保持するチャンネルを確認できる場合に実行しやすくなります。

リリースノートを毎回保存してください。変更の理由、ユーザーへの期待される影響、次のステージに進むための信号を記載してください。そうすると、ユーザーが何が変わったかと尋ねたときに、サポートチームと製品チームは共通の答えを持つことができます。

プロのヒント: プロモーション許可よりも停止許可を広く設定してください。サポートリーダーは、元の開発者を待たずにリスクのあるロールアウトを停止できるようにしてください。

ステップ 5: 自動ロールバックの設定とテスト

コンテキスト: Capgo のページ。役割: UI ラベル。表示される場所: about.astro のページ。メッセージキー `about_how_step_label` (About How Step Label)。 rollback configuration for Capacitor updates __CAPGO_KEEP_0__の更新のロールバック設定

も、チームがステージングテストとルールを接続するのを助けてくれます。

次に、エラーを選択してアクションを実行するようにします。候補としては、以下のようなものがあります。

  • 次に、どのエラーがアクションをトリガーするかを選択してください。良い候補は次のとおりです。
  • インストール後にアプリがクラッシュする急激な増加率です。
  • ログインまたはデータの読み込みパスが破損している。
  • 重要なユーザーアクションの数値が大幅に下がっている。
  • 整合性またはバンドルの検証が失敗している。

インストール後に一定期間のタイムウィンドウを設定する。最初の起動時にバグが発生するものもあるが、特定の画面に到達するまでバグが現れずにいるものもある。重要なパスをカバーするタイムウィンドウを設定する必要がある。

次に、システムの動作を決定する。重大な障害の場合、プロモーションを一時停止するか、影響を受けたチャンネルを最後の安定バンドルに戻すか、または両方のアクションを実行する必要がある。順序を書き留め、安全なチャンネルで意図的に不正なリリースをテストする。

Mobile rollback is different from a web revert. A store binary already installed on a phone cannot simply vanish. A new native fix may need store review. OTA rollback works within the code that the installed native shell can run.

ロールバックは機能フラグと良好なリリーステストと並んで置かれるべきである。機能がオンオフにできる場合は、バンドルを置き換える必要がないため、リバートする必要がなくなるかもしれない。

少なくとも3回のドリルを実行する。

  1. リードネスチェックに合格しないバンドルを公開する。
  2. インストール後に制御されたエラーをトリガーする。
  3. 安定バンドルに戻り、リードネスを報告することを確認する。

各ドリルを計測する。問題を検出するのにかかる時間、露出を一時停止するのにかかる時間、安定バンドルに戻り、回復を確認するのにかかる時間を測定する。数値はチームに有益なインシデントの目標を与える。

自動化は短いネットワークダウンタイムをアプリケーションとして誤読する可能性があるため、リリースオーナーは自動アクションを一時停止し、信号を検査し、安全な場合にのみ前進修正を選択できるようにする必要がある。

詳細なCapacitorロールバック手順については、Capacitorロールバック管理のガイドを参照してください。 Capgoロールバック管理のガイドでは、バンドル選択、更新アプリケーション、リードネスチェック、ステージドテストなどをカバーしています。 自動ロールバックを使用して迅速な抑制を行うことは、レビューを省略する許可を与えるものではない。安全なシステムは、早期に悪いリリースを検出して、エンジニアに根本原因を修正するための明確な方法を提供する。

6. リリースプラットフォームの運用

ステップ 6: ランンチ後はロールバックプラットフォームを操作する

リリース前に明確な役割を割り当てて、最初のプロダクションロールアウトを実施する:

リリースオーナー:

  • バンドルをプロモートし、変更を記録する。 インシデントオーナー:
  • 停止するか、ロールバックするか、ロールフォワードするかを決定する。 アプリをリターンするか、ロールバックするか、進むかを決定します。
  • サポートリーダー: ユーザーからの報告を監視し、共通の症状を共有する。
  • エンジニアリングオーナー: 問題を追跡し、修正を準備する。

リリース後、一定のポイントでダッシュボードを確認する。早期採用をチェックし、クラッシュ、起動時間、失敗したリクエスト、主なユーザーアクションを検査する。10分後に問題が見えなくても、ユーザーがよりまれなフローに到達すると問題が発生する可能性がある。

大規模な艦隊向けにはリングベースのロールアウトを使用する。最初のリングには、さまざまなデバイスモデルとネットワーク条件を含める。開発者が新しい電話を持つだけのグループにのみを満たすことは避ける。ユーザーが古いハードウェアまたは限られたストレージを持つ場合に問題が発生することをテストするグループにはなり得ない。

エンタープライズ展開の場合、チャネルをリスクにマップする。配送または支払い用のデバイスには、内部ニュース用のデバイスよりも厳密なゲートが必要である。ロールアウトグループから外に保管するリコバリーデバイスがあると、オペレーターはインシデント中でも管理ツールにアクセスできる。

リリースコントロールはコミュニケーションの一部である。サポートに変更を伝え、リリースIDと症状を提供する。ロールアウトを停止した場合、次のチェック時間を説明する。明確なメモは重複した報告を減らし、ストレスの下でランダムな変更をしないようにチームを止める。

インシデント後、すべてのロールバックをレビューする。問題を捕捉したもの、見逃したもの、トリガーが早く発火したかを尋ねる。次に、テストケースまたは閾値を更新する。ロールバックは2回有効である。最初は、障害の際、そして2回目は、次のリリースの証拠として。

古いバンドルは、ポリシーが必要な限りだけ保存してください。バージョンが多すぎると選択が難しくなり、バージョンが少なすぎるとフォールバックが失われます。保持期間のルールを設定し、新しいチームメンバーが理解できるように安定版リリースをラベル付けしてください。

アクセス制御も重要です。生産の公開を制限し、高リスクの変更には2回目のレビューを必要とします。バンドルの昇格または逆転を誰が行ったかを記録するアドビットレコードを保持してください。Capgo チームは、リリースデータの取り扱いについてのドキュメントを書く際に、Capgo データポリシーを参照できます。 Capgo データポリシー リリースデータの処理方法をドキュメント化するときです。

目標は、面白くないリリースです。安全な変更の場合、速いです。信号が不明な場合、注意深くします。ルールがわかっている場合、自動化します。

FAQ

FAQ

What is the best mobile app rollback platform for Capacitor?

Capgo is a strong fit for Capacitor and Ionic teams that need OTA updates with rollback control. It combines automatic rollback, differential update support, CI/CD integration, and real-time analytics under a subscription per organization. It also includes a 14-day free trial, so your team can test the release path before using it in production.

__CAPGO_KEEP_1__

モバイルアプリは、OTA Web層バンドルを巻き戻すことができますが、すでにアプリストアからインストールされているネイティブバイナリを消去することはできません。巻き戻しは、インストール済みのネイティブシェルが以前のバンドルを実行できる場合にのみ機能します。ネイティブプラグイン、権限、依存関係の変更は、すべて新しいストアリリースが必要です。

自動巻き戻しはどうやって動作するのですか?

自動巻き戻しは、バンドルがインストールされた後、ヘルスシグナルを監視します。リリースが失敗ルールを超えると、システムはプロモーションを停止し、影響を受けたチャンネルを安定したバンドルに戻します。まず安全なチャンネルでトリガーをテストしてください。短いネットワーク問題から生じた誤ったトリガーは、無駄な回復作業を引き起こす可能性があります。

OTA更新後は何を監視するべきですか?

クラッシュフリーのユーザー、失敗した起動、ログインエラー、データロードの失敗、主なアクションを監視してください。各シグナルをリリース前のベースラインと比較してください。突然の低下は、raw数がまだ小さく見える場合でも重要です。カニチャンネルを監視して、ロールアウトを拡大する前にください。

App Storeレビューは置き換えられますか?

App Storeレビューはネイティブの変更や主なアプリ機能の変更には置き換えられません。インストール済みのネイティブシェル内で更新可能なWeb層codeを更新できます。権限、ネイティブモジュール、ネイティブ設定の変更の場合は、ストアリリースを使用してください。CI/CDルールにその境界を維持してください。

まとめ

CapacitorまたはIonicチームが1つのリリースパスを必要とする場合、Capgoを選択してください。 差分更新、チャンネル、分析、CI/CD、およびロールバック。14日間の無料試用版を開始し、テストプロジェクトに接続し、1回のステージリリースを実行して、生産トラフィックを移動する前に、チームがトラッキング、採用、停止、ロールバックを行うことの推測なしで行うことができるかどうかを確認します。

Live updates for Capacitor apps

When a web-layer bug is live, ship the fix through Capgo instead of waiting days for app store approval. Users get the update in the background while native changes stay in the normal review path.

ウェブ層のバグが生じた場合、Capgoを通じて修正を配信するのではなく、App Storeの承認待ちの日数を待つのではなく、ユーザーはバックグラウンドで更新を受け取り、ネイティブの変更は通常のレビュー経路に残します。

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

最新のブログ

Capgoは、プロフェッショナルなモバイルアプリを開発するために必要な最良の洞察を提供します。