Capgo Tester Semver
Periksa konsistensi versi semantik untuk pembaruan aplikasi Capacitor Anda
Versi yang dipilih oleh aplikasi yang diinstal ke Capgo, dari konfigurasi atau metadata aplikasi native.
Apa itu "Versi Lokal"
Versi Lokal adalah versi yang sudah terinstal di perangkat ketika itu meminta server update untuk mendapatkan bundle. Pada aplikasi Capacitor, nilai tersebut dapat berasal dari
CapacitorUpdater.version di capacitor.config.*. Jika pengaturan tersebut tidak ada
maka plugin akan kembali ke versi aplikasi asli dari iOS atau Android. Jangan asumsikan itu adalah versi Anda kecuali Anda membangun versi tersebut ke dalam konfigurasi atau metadata asli. package.json
Konfigurasi __CAPGO_KEEP_0__
Capacitor config
ketika Anda ingin satu versi eksplisit yang dikirim oleh aplikasi. CapacitorUpdater.version Kelebihan:
mudah untuk menjaga yang sama di antara aplikasi iOS dan Android. Kelemahan:
Kontra: Konfigurasi yang tidak diperbarui dapat melaporkan versi yang salah jika Anda lupa memperbarui sebelum rilis native.
Versi Aplikasi Native
Gunakan versi platform, seperti iOS CFBundleShortVersionString atau Android
versionName.
Kelebihan: Sesuai dengan versi biner yang diinstal dari TestFlight, App Store, Play Store, atau pengujian internal.
Kontra: Mengubahnya memerlukan pembangunan native dan dapat berbeda antar platform jika pengaturan rilis bergeser.
Target Paket
Bandingkan dengan versi paket remote, aturan semver kanal, atau keterbatasan unggah seperti --native-version.
Kelebihan: mencegah pengiriman JavaScript yang memerlukan native code yang lebih baru ke biner aplikasi lama.
K: kontra: aturan yang terlalu ketat dapat menghalangi pembaruan yang valid sampai saluran atau metadata paket disesuaikan.
Untuk tester ini, masukkan versi yang perangkat akan melaporkan sebagai lokal, kemudian bandingkan dengan versi paket remote yang ingin Capgo kirim.
Mengapa Capgo menggunakan Versi Semantik
Versi Semantik adalah standar versi yang paling luas diterima dalam pengembangan perangkat lunak. Dengan menggunakan semver, Capgo memastikan konsistensi dan keamanan ketika mengirimkan pembaruan hidup ke 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
- Perubahan besar (1.0.0 → 2.0.0): Pembaharuan besar, memerlukan rilis aplikasi native
Hal ini mencegah Capgo untuk pernah mengirimkan pembaruan yang tidak kompatibel ke code native Anda, melindungi pengguna Anda dari crash dan memastikan aplikasi Anda tetap stabil.
Strategi Semver Fleksibel: Lebih dari Versi Dasar
Sementara semver ketat tentang format inti, Anda dapat memperluasnya untuk kebutuhan tim Anda menggunakan identifikasi pra-rilis dan metadata bangunan:
🏷️ Metadata Bangunan (+) - Layer "Cosmetik"
Penting: Metadata pembangunan diabaikan dalam urutan versi -
1.2.0+anything sama 1.2.0 untuk Capgo's logika pembaruan.
🔧 Identifikator Pra-rilis (-) - Saluran Pengembangan
Perlu diingat: Versi pra-rilis memiliki prioritas yang lebih rendah -
1.3.0-beta.1 < 1.3.0
🎯 Pendekatan Hibrida - Terbaik dari Dunia
Penggunaan Semver yang Nyata & Strategi Tim
🚀 Pengembangan Awal / Pengembangan Cepat
0.1.0 - Rilis MVP pertama0.2.0-beta.1 - Uji coba fitur baru0.2.0+ui.v2 - Metadata redesign UI1.0.0 - Siap produksiGunakan 0.x.x untuk pengembangan pra-1.0, metadata untuk tracking desain
🏢 Perusahaan / Regulasi
2.1.0 → Rilis kuartal2.1.1+sec.patch.cve2024 → Patch keamanan dengan tracking2.2.0-rc.1+audit.ready → Kandidat rilis pra-auditSemver ketat dengan metadata komplian
🎮 Aplikasi Permainan / Kreatif
1.0.0+season.winter.2024 → Konten musiman1.1.0+event.halloween → Fitur berdasarkan acara1.2.0+assets.hd.remaster → Perbarui asetMetadata kreatif untuk tracking konten
⚡ Strategi Patch Hotfix
1.2.0 → Produksi saat ini1.2.1-hotfix.payment → Perbaikan bug kritis1.2.1+urgent.20240315.1430 → Diterbitkan dengan tanggalPre-release untuk pengujian, metadata untuk pelacakan penggunaan
🌍 Strategi Multi-Platform
1.3.0+ios.optimized → Optimasi iOS khusus1.3.0+android.material3 → Perbaruan desain Android1.3.0+web.pwa.ready → Kemampuan PWAVersi yang sama, metadata spesifik platform
🔄 Integrasi CI/CD
1.4.0-alpha.1+build.123 → Pre-release otomatis1.4.0+deploy.staging.456 → Penggunaan staging1.4.0+prod.final.789 → Pengembangan produksiVersi otomatis dengan metadata pengembangan
- Pakai metadata pembangunan (+) untuk melacak, tanggal, atau informasi kosmetik yang tidak mempengaruhi konsistensi
- Pakai identifikasi pra-rilis (-) untuk saluran pengembangan yang memerlukan prioritas pembaruan yang berbeda
- Gabungkan kedua-duanya untuk fleksibilitas maksimum:
1.2.0-beta.1+ui.dark.theme.20240315 - Penting: Capgo menghormati aturan semver, jadi rencanakan strategi saluran Anda dengan tepat
Penting: Capgo menggunakan versi semantik yang ketat
Berbeda dengan implementasi semver npm, Capgo mengikuti spesifikasi SemVer secara ketat. npm's node-semver memiliki deviasi yang diketahui dari spesifikasi, yang dapat menyebabkan perilaku yang tidak terduga.
Contoh: npm menganggap versi seperti 1.0.0-alpha.1
berbeda dengan yang diharuskan oleh spesifikasi. Lihat masalah yang telah dilaporkan di
__CAPGO_KEEP_0__ dan
perbaikan yang pernah dicoba tapi tidak pernah diterima. Versi Semantik yang Sah
✓ Rilis Standar
1.0.0 ✓ Rilis Pra 2.1.3-alpha ✓ Rilis Pra dengan Nomor 1.0.0-beta.1 ✓ Metadata Pembangunan 1.0.0+build.1 ✓ Versi Lengkap 1.0.0-rc.1+build.1 Versi Semantik yang Tidak Sah ✗ 'v' di awal tidak diizinkan
v1.0.0 ✗ Versi Patch yang Hilang 1.0 __CAPGO_KEEP_0__ 1.0.0.0 ✗ Terlalu banyak bagian versi 1.0.0- ✗ Versi pra-rilis kosong 1.0.0+ ✗ Metadata build kosong Capgo Perilaku Update
Alat ini mengikuti spesifikasi Versi Semantik resmi berbeda dengan implementasi npm.