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

Capgo Semver テスター

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

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

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

Enter two semantic versions to see comparison

What "Native Baseline Version" means

Native Baseline Version is the native app version sent to Capgo as version_build when the device asks the update server for a bundle. In a Capacitor app, that value can come from CapacitorUpdater.version iOSまたはAndroidのネイティブアプリのバージョンにフォールバックする設定が存在しない場合、プラグインはiOSまたはAndroidのネイティブアプリのバージョンを使用します。 capacitor.config.*__CAPGO_KEEP_0__の値をconfigまたはネイティブメタデータにコピーすることを保証することはできません。 package.json __CAPGO_KEEP_0__は依然として

Capgo still uses version_name Channel semverポリシー、 major, minorpatch を使用して、リモートバンドルを__CAPGO_KEEP_0__のconfigと比較します。 version_build.

Capacitor config

を使用して、1つの明示的なバージョンをアプリが送信する場合に使用します。 CapacitorUpdater.version Pro:

iOSとAndroidのビルドで同じを維持することが簡単です。 __CAPGO_KEEP_0__の値をconfigまたはネイティブメタデータにコピーすることを保証することはできません。

Con: 古い設定ファイルを使用すると、バージョンを正しく報告できなくなる可能性がある。

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

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

Pro: テストフライト、App Store、Play Store、または内部テストからインストールされたバイナリのバージョンと一致する。

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

バンドルターゲット

リモートバンドルバージョン、チャネルsemverルール、またはアップロード制約などと比較する。 --native-version.

Pro: codeを古いアプリバイナリに送る必要があるJavaScriptを送信しないようにする。

Con: 規則が過度に厳密な場合、チャンネルまたはパッケージメタデータを調整するまで、有効な更新をブロックする可能性があります。

このテスターの場合、デバイスが送信するネイティブの基準値を入力し、 それを、リモートパッケージのバージョンと比較してください。 version_buildCapgoがセマンティックバージョニングを使用する理由

Why Capgo uses Semantic Versioning

ソフトウェア開発における最も広く採用されているバージョニング標準です。 セマンティックバージョニングを使用することで、__CAPGO_KEEP_0__は、ライブアップデートを__CAPGO_KEEP_1__アプリに安全かつ互換性のある方法で提供できるようにします。 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.

The semver standard allows Capgo to understand exactly what changes are included in each update:

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

これにより、Capgoは、ネイティブのcodeに不互換なアップデートを送信することがなくなるため、クラッシュを防ぎ、安定したアプリを保証する。

柔軟なSemver戦略:基本的なバージョニングの超え方

semverは、基本的なフォーマットについて厳格ですが、チームのニーズに合わせて拡張することができます。 pre-release識別子ビルドメタデータ:

🏷️ ビルドメタデータ(+) - 「外観」レイヤー

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 - 製品用 Readiness

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

🏢 Enterprise / Regulated

2.1.0 → 4 か月ごとのリリース
2.1.1+sec.patch.cve2024 → セキュリティパッチと追跡
2.2.0-rc.1+audit.ready → 検査前リリース候補

Strict semver に従い、コンプライアンスメタデータを含む

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

1.0.0+season.winter.2024 → 季節のコンテンツ
1.1.0+event.halloween → イベント駆動機能
1.2.0+assets.hd.remaster → アセットの更新

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

⚡ Hotfix Strategy

1.2.0 → 現在のリリース
1.2.1-hotfix.payment → Critical bug fix
1.2.1+urgent.20240315.1430 → タイムスタンプ付きでリリース

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

🌍 Multi-Platform Strategy

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

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

🔄 CI/CD Integration

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 は semver 順位ルールを尊重するため、チャンネル戦略を計画してください。

重要な注意: Capgo は厳密な意味的バージョニングを使用します。

Unlike npm's semver implementation, Capgo follows the official SemVer specification strictly. npm's node-semver has known deviations from the spec, which can cause unexpected behavior.

たとえば、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
ダウングレード保護では、完全なsemver優先順位が使用されるため、安定した 1.0.0 は 1.0.0-beta.2 より新しい

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