メインコンテンツにジャンプします。

Capgo Semver テスター

Capacitor アプリのアップデートのセマンティック バージョニング互換性を確認

Capgo にインストールされたアプリが報告するバージョン、設定またはネイティブ アプリ メタデータからです。

2 つのシナリオバージョンを入力して比較を表示

「ローカルバージョン」って何?

ローカルバージョンは、デバイスがアップデートサーバーからバンドルを要求するときにすでにインストールされているバージョンです。Capacitor アプリでは、その値は CapacitorUpdater.version に来ることができます。 capacitor.config.*その設定が存在しない場合、プラグインはiOSまたはAndroidのネイティブアプリのバージョンにフォールバックします。 package.json バージョンは、ビルドがconfigまたはネイティブメタデータにその値をコピーしていない限り、変更されません。

Capacitor config

設定 CapacitorUpdater.version アプリが明示的にバージョンを送信したい場合に使用します。

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

Con: ネイティブリリース前に更新を忘れた場合、古いconfigが間違ったバージョンを報告する可能性があります。

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

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

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

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

バンドルターゲティング

リモートバンドルバージョン、チャネルsemverルール、またはアップロード制約である" --native-version.

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

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

このテスターに、デバイスがローカルに報告するバージョンを入力し、リモートバンドルバージョンと比較して、Capgoを配信したいバージョンを確認してください。

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

セマンティックバージョニング ソフトウェア開発における最も広く採用されているバージョニング標準です。 semverを使用することで、CapgoはCapgoの互換性と安全性を保証し、ライブアップデートをCapacitorアプリに提供することができます。

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

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

This prevents Capgo from ever sending an incompatible update to your native code, protecting your users from crashes and ensuring your app remains stable.

柔軟な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 → アセットの更新

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

⚡ Hotfix ストラテジー

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 → プロダクションのデプロイ

デプロイメタデータとともに自動化されたバージョン

💡 Pro Tips:
  • ビルドメタデータ (+) を使用して、トラッキング、タイムスタンプ、または互換性に影響しない外観情報を追跡する
  • プレリリース識別子 (-) を使用して、異なる更新の優先順位が必要な開発チャネル
  • 両方を組み合わせて最大限の柔軟性を実現する 1.2.0-beta.1+ui.dark.theme.20240315
  • 注意: Capgo は semver の優先順位規則を尊重するため、チャンネル戦略を適切に計画してください。

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

npm の semver implementation と異なり、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.1.0)
本番版の更新は、1.0.0 → 2.0.0 のようなネイティブアプリのストアのリリースを必要とする
プレリリース版の場合は明示的な設定が必要

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