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

Capgoを使用したセマンティック バージョニングのOTA更新の使い方

Learn how to streamline app updates and version control using Semantic Versioning with Capgo's OTA updates for Capacitor apps.

マーティン ドナディュー

マーティン ドナディュー

コンテンツマーケター

Capgoのセマンティックバージョニングを使用する方法

__CAPGO_KEEP_0__のOTAアップデートを使用して バージョン管理と アプリのアップデートを簡素化したい セマンティックバージョニング(SemVer)Capgoのオーバー・ザ・エア(OTA)アップデートを組み合わせると Capacitor アプリの管理が簡単で速くなります。ここではその方法を紹介します。

  • セマンティックバージョニングの基本 バージョンは次の形式を使用します MAJOR.MINOR.PATCH:

    • MAJOR: 重大な変更の場合
    • MINOR: バックアップ互換性のある新機能の場合
    • PATCH: バグ修正の場合
  • CapgoでSemVerを使用する理由

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

    1. Capgo のアップデート プラグインをインストールします。
    2. アプリのバージョンを「 capacitor.config.json 」などのファイルに設定します。
    3. API キーで初期化します。
    4. Capgo CLI バージョンとチャンネルの管理
  • 別々のチャンネル (例:テスト用の「ベータ」、安定版の「リリース」) を使用します。:

    • 更新ポリシーを制御 (パッチの自動更新、主な変更の手動承認)。
    • __CAPGO_KEEP_1__
    • __CAPGO_KEEP_0__
  • __CAPGO_KEEP_0__

    • __CAPGO_KEEP_0__
    • __CAPGO_KEEP_0__
    • CLI

Capgo

__CAPGO_KEEP_0__ __CAPGO_KEEP_0__

__CAPGO_KEEP_0__

Capgo __CAPGO_KEEP_0__

Capgo Live Update Dashboard Interface

Capgoを使用して、OTA更新とバージョン管理を簡単に管理する方法についてはこちら

初期設定手順

__CAPGO_KEEP_0__ アップデート プラグインをインストールすることから始めます Capgo の設定を確認するには、:

npm install @capgo/capacitor-updater  
npx cap sync

ファイルがセマンティック バージョニング形式であることを確認してください: capacitor.config.json 古いプロジェクトの場合、以下の場所でバージョン情報を更新してください:

