__CAPGO_KEEP_0__ Live Update - __CAPGO_KEEP_1__ Cloud

Capgo Semver Tester

チャンネルポリシー互換性を、バージョン_ビルドとして送信されたネイティブベースラインと比較します。

configまたはネイティブアプリメタデータから送信されたバージョン_ビルドとしてCapgoに送信されたネイティブバージョンです。

解決済みチャンネルに割り当てられたバンドルバージョンです。

2 つのシーケンシャルバージョンを入力して比較を表示

「ネイティブベースラインバージョン」って何?

ネイティブベースラインバージョンは、Capgo に送信されるネイティブアプリのバージョンです。 version_build when the device asks the update server for a bundle. In a Capacitor app, that value can come from CapacitorUpdater.version Capgo アプリでは、その値は capacitor.config.*から取得できます。 package.json その設定が存在しない場合、プラグインは iOS または Android からネイティブアプリのバージョンを取得します。

Capgo still uses version_name ダウンロードしたバンドルの現在のインストール状況を知ることができます。チャネルsemverポリシーなど major, minorpatch リモートのバンドルと比較します。 version_build.

Capacitorの設定

設定 CapacitorUpdater.version 指定したバージョンをアプリから送信したい場合に使用します。

メリット: iOSとAndroidのビルドで同じバージョンを維持することが簡単です。

欠点: 設定を更新するのを忘れて、古い設定がバージョンを誤って報告する可能性があります。

ネイティブアプリのバージョン

プラットフォームのバージョンを使用します。たとえば、iOS CFBundleShortVersionString またはAndroid versionName.

Pro: TestFlight、App Store、Play Store、または内部テストからインストールされたバイナリにマッチします。

Con: 変更を求めるにはネイティブビルドが必要であり、リリース設定が異なる場合にプラットフォームによって異なる可能性があります。

バンドル対象

リモートバンドルバージョン、チャンネルsemverルール、またはメタデータアップロード制約などと比較します。 --min-update-versionチャンネルは --disable-auto-update metadata.

Pro: 古いアプリバイナリに送信する必要があるJavaScriptが新しいネイティブcodeを必要とすることを防止します。

Con: ルールがあまりにも厳密な場合、チャンネルまたはバンドルメタデータを調整するまで有効なアップデートをブロックする可能性があります。

このテスターのために、デバイスが送信するネイティブの基準値を入力してください。 version_build、リモートのバンドルバージョンと比較してください Capgo が配信したいバージョン。

なぜCapgoがセマンティックバージョニングを使用するのか

セマンティックバージョニング is the most widely adopted versioning standard in software development. By using semver, Capgo ensures compatibility and safety when delivering live updates to your Capacitor apps.

セマンティックバージョニング規範では、Capgoが各アップデートに含まれる変更内容を正確に理解できるようになります:

  • パッチアップデート (1.0.0 → 1.0.1): バグ修正、自動適用可能
  • マイナーアップデート (1.0.0 → 1.1.0): 新機能、バックワード互換性あり
  • メジャーアップデート (1.0.0 → 2.0.0): 破壊的変更、ネイティブアプリストアのリリース必要

これはCapgoがあなたのネイティブcodeに不適合なアップデートを送るのを防ぎ、クラッシュからユーザーを守り、そしてアプリが安定したままになるようにします。

柔軟なSemver戦略:基本バージョニングを超えて

semverはその核となるフォーマットについて厳格ですが、チームのニーズに合わせて拡張することができます。 プレリリース識別子ビルドメタデータ:

🏷️ビルドメタデータ (+) - "外観」層

1.2.0+20240315.142530
デプロイメントの追跡用のタイムスタンプ
1.2.0+ui.refresh.dark-mode
デザインチーム向けのUI更新の説明
1.2.0+build.4729.commit.a1b2c3d
CI/CDビルド番号とGitコミット

重要な注意事項: バージョン順位の際にビルドメタデータは無視されます - 1.2.0+anything 等しいため 1.2.0 Capgoのアップデートロジックのため

🔧 プレリリース識別子(-) - 開発チャンネル

1.3.0-beta.1
ベータテストチャンネル
1.3.0-hotfix.payment
緊急修正ブランチ
1.3.0-feature.newapi
機能ブランチテスト

注意: 前リリース版は、下位の優先順位を持つ - 1.3.0-beta.1 < 1.3.0

🎯 ハイブリッドアプローチ - 最良の両方の世界

