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

Capgo OTAアップデートでのセマンティックバージョニング活用法

Capgo の OTA 更新とセマンティックバージョニングを活用して、Capacitor アプリの更新とバージョン管理を効率化する方法を学びましょう。

Capgo OTA 更新でセマンティックバージョニングを活用する方法 Capgo ブログ イラスト

アプリの更新 より速く、 とバージョン管理を簡素化したいですか? セマンティックバージョニング (SemVer) と組み合わせることで CapgoのOver-The-Air(OTA)アップデートを使えば、アプリの管理が Capacitor より簡単で速くなります。方法は次のとおりです:

  • セマンティックバージョニング(SemVer)の基本: バージョンは次の形式です: MAJOR.MINOR.PATCH:

    • MAJOR(メジャー): 破壊的変更があるときに使います。
    • MINOR(マイナー): 後方互換性のある新機能を追加するときに使います。
    • PATCH(パッチ): バグ修正に使います。
  • CapgoでSemVerを使う理由とは?

    • アップデートに関する明確なコミュニケーション。
    • よりスマートなバージョン管理。
    • 依存関係の競合を回避。
    • 整理されたリリース計画。
  • Capgo のセットアップ 手順:

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

    • 個別のチャネルを使用する(例:テスト用の「beta」、安定版用の「production」)。
    • アップデートポリシーの制御(パッチの自動更新、メジャー変更時の手動承認など)。
    • アップデート失敗時のロールバックオプション。
  • デプロイプロセス:

    • SemVerルールに従ってバージョン番号を更新する。
    • デプロイ前に徹底的にテストする。
    • アップデートのアップロードと配布には CLI コマンドを使用する。

Capgo は、中断への対応や安定性維持のためのツールを備え、アップデートを迅速かつ確実にユーザーへ届けます。CI/CDワークフローを使用してアップデートを自動化しているチームに最適です。

ヒント: 常にアップデートをテストし、チャネルを活用して段階的なロールアウトを効果的に管理しましょう。

セマンティックバージョニング | Level Up

Capgo セットアップガイド

Capgo Live Update ダッシュボードインターフェース

OTAアップデートとバージョン管理を容易にするための、Capgo のセットアップ方法を解説します。

初期セットアップ手順

まず、以下をインストールしてください: 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)

設定完了後、API キーを使用して Capgo を初期化します:

npx @capgo/cli@latest init YOUR_API_KEY

早見表:

セットアップフェーズ 主要アクション 確認ステップ
インストール プラグインをインストールして sync する 確認 package.json
設定 バージョン番号の設定 全ファイルを確認
初期化 API キーで接続 接続ステータスのテスト
ビルド 初回 bundle の作成 アップロード成功の確認

バージョン管理との統合

Capgo は CI/CD プラットフォームと相性が良く、 自動アップデート シンプルです。対応プラットフォームは以下の通りです:

ローカル開発を行っている場合、設定に以下を追加して自動更新を無効化できます:

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

これにより、Capgo がローカルの変更を上書きしないようになります。セットアップが完了したら、最初のバージョンをアップロードします:

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

最後に、アプリのメインファイルで、バンドルの状態をネイティブプラグインに通知します:

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

この設定により、アプリはスムーズなOTAデプロイとバージョン管理に備えられます。

Capgoでのセマンティックバージョニングの活用

バージョン番号の管理

Capgoはセマンティックバージョニング(SemVer)を使用してアプリのバージョンを管理し、以下のような形式でフォーマットされます メジャー.マイナー.パッチ。その仕組みは以下の通りです:

  • メジャーバージョン (X.0.0):互換性を破る変更がある場合、MAJOR番号をインクリメントします。
  • マイナーバージョン (1.X.0):互換性を保ったまま新機能を追加する場合、MINOR番号をインクリメントします。
  • パッチバージョン (1.0.X):互換性に影響を与えないバグ修正の場合、PATCH番号をインクリメントします。
バージョン種別 インクリメントのタイミング 自動更新の動作
メジャー (X.0.0) 破壊的な API 変更向け 手動承認が必要
マイナー (1.X.0) 新機能向け Capgo で設定可能
パッチ (1.0.X) バグ修正向け 通常は自動

SemVerのルールに従うことで、バージョン管理を簡素化し、デプロイチャネル全体でよりスムーズな更新を実現できます。

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

Capgoでは、ワークフローの異なる段階ごとに個別のチャネルを設定することで、デプロイを効果的に管理できます。

  • チャンネルベースのバージョン管理: テスト用と本番用のチャンネルを分けることで、デプロイプロセスを整理できます。例:

    • 新機能のテストには「beta」チャンネル(例: 1.2.0-beta)を使用します。
    • 安定版リリース用に「production」チャンネル(例: 1.2.0)を維持します。
    • プラットフォーム固有の問題に対処する場合は、プラットフォーム別チャンネル(例: バージョン1.2.1の「ios-hotfix」)を追加します。
  • アップデートポリシーの設定: Capgo の設定オプションを使用して、アップデートの適用方法を制御します。例:

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

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

  • バージョンのロールバック戦略: プレリリース識別子を使用して、明確なロールバック手段を確保します。この手法により、全チャンネルで一貫したバージョニングを維持しつつ、問題発生時に以前のバージョンへ戻すことが可能になります。

これらのベストプラクティスにより、アップデートの管理、新機能のテスト、アプリのデプロイプロセスでの安定性維持が容易になります。

sbb-itb-f9944d2

OTA Updateのデプロイ

バージョン管理の準備ができたら、以下の手順でOTA Updateを効率的にデプロイしましょう。

アップデートの準備

