メイン コンテンツにスキップ

Capgoのセマンティック バージョニングを使用したOTAアップデートの方法

Capacitorアプリ用のCapgoのOTAアップデートを使用して、アプリのアップデートとバージョン管理を簡素化する方法を学びます。

マーティン ドナディュー

マーティン ドナディュー

コンテンツマーケター

Capgoのセマンティック バージョニングを使用したOTAアップデートの方法

アップデートを簡素化したいですか? アプリのアップデート バージョン管理? セマンティック バージョニング (SemVer) combined with Capgo’s Over-The-Air (OTA) updates makes managing Capacitor apps easier and faster. Here’s how:

  • Semantic Versioning Basics: Versions use the format MAJOR.MINOR.PATCH:

    • MAJOR: MAJOR:
    • MINOR: MINOR:
    • PATCH: バグ修正
  • Why Use SemVer with Capgo?

    • 更新情報についての明確なコミュニケーション
    • よりスマートなバージョン管理
    • 依存関係の競合を回避
    • リリース計画の整理
  • Capgoのセットアップ ステップ:

    1. Capgoのアップデート プラグインをインストールする
    2. __CAPGO_KEEP_0__のキーを使用してアプリのバージョンを設定する capacitor.config.json その他のファイル
    3. APIのキーで初期化する
    4. 使用 Capgo CLI を使用してバンドルおよびアップロードアップデート。
  • バージョンとチャンネルの管理:

    • 別々のチャンネル (例:「ベータ」テスト、 「プロダクション」安定版) を使用します。
    • 更新ポリシーを制御 (パッチの自動更新、主な変更の手動承認)。
    • 失敗した更新のロールバックオプション。
  • デプロイメントプロセス:

    • SemVer ルールに従ってバージョン番号を更新します。
    • デプロイメント前に徹底的なテストを行います。
    • CLI コマンドを使用してアップロードおよびアップデートを配布します。

Capgo は、CI/CD ワークフローを使用して自動化されたアップデートを実行するチーム向けに、障害を処理し、安定性を維持するためのツールを備えた、ユーザーに迅速かつ信頼性の高いアップデートを提供します。

Quick Tip: 常にアップデートをテストし、ステージドロールアウトを効果的に管理するためにチャンネルを使用してください。

Semantic Versioning | Level Up

Capgo セットアップガイド

Capgo Live Update Dashboard インターフェース

Capgo を使用してOTAアップデートとバージョン管理を簡単に管理する方法についてはこちら

初期設定手順

はじめに Capgo アップデートプラグインをインストールする:

npm install @capgo/capacitor-updater  
npx cap sync

アップデートプラグインが正しくインストールされていることを確認してください capacitor.config.json バージョン形式:__CAPGO_KEEP_0__

{ 
  "appId": "com.example.app", 
  "appName": "My App", 
  "version": "1.0.0" 
}

古いプロジェクトの場合、以下の場所でバージョン情報を更新してください:

  • package.json (バージョン情報の場所を) version (バージョン情報を)
  • android/app/build.gradle (バージョン情報を) versionName)
  • ios/App/App.xcodeproj/project.pbxproj Capgoを初期化するには、Capgoの__CAPGO_KEEP_1__ APIキーを使用してください: CURRENT_PROJECT_VERSION)

Once configured, initialize Capgo with your API key:

npx @capgo/cli@latest init YOUR_API_KEY

セットアップフェーズ

キーアクション 検証ステップ インストール
インストール プラグインをインストールして同期 確認 package.json
設定 バージョン番号を設定 すべてのファイルで検証
初期化 API キーと接続 接続状態をテスト
ビルド 初期バンドルを作成 アップロード成功を確認

バージョン管理統合

Capgo はCI/CDプラットフォームとよく組み合わされ、自動更新が簡単になります。 自動更新は簡単です。 サポートされているプラットフォームは次のとおりです。

ローカル開発を実行中の場合は、次の設定を追加して自動更新を無効にします。

{ 
  "plugins": { 
    "CapacitorUpdater": { 
      "autoUpdate": false 
    } 
  } 
}

Capgo がローカル変更を上書きしないようにするためです。セットアップが完了したら、最初のバージョンをアップロードしてください。

npx @capgo/cli@latest bundle upload  
npx @capgo/cli@latest channel set production -s default

最後に、バンドルの健康状態をアプリのメインファイルでnativeプラグインに通知してください。

import { CapacitorUpdater } from '@capgo/capacitor-updater';  
CapacitorUpdater.notifyAppReady();

このセットアップにより、OTA展開とバージョン管理がスムーズになります。

Using Semantic Versioning with Capgo

バージョン番号管理

Capgoはセマンティック バージョニング (SemVer) を使用してアプリのバージョンを管理し、次の形式でフォーマットします。 メジャー.マイナー.パッチここではどのように機能するかを説明します。

  • メジャーバージョン (X.0.0):互換性が破壊される変更の場合、メジャー番号を増やす。
  • マイナーバージョン (1.X.0):互換性が維持される新機能の場合、マイナンバーを増やす。
  • パッチバージョン (1.0.X):互換性が維持されるバグ修正の場合、パッチ番号を増やす。