1.3.0-rc.1+ui.redesign.20240315
リリース候補版にUIメタデータとタイムスタンプ

実際の世界でのsemverの使用例とチーム戦略

🚀 スタートアップ/高速開発

0.1.0 - 最初のMVPリリース
0.2.0-beta.1 - 新機能のテスト
0.2.0+ui.v2 - UIのリデザインメタデータ
1.0.0 - 製品用途

0.x.xを使用して、1.0未満の開発、デザイン追跡用のメタデータ

🏢 エンタープライズ/規制

2.1.0 →季度リリース
2.1.1+sec.patch.cve2024 →セキュリティパッチ(追跡)
2.2.0-rc.1+audit.ready →プレアドビューレリース候補

厳格なsemverに準拠したコンプライアンスメタデータ

🎮 ゲーミング/クリエイティブアプリ

1.0.0+season.winter.2024 →シーズナルコンテンツ
1.1.0+event.halloween →イベントドライブ機能
1.2.0+assets.hd.remaster →アセットアップデート

コンテンツ追跡用のクリエイティブメタデータ

⚡ ホットフィックス戦略

1.2.0 →現在のプロダクション
1.2.1-hotfix.payment →クリティカルなバグ修正
1.2.1+urgent.20240315.1430 → タイムスタンプ付きでリリース

テスト用のプレリリース、展開トラッキング用のメタデータ

🌍 複数プラットフォーム戦略

1.3.0+ios.optimized → iOS用の最適化
1.3.0+android.material3 → Android用のデザインの更新
1.3.0+web.pwa.ready → PWA機能

同じバージョン、プラットフォーム固有のメタデータ

🔄 CI/CD統合

1.4.0-alpha.1+build.123 → 自動化されたプレリリース
1.4.0+deploy.staging.456 → ステージング展開
1.4.0+prod.final.789 → プロダクション展開

展開メタデータを含む自動化されたバージョニング

💡 便利なヒント:
  • ビルドメタデータ (+) を使用して、トラッキング、タイムスタンプ、または互換性に影響しない外観情報を追跡します。
  • プレリリース識別子 (-) を使用して、異なるアップデート優先順位が必要な開発チャネルに異なる順位を付与します。
  • 両方を組み合わせて最大限の柔軟性を実現します。 1.2.0-beta.1+ui.dark.theme.20240315
  • 重要なのは、Capgo がセマンティックバージョニングの順位付け規則を尊重していることです。チャンネル戦略を計画する際にご注意ください。

重要なのは、Capgo が厳密なセマンティックバージョニングを使用していることです。

npm のセマンティックバージョニング実装とは異なり、Capgo は公式の SemVer 規格を厳密に遵守しています。 npm の node-semver は、仕様から知られている逸脱があり、予期せぬ動作につながる可能性があります。

たとえば、npm はバージョンを 1.0.0-alpha.1 異なる方法で扱っています。仕様では必要とされていません。詳細は、 報告された問題 試みられた修正 マージされていませんでした。

有効なシーケンスバージョン

1.0.0 ✓ 標準リリース
2.1.3-alpha ✓ プレリリース
1.0.0-beta.1 ✓ プレリリースに数字
1.0.0+build.1 ✓ ビルドメタデータ
1.0.0-rc.1+build.1 ✓ 完全なバージョン

無効なシーケンスバージョン

v1.0.0 ✗ 先頭の 'v' は許可されていません
1.0 ✗ パッチバージョンが欠落しています
1.0.0.0 ✗ バージョン部分が多すぎます
1.0.0- ✗ プレリリースが空です
1.0.0+ ✗ ビルドメタデータが空です

Capgo のアップデート動作

マイナー戦略では、同じメジャー.マイナーライン内でパッチ変更が許可されます。たとえば 1.0.0 -> 1.0.1
パッチ戦略では 1.0.0 -> 1.0.1 のようなメジャー.マイナーライン内でのパッチ変更は許可されません。ただし、サフィックス変更のみが許可されます。たとえば 1.0.0-beta.1 -> 1.0.0-beta.2
メジャー戦略では、ネイティブベースラインのメジャーよりも高くなるターゲットバンドルをブロックします。たとえば 1.0.0 -> 2.0.0
ダウングレード保護では、完全なセマンティックバージョニング順序を使用します。したがって、安定した 1.0.0 は 1.0.0-beta.2 より新しいです

このツールは公式の セマンティックバージョニング仕様 を実装していますが、npm の実装とは異なります