Capgo Tester Semver
Periksa konsistensi versi semantik untuk pembaruan aplikasi Capacitor Anda
Versi yang dilaporkan oleh aplikasi yang diinstal ke Capgo, dari konfigurasi atau metadata aplikasi native.
Apa itu "Versi Lokal"
Versi Lokal adalah versi yang sudah ada di perangkat ketika perangkat itu bertanya ke server update untuk mendapatkan bundle. Dalam aplikasi Capacitor, nilai itu bisa datang dari
CapacitorUpdater.version di capacitor.config.*. Jika pengaturan itu tidak package.json
ada, plugin itu akan kembali ke versi aplikasi asli dari iOS atau Android. Jangan asumsikan itu adalah versi Anda kecuali Anda membangun versi itu ke konfigurasi atau metadata asli.
Konfigurasi Capacitor
Atur CapacitorUpdater.version ketika Anda ingin satu versi eksplisit dikirim oleh aplikasi
Kelebihan: mudah untuk tetap sama di antara build iOS dan Android.
Kekurangan: konfigurasi yang ketinggalan 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.
Kelebihan: cocok dengan versi biner yang diinstal dari TestFlight, App Store, Play Store, atau pengujian internal.
Kekurangan: mengubahnya memerlukan build native dan dapat berbeda antara platform jika pengaturan rilis bergeser.
Target Bundle
Bandingkan dengan versi bundle remote, aturan semver channel, atau keterbatasan unggah seperti --native-version.
Pro: mencegah mengirim JavaScript yang memerlukan native code yang lebih baru ke biner aplikasi lama.
Con: aturan yang terlalu ketat dapat menghalangi pembaruan yang valid hingga channel atau metadata bundle diatur ulang.
Untuk tester ini, masukkan versi yang perangkat akan melaporkan sebagai lokal, lalu bandingkan dengan versi bundle remote yang ingin Capgo kirimkan.
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
- Perubahan kecil (1.0.0 → 1.1.0): Fitur baru, kompatibel dengan versi sebelumnya
- Perubahan besar (1.0.0 → 2.0.0): Perubahan yang mengganggu, memerlukan rilis aplikasi asli di toko aplikasi
Hal ini mencegah Capgo dari pernah mengirimkan pembaruan yang tidak kompatibel ke code asli Anda, melindungi pengguna Anda 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 identifikasi pra-rilis dan metadata pembangunan:
🏷️ Metadata Pembangunan (+) - Layer "Cosmetik"
Perlu diingat: Metadata build diabaikan dalam urutan versi -
1.2.0+anything sama 1.2.0 untuk Capgo's logika perbarui.
🔧 Identifikator Pre-release (-) - Saluran Pengembangan
Perlu diingat: Versi pra-rilis memiliki prioritas yang lebih rendah -
1.3.0-beta.1 < 1.3.0
🎯 Pendekatan Hibrida - Terbaik dari Kedua Dunia
Penggunaan Semver di Dunia Nyata & Strategi Tim
🚀 Pengembangan Startup / Cepat
0.1.0 - Rilis MVP pertama0.2.0-beta.1 - Pengujian fitur baru0.2.0+ui.v2 - Metadata desain UI1.0.0 - Siap untuk produksiGunakan 0.x.x untuk pengembangan pra-1.0, metadata untuk tracking desain
🏢 Perusahaan / Regulasi
2.1.0 → Rilis setiap 3 bulan2.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 → Update asetMetadata kreatif untuk tracking konten
Strategi Hotfix ⚡
1.2.0 → Produksi saat ini1.2.1-hotfix.payment → Perbaikan bug kritikal1.2.1+urgent.20240315.1430 → Diterbitkan dengan timestampPre-release untuk pengujian, metadata untuk tracking pengembangan
Strategi Multi-Platform 🌍
1.3.0+ios.optimized → Optimalisasi iOS1.3.0+android.material3 → Perbarui desain Android1.3.0+web.pwa.ready → Kemampuan PWAVersi yang sama, metadata spesifik platform
Integrasi CI/CD 🔄
1.4.0-alpha.1+build.123 → Pengaturan Otomatis Rilis Pratinjau1.4.0+deploy.staging.456 → Pengaturan Deploymen Staging1.4.0+prod.final.789 → Pengaturan Deploymen ProduksiPengaturan Versi Otomatis dengan Metadata Deploymen
- Pakai metadata pembangunan (+) untuk melacak, timestamps, atau informasi kosmetik yang tidak mempengaruhi konsistensi
- Pakai identifikasi rilis pratinjau (-) untuk saluran pengembangan yang memerlukan prioritas pembaruan yang berbeda
- Gabungkan kedua-duanya untuk fleksibilitas maksimum:
1.2.0-beta.1+ui.dark.theme.20240315 - Ingat: Capgo menghormati aturan semver, jadi rencanakan strategi saluran Anda sesuai
Penting: Capgo menggunakan semver yang ketat
Berbeda dengan implementasi semver npm, Capgo mengikuti spesifikasi SemVer resmi 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 diharapkan. Lihat masalah kami
laporkan masalah dan
perbaikan yang pernah dicoba yang tidak pernah digabungkan.
Versi Semantik yang Valid
1.0.0 ✓ Rilis Standar 2.1.3-alpha ✓ Rilis Prerelease 1.0.0-beta.1 ✓ Rilis Prerelease 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 diperbolehkan 'v' di awal 1.0 ✗ Versi patch tidak lengkap 1.0.0.0 ✗ Terlalu banyak bagian versi 1.0.0- ✗ Pre-release kosong 1.0.0+ ✗ Metadata build kosong Capgo Perilaku Pembaruan
Alat ini mengikuti spesifikasi Versi Semantik resmi berbeda dengan implementasi npm.