まず、次のファイルのバージョンを更新してください。 package.json と capacitor.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)

buildを徹底的にテストし、アプリがサーバーと通信していることを確認します 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 はホット code プッシュを実現するスマートな方法です(@AppFlow のように莫大な費用をかける必要はありません)🙂」

デプロイ後、Capgo のダッシュボードからアップデートを監視できます。通常、ユーザーがアプリを開いた数分以内にアップデートが届きます。プロセスは以下の通りです:

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

エンタープライズ向けのデプロイでは、CI/CD 自動化の統合を検討するとよいでしょう。

「私たちはアジャイル開発を実践しており、ユーザーへ継続的に届けるうえで @Capgo は極めて重要です!」

問題解決とヒント

バージョン管理の問題

Capgo でセマンティックバージョニングを管理すると、アップデートのデプロイが複雑になることがあります。開発中の作業を上書きしないように、以下を設定してください。 capacitor.config.json ファイル内で参照します:

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

アップデートに失敗した場合の対処法:

  • 設定 autoUpdate まで false 開発中に。
  • アプリをアンインストールします。
  • 修正済みのバージョンで再インストールします。
  • すべてが安定したら、自動アップデートを再度有効にします。

メジャーバージョンのアップデートには、 disableAutoUpdateBreaking フラグを使用し、次をリッスンします majorAvailable 更新を適切に処理するためのイベント:

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

これらの設定とチームの良好なプラクティスを組み合わせることで、バージョンの一貫性を維持し、エラーを減らすことができます。

チームのバージョン管理

個々の更新が管理できるようになったら、チームが堅牢なバージョン管理プラクティスを確立することが重要です。

「メインリポジトリにマージする前に各変更をテストすることで、安定性を強化し、コストの高いエラーを回避できます」 [4]

一貫性を確保するためのいくつかの方法を以下に示します:

  • 1つのブランチを メインリポジトリ として定義し、ソース・オブ・トゥルースとして機能させます。
  • 開発環境と本番環境には、それぞれ別の Capgo チャネルを使用します。
  • CI/CD パイプラインでバージョンのアップロードを自動化します。
  • すべての code 変更には、明確で詳細なコミットメッセージを添えて記録します。

大規模なチームでは、以下のバージョン管理マトリクスでアップデートを整理できます。

環境 チャンネル 自動更新 バージョンパターン
開発 dev 無効 0.x.x
ステージング ベータ 有効 x.x.x-beta
プロダクション stable 有効 x.x.x

アップデートのリカバリ手順

万全を期しても、アップデートが失敗する可能性はあります。その場合は、以下のリカバリ手順に従ってください。

  1. 以前のstable版bundleにロールバックする。
  2. 修正を行う際はバージョン番号をインクリメントする(注意:削除したバージョン番号は再利用できません)。 [2].
  3. アプリの起動時にアップデートを検証し、期待通りに動作することを確認する。

Capgoのアップデータは、中断が発生しても問題なく動作するように設計されています。例えば、サーバーに接続できない場合やアップデートが削除された場合でも、アプリは正常に動作し続けます。 [3]さらに、失敗したネットワークリクエストは、次回のアプリ起動時に自動的にリトライされます。 [3]。この組み込みの耐障害性により、ダウンタイムを最小限に抑え、よりスムーズな運用を実現します。

まとめ

セマンティックバージョニングとCapgoの組み合わせにより、CapacitorアプリのOTAアップデートがより効率的になりました。9億4,760万回のアップデートが配信され、1,400の本番アプリがこのシステムを利用しています [1]。デプロイプロセスの効率が81%向上しました [1]。この構成により、開発者はアプリストアの遅延を回避しながら、迅速かつ制御された形でアップデートをプッシュできます。

開発者の声をご紹介します:

「私たちは Capgo のOTAアップデートを 5,000人以上のユーザー基盤を抱える本番環境に展開しました。非常にスムーズに動作しており、OTAが @Capgo にデプロイされてから数分以内に、ほぼすべてのユーザーが最新の状態になっています。」 - colenso [1]

MAJOR.MINOR.PATCH のバージョン管理システムにより、破壊的変更、新機能、バグ修正を伝えやすくなります [5]。これは、Capgo のプラットフォームで毎週複数のリリースを管理するチームにとって特に役立ちます。

Capgo の 暗号化ソリューション、CI/CD ツールと統合されており、コストパフォーマンスにも優れています。5年間で最大26,100ドルのコスト削減が可能です [1]。カスタマイズ可能なチャネルにより、アップデートを適切なタイミングで適切なユーザーに届けられます。

「私たちはアジャイル開発を実践しており、ユーザーへ継続的にデリバリーする上で @Capgo はミッションクリティカルです!」 - Rodrigo Mantica [1]

Capgo OTA Updates でセマンティックバージョニングを活用する方法の続きを読む

使用している場合 Capgo OTAアップデートでのセマンティックバージョニング活用法 ロールバックとバージョン管理を計画するには、次と連携してください ロールバック ロールバックの実装詳細については、 バージョンターゲティング Version Targeting の実装詳細については、 アップデートの動作 Update Behavior の実装詳細については、 バンドル bundle の実装詳細については、また Capgo Live Update Capgo Live Updates のプロダクトワークフローについては。

Capacitor アプリ向けの Live Updates

Web レイヤーのバグが本番で発生したら、App Store の審査を何日も待たずに Capgo で修正を配信しましょう。ネイティブの変更は通常の審査フローに残したまま、ユーザーはバックグラウンドでアップデートを受け取れます。

最新のブログ記事

Capgoは、真にプロフェッショナルなモバイルアプリを作るために必要な最高のインサイトを提供します。