Lompat ke konten utama

Capgo Tester Semantik Versi

Periksa konsistensi versi semantik untuk pembaruan aplikasi Capacitor Anda

Versi yang dilaporkan oleh aplikasi yang diinstal Anda ke Capgo, dari konfigurasi atau metadata aplikasi native.

Masukkan dua versi semantik untuk melihat perbandingan

Apa itu "Versi Lokal"

Versi Lokal adalah versi yang sudah ada di perangkat ketika aplikasi meminta update server untuk bundle. Dalam aplikasi Capacitor, nilai tersebut dapat berasal dari CapacitorUpdater.version di capacitor.config.*. Jika pengaturan tersebut tidak ada, plugin akan kembali ke versi aplikasi asli dari iOS atau Android. Jangan asumsikan itu adalah versi Anda package.json versi kecuali build Anda menyalin nilai tersebut ke konfigurasi atau metadata native.

Capacitor konfigurasi

Set CapacitorUpdater.version ketika Anda ingin satu versi eksplisit dikirim oleh aplikasi.

Pro: mudah untuk menjaga yang sama di antara build iOS dan Android.

Con: konfigurasi yang ketinggalan zaman dapat melaporkan versi yang salah jika Anda lupa untuk memperbarui sebelum rilis native.

Versi aplikasi native

Gunakan versi platform, seperti iOS CFBundleShortVersionString atau Android versionName.

Pro: cocok dengan file biner yang diinstal oleh pengguna dari TestFlight, App Store, Play Store, atau pengujian internal.

Kerugian: mengubahnya memerlukan pembangunan asli dan dapat berbeda antar platform jika pengaturan rilis bergeser.

Target Paket

Bandingkan dengan versi paket remote, aturan semver channel, atau keterbatasan unggah seperti --native-version.

Kelebihan: mencegah mengirim JavaScript yang memerlukan native code yang lebih baru ke file biner aplikasi lama.

Kerugian: aturan yang terlalu ketat dapat menghalangi pembaruan yang valid sampai channel atau metadata paket diatur ulang.

Untuk tester ini, masukkan versi yang perangkat akan melaporkan sebagai lokal, lalu bandingkan dengan versi paket remote yang ingin Capgo kirimkan.

Mengapa Capgo menggunakan Versi Semantik

Versi Semantik adalah standar versi yang paling umum digunakan dalam pengembangan perangkat lunak. Dengan menggunakan semver, Capgo memastikan konsistensi dan keamanan ketika mengirimkan pembaruan live ke aplikasi-aplikasi Capacitor Anda.

Standar semver memungkinkan Capgo untuk memahami secara tepat apa saja perubahan yang terkandung dalam setiap pembaruan:

  • Pembaruan patch (1.0.0 → 1.0.1): Perbaikan bug, aman untuk diterapkan secara otomatis
  • Pembaruan minor (1.0.0 → 1.1.0): Fitur baru, kompatibel mundur
  • Pembaruan mayor (1.0.0 → 2.0.0): Perubahan yang mengganggu, memerlukan rilis aplikasi native di toko aplikasi

Hal ini mencegah Capgo untuk pernah mengirimkan pembaruan yang tidak kompatibel ke aplikasi native code Anda, melindungi pengguna dari crash dan memastikan aplikasi Anda tetap stabil.

Strategi Semver Fleksibel: Lebih dari Pengaturan Versi Dasar

Sementara semver ketat tentang format inti, Anda dapat memperluasnya untuk kebutuhan tim Anda menggunakan penanda versi pra-rilis dan metadata pembangunan:

🏷️ Metadata Pembangunan (+) - Layer Estetika

1.2.0+20240315.142530
Waktu stempel untuk pelacakan pengiriman
1.2.0+ui.refresh.dark-mode
Deskripsi perbarui UI untuk tim desain
1.2.0+build.4729.commit.a1b2c3d
Nomor pembangunan CI/CD dan komit git

Penting: Metadata pembangunan diabaikan dalam keutuhan versi - 1.2.0+anything sama 1.2.0 untuk Capgo's logika perbarui.

🔧 Identifikator Prereleas (-) - Saluran Pengembangan

1.3.0-beta.1
Saluran Pengujian Beta
1.3.0-hotfix.payment
Cabang Perbaikan Darurat
1.3.0-feature.newapi
Cabang Fitur Pengujian

Catatan: Versi Prereleas memiliki prioritas lebih rendah - 1.3.0-beta.1 < 1.3.0