バージョンタイプ バージョンアップのタイミング 自動更新の動作
メジャーバージョン (X.0.0) 重大なAPIの変更の場合 手動承認が必要
マイナーバージョン (1.X.0) 新機能の追加の場合 Capgoで設定可能
パッチバージョン (1.0.X) バグ修正の場合 通常自動

SemVer規則に従うことで、バージョン管理を簡素化し、展開チャネル間での更新が滑らかに行われることを保証できます。

バージョン管理ガイドライン

Capgoは、ワークフローの異なる段階ごとに異なるチャンネルを設定して、展開を効果的に管理することを可能にします。

  • チャンネルベースのバージョン管理:展開プロセスを整理するために、テストとプロダクション用に別々のチャンネルを作成します。例えば:

    • テスト用の「ベータ」チャンネル(例:1.2.0-beta)で新機能をテストします。
    • 安定したリリース用の「プロダクション」チャンネル(例:1.2.0)を維持します。
    • プラットフォーム固有の問題に対処するために、プラットフォーム固有のチャンネル(例:「ios-hotfix」バージョン 1.2.1)を追加します。
  • アップデートポリシー設定:Capgoの設定オプションを使用して、更新を適用する方法を制御します。たとえば:

    {
      "plugins": {
        "CapacitorUpdater": {
          "disableAutoUpdate": "minor"
        }
      }
    }

    この設定では、ユーザーは自動的にパッチアップデートを受け取りますが、マイナーアップデートやメジャーアップデートには手動で承認が必要です。

  • バージョンロールバック戦略:前リリース識別子を使用して、明確なロールバックオプションを維持します。このアプローチでは、問題が発生した場合に前のバージョンに戻ることができ、すべてのチャンネルでバージョニングが一貫していることを保証します。

アップデートの管理、機能のテスト、デプロイプロセスの安定性を維持することが、以下のベストプラクティスによって容易になります。

sbb-itb-f9944d2

OTAアップデートのデプロイ

バージョン管理の設定が完了したら、以下の手順に従って、OTAアップデートを効果的にデプロイしてください。

アップデートの準備

まず、 package.jsoncapacitor.config.jsonを更新してください。バージョンは、SemVer形式 (MAJOR.MINOR.PATCH) に従ってください。

  • バグ修正: PATCH番号を増やす (例: 1.0.1 → 1.0.2)
  • 新機能: マイナーバージョン番号を増やす (例: 1.0.0 → 1.1.0)
  • 重大な変更: メジャーバージョン番号を増やす (例: 1.0.0 → 2.0.0)

あなたのビルドを徹底的にテストし、確認するにはアプリがサーバーと通信していることを確認してください。 notifyAppReady.

次に、 更新戦略を決定する必要があります。

  • 選択することができます:自動更新
  • : 最小バージョン要件を自動的に強制します。マニュアルコントロール
  • チャネルベース: チャネルをテストとステージドロールアウトに使用します。

Capgo CLI の更新コマンド

Capgo を使用して、CLI で簡単に更新をデプロイできます。以下の手順に従ってください。

# Initialize Capgo in your project
npx @capgo/cli@latest init [apikey]

# Upload your update bundle
npx @capgo/cli bundle upload [appId]

# Add a new distribution channel
npx @capgo/cli channel add [channelName] [appId]

Capgo は、エンドツーエンド暗号化と安全なキー管理を備えた安全なデプロイを保証します。

“@Capgo は、@AppFlow と同じ金額を払うことなく、@Capgo を使用してホット code プッシュを実行する賢い方法です 🙂”

更新がデプロイされた後、Capgo のダッシュボードを使用して、更新を監視できます。更新はユーザーがアプリを開くたびに、通常数分以内にユーザーに到達します。プロセスは次のとおりです。

  • アプリが更新を確認します。
  • バックグラウンドで更新をダウンロードします。
  • ユーザーがアプリを終了すると、新しいバージョンを有効にします。
  • 次の起動時に更新を適用します。

エンタープライズ向けのデプロイの場合、CI/CD オートメーションを統合したいと思われるかもしれません。

「私たちはアジャイル開発を実践しており、@Capgo はユーザーに継続的に提供するmission-criticalな要素です!」

問題解決とアドバイス

バージョン管理に関する問題

Capgo のシーケンスバージョニングを管理することは、更新のデプロイを複雑にすることがあります。開発作業を上書きしないようにするには、以下を設定してください。 capacitor.config.json ファイル:

{ 
  "plugins": { 
    "CapacitorUpdater": { 
      "autoUpdate": false 
    } 
  } 
}

更新が失敗した場合に実行できること

  • 開発中の場合 autoUpdate アプリをアンインストールする。 false 正しいバージョンで再インストールする。
  • すべてが安定したら、自動更新を再度有効にする。
  • 開発中の場合
  • アプリをアンインストールし、正しいバージョンで再インストールし、すべてが安定したら自動更新を再度有効にする。

主なバージョンアップデートの場合、フラグを使用し、更新を適切に処理するためにイベントを待ちます: disableAutoUpdateBreaking __CAPGO_KEEP_0__ majorAvailable これらの設定を良好なチームの慣習と組み合わせると、バージョン一貫性を維持し、エラーを減らすことができます。

CapacitorUpdater.addListener('majorAvailable', (info) => {
  console.log(`Major update available: ${info.version}`);
  // Add your update prompt logic here
});

個人の更新が管理されたら、チームは強力なバージョン管理の慣習を確立する必要があります。

Team Version Control

Once individual updates are managed, it’s crucial for teams to establish strong version control practices.

各変更をメインのリポジトリとマージする前にテストすることで、安定性を強化し、費用のかかるエラーを回避することができます。 [4]

一貫性を確保するための方法は次のとおりです。

  • 一つのブランチをメインのリポジトリとして定義し、真実の源として機能させます。 開発環境とプロダクション環境のために、別々の__CAPGO_KEEP_0__チャンネルを使用します。 to act as the source of truth.
  • Use separate Capgo channels for development and production environments.
  • CI/CD パイプラインを使用してバージョンアップロードを自動化します。
  • 明確で詳細なコミットメッセージで code のすべての変更をドキュメントします。

大規模なチームの場合、以下のバージョン管理マトリックスが更新を整理するのに役立ちます:

環境 チャネル 自動更新 バージョンパターン
開発 dev 無効 0.x.x
ステージング beta 有効 x.x.x-beta
Production 安定 有効 x.x.x

更新回復手順

十分な注意を払ったとしても、更新が失敗することがあります。 その場合、以下の回復手順に従ってください:

  1. 前の安定バンドルに戻す
  2. バンドル内のバージョン番号をインクリメントする (注: バンドルが削除された後はバージョン番号を再利用することはできません) [2].
  3. アプリ起動時に更新を確認して、期待どおりに動作することを確認する

Capgoのアップデーターは、障害を処理するように設計されています。たとえば、サーバーがアクセスできない場合やアップデートが削除された場合、 アプリは通常の動作を続けます。 [3]さらに、失敗したネットワーク要求は、次のアプリ起動時に自動的に再試行されます。 [3]この組み込みの耐性は、ダウンタイムを最小限に抑え、操作を滑らかにするのに役立ちます。

概要

セマンティック バージョニングとCapgoの組み合わせにより、CapacitorアプリのOTAアップデートが効率化されました。947.6百万のアップデートが配信され、1,400の生産アプリがこのシステムを使用しており、 [1]デプロイメントプロセスは81%効率化されました。 [1]この設定により、開発者はアップデートを迅速かつ制御された方法で実行できます。アプリストアの遅延を回避できます。

開発者が言っていることです。

「私たちは、__CAPGO_KEEP_0__のOTAアップデートを、生産環境で5000人以上のユーザーに展開しました。ほぼすべてのユーザーが、OTAが__CAPGO_KEEP_0__に展開された後、数分以内に最新の状態になりました。」 - colenso Capgo OTA updates in production for our user base of +5000. We’re seeing very smooth operation almost all our users are upto date within minutes of the OTA being deployed to @Capgo.” - colenso [1]

Semantic Versioning, combined with __CAPGO_KEEP_0__, has made OTA updates for __CAPGO_KEEP_1__ apps more efficient. With 947.6 million updates delivered and 1,400 production apps using this system [5]. Capgoのプラットフォームを通じて、週に何度もリリースを管理しているチームにとって、特に役立ちます。

Capgoの 暗号化されたソリューション, CI/CDツールと統合されているため、5年間で$26,100を節約することも可能です [1]. カスタマイズ可能なチャネルにより、正しいユーザーに正しいタイミングで更新が届きます。

“We practice agile development and @Capgo is mission-critical in delivering continuously to our users!” - Rodrigo Mantica [1]

「私たちはアジャイル開発を実践しており、@Capgoはユーザーに継続的に提供するmission-criticalなものです!」 - Rodrigo Mantica

How to Use Semantic Versioning with __CAPGO_KEEP_0__ OTA Updates 「Capgo OTA Updates」を使用している場合 How to Use Semantic Versioning with __CAPGO_KEEP_0__ OTA Updates ロールバックとバージョン管理を計画するには、__CAPGO_KEEP_0__ OTA Updatesを Rollbacks バージョン対象 バージョン対象の実装詳細について 更新動作 更新動作の実装詳細について バンドル バンドルの実装詳細について、 Capgo ライブ更新 Capgo ライブ更新の製品ワークフローについて

Capacitor アプリのリアルタイム更新

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

__CAPGO_KEEP_0__ を始める

最新のブログ記事

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