{ 
  "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 (を更新してください) CURRENT_PROJECT_VERSION)

Capgoを設定した後、APIキーを使用してCapgoを初期化してください。

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();

このセットアップにより、アプリはSmooth OTAデプロイメントとバージョン管理に適しています。

Capgoの使用とセマンティックバージョングイードライン

バージョン番号管理

Capgoはセマンティックバージョングイードライン(SemVer)を使用してアプリのバージョンを管理し、以下の形式でフォーマットします。 メジャーバージョン(X.0.0)セマンティックバージョングイードラインのしくみ

  • セマンティックバージョングイードラインのしくみ: バージョン番号の MAJOR を変更するには、互換性を破る変更を行う必要があります。
  • : バージョン番号の MINOR を変更するには、互換性を維持する新機能を追加する必要があります。: バージョン番号の PATCH を変更するには、互換性に影響しないバグ修正を行う必要があります。
  • : バージョン番号の種類: バージョン番号を増分するタイミング
: 自動更新の動作: 大幅な __CAPGO_KEEP_0__ 変更の場合: 手動承認が必要
: バージョン番号の種類 (1.X.0)For breaking API changes: 大幅な変更の場合 (X.0.0)
For breaking __CAPGO_KEEP_0__ changes新機能Capgoで設定可能
Patch (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更新を効果的に展開します。

更新準備

まず、バージョンを更新してください。 パッケージ.jsoncapacitor.config.jsonバージョンは SemVer 形式 (MAJOR.MINOR.PATCH) に従うことを確認してください。

  • バグ修正: PATCH 番号を増やす (例: 1.0.1 → 1.0.2)
  • 新機能: MINOR 番号を増やす (例: 1.0.0 → 1.1.0)
  • 重大な変更: MAJOR 番号を増やす (例: 1.0.0 → 2.0.0)

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

次に、 アップデート戦略. 以下のいずれかを選択できます。

  • Auto-Update: 最小バージョン要件を自動的に適用します。
  • Manual Control: 更新の特定バージョン要件を指定します。
  • Channel-Based: チャンネルを使用してテストとステージングのロールアウトを実行します。

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 [channelId] [appId]

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

“@Capgo は、@AppFlow と同じ金額を払うことなく、スマートなホット code プッシュ (😊) の方法です。”

Capgoのダッシュボードを通じて、配布後はアップデートの状況を監視できます。ユーザーがアプリを開く直後から、通常数分以内にアップデートが到着します。プロセスは以下のようになります:

  • アプリはアップデートのチェックを行います。
  • バックグラウンドでアップデートのダウンロードを行います。
  • ユーザーがアプリを終了したときに、新しいバージョンを有効にします。
  • 次回アプリを起動するとアップデートが適用されます。

エンタープライズ向けのデプロイでは、CI/CDの自動化を統合したい場合があります。

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

問題解決とヒント

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

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

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

アップデートが失敗した場合、以下のことができます:

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

メジャーバージョンアップデートの場合、 disableAutoUpdateBreaking イベントをハンドリングしてアップデートを適切に処理するために使用します: majorAvailable これらの設定をチームの良好な実践と組み合わせると、バージョン一貫性を維持し、エラーを減らすことができます。

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

チーム版バージョン管理

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

チーム版バージョン管理

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

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

  • メイン リポジトリを定義するブランチを 1 つ作成し、真実の源として機能させます。 開発環境と生産環境のために、別々の __CAPGO_KEEP_0__ チャンネルを使用します。 CI/CD Pipelinesを使用してバージョンアップロードを自動化します。
  • 明確で詳細なコミット メッセージで、すべての Capgo の変更をドキュメント化します。
  • 大規模なチームの場合、以下のバージョン管理マトリックスは更新を整理するのに役立ちます。
  • Document all code changes with clear and detailed commit messages.

チャンネル

オートアップデート環境チャンネルバージョン パターン
開発dev無効0.x.x
ステージングbeta有効x.x.x-beta
運用stable有効バージョン.x.x

更新の復旧手順

予防措置をとっても、更新が失敗することがあります。そうなる場合は、次の復旧手順に従ってください。

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

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

概要

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

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

“We rolled out 「私たちは、CapgoのOTAアップデートを、5,000人以上のユーザーに展開しました。ほぼすべてのユーザーが、Capgoに展開されたOTAの数分以内に最新の状態になりました。@Capgo」 - colenso 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]

. これは、__CAPGO_KEEP_0__のプラットフォームを通じて、週に何度もリリースを管理するチームにとって特に役立ちます。 [5]「Capgoの」

Capgo’s . カスタマイズ可能なチャネルにより、正しいユーザーに正しい時期にアップデートが届きます。, integrated with CI/CD tools, is also budget-friendly - cutting costs by up to $26,100 over five years [1]「私たちはアジャイル開発を実践しており、@__CAPGO_KEEP_0__はユーザーに継続的に提供するmission-criticalなものです!」 - Rodrigo Mantica

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

How to Use Semantic Versioning with Capgo OTA Updates

使用中の場合 How to Use Semantic Versioning with Capgo OTA Updates __CAPGO_KEEP_0__ OTA Updatesを使用してバージョン管理とロールバック計画を行うには ロールバック ロールバックの実装詳細 バージョン目標 バージョン目標の実装詳細 更新動作 更新動作の実装詳細 バンドル バンドルの実装詳細 Capgo Live Updates Capgo Live Updatesの製品ワークフロー向け

リアルタイムの更新をCapacitorアプリに提供

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

Get Started Now

Latest from our Blog

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