🎯 Pendekatan Hibrid - Terbaik dari Kedua Dunia

1.3.0-rc.1+ui.redesign.20240315
Kandidat Rilis dengan Metadata UI dan Tanggal

Kasus Semver yang Digunakan dalam Dunia Nyata & Strategi Tim

🚀 Pengembangan Startup / Cepat

0.1.0 - Rilis MVP pertama
0.2.0-beta.1 - Pengujian fitur baru
0.2.0+ui.v2 - Metadata merancang ulang UI
1.0.0 - Siap untuk produksi

Gunakan 0.x.x untuk pengembangan pra-1.0, metadata untuk tracking desain

🏢 Perusahaan / Regulasi

2.1.0 → Rilis setiap trimester
2.1.1+sec.patch.cve2024 → Patch keamanan dengan tracking
2.2.0-rc.1+audit.ready → Kandidat rilis pra-audit

Semver ketat dengan metadata komplian

Aplikasi Permainan / Kreatif

1.0.0+season.winter.2024 → Konten Musiman
1.1.0+event.halloween → Fitur Berdasarkan Acara
1.2.0+assets.hd.remaster → Perbaruan Asset

Metadata Kreatif untuk Pemantauan Konten

⚡ Strategi Hotfix

1.2.0 → Produksi Saat Ini
1.2.1-hotfix.payment → Perbaikan Bug Kritis
1.2.1+urgent.20240315.1430 → Diterbitkan dengan Tanggal

Rilis Pra untuk Pengujian, Metadata untuk Pemantauan Pengembangan

🌍 Strategi Multi-Platform

1.3.0+ios.optimized → Optimasi iOS Khusus
1.3.0+android.material3 → Perbarui Desain Android
1.3.0+web.pwa.ready → Kemampuan PWA

Sama versi, metadata platform khusus

🔄 Integrasi CI/CD

1.4.0-alpha.1+build.123 → Pengaturan Prerelese Otomatis
1.4.0+deploy.staging.456 → Pengembangan Staging
1.4.0+prod.final.789 → Pengembangan Produksi

Pengaturan Versi Otomatis dengan metadata pengembangan

💡 Tips Pro:
  • Pakai metadata pembangunan (+) untuk melacak, tanggal, atau informasi kosmetik yang tidak mempengaruhi konsistensi
  • Pakai identifikasi prerelese (-) untuk saluran pengembangan yang memerlukan prioritas pembaruan yang berbeda
  • Kombinasikan kedua-duanya untuk fleksibilitas maksimum: 1.2.0-beta.1+ui.dark.theme.20240315
  • Ingatlah: Capgo menghormati aturan semver sebelumnya, jadi rencanakan strategi saluran Anda sesuai dengan itu

Penting: Capgo menggunakan versi semantik yang ketat

Berbeda dengan implementasi semver npm, Capgo mengikuti spesifikasi SemVer secara ketat. npm memiliki node-semver yang memiliki deviasi yang diketahui dari spesifikasi, yang dapat menyebabkan perilaku yang tidak terduga.

Misalnya, npm menganggap versi seperti 1.0.0-alpha.1 berbeda dengan yang diperlukan oleh spesifikasi. Lihat masalah yang dilaporkan dan upaya penyelesaian yang tidak pernah digabungkan.

Versi Semantik yang Valid

1.0.0 ✓ Rilis Standar
2.1.3-alpha ✓ Pre-release
1.0.0-beta.1 ✓ Rilis pra-rilis dengan nomor
1.0.0+build.1 ✓ Metadata pembangunan
1.0.0-rc.1+build.1 ✓ Versi lengkap

Versi Semantik yang Tidak Valid

v1.0.0 ✗ Tidak diizinkan 'v' di awal
1.0 ✗ Tidak ada versi patch
1.0.0.0 ✗ Terlalu banyak bagian versi
1.0.0- ✗ Pra-rilis kosong
1.0.0+ ✗ Metadata pembangunan kosong

Capgo Perilaku Perbarui

Perbarui patch secara otomatis (1.0.0 → 1.0.1)
Perbarui minor memerlukan konfigurasi saluran (1.0.0 → 1.1.0)
Perbaruan besar memerlukan rilis aplikasi native di toko (1.0.0 → 2.0.0)
Pembaruan pra-rilis memerlukan konfigurasi eksplisit

Instrumen ini mengikuti spesifikasi Versi Semantik resmi berbeda dengan implementasi __CAPGO_KEEP_0__. unlike npm's implementation.