Capgo Semver Tester
Periksa kompatibilitas kebijakan saluran terhadap dasar native yang dikirim sebagai versi_build
Versi native yang dikirim ke Capgo sebagai versi_build, dari konfigurasi atau metadata aplikasi native.
Versi bundle yang diberikan kepada saluran yang diperiksa.
Apa itu "Versi Dasar Native"
Versi Dasar Native adalah versi aplikasi native yang dikirim ke Capgo sebagai
version_build ketika perangkat meminta server pembaruan untuk bundle. Dalam aplikasi Capacitor, nilai tersebut dapat berasal dari
CapacitorUpdater.version dalam 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 membuat build yang menyalin nilai tersebut ke konfigurasi atau metadata asli. package.json
__CAPGO_KEEP_0__ masih menggunakan
Capgo still uses version_name to know which downloaded bundle is currently installed. Channel semver policies such as major, minor, dan
patch menggunakan kebijakan untuk membandingkan bundle remote terhadap version_build.
Capacitor konfigurasi
Set CapacitorUpdater.version ketika Anda ingin mengirimkan satu versi spesifik yang dikirimkan oleh aplikasi.
Pro: mudah untuk menjaga yang sama di antara build iOS dan Android.
Kontra: Konfigurasi yang tidak diperbarui dapat melaporkan versi yang salah jika Anda lupa memperbaruhinya sebelum rilis native.
Versi aplikasi native
Gunakan versi platform, seperti iOS CFBundleShortVersionString atau Android
versionName.
Kelebihan: Sesuai dengan versi biner yang diinstal oleh pengguna dari TestFlight, App Store, Play Store, atau pengujian internal.
Kontra: Mengubahnya memerlukan pembangunan native dan dapat berbeda antar platform jika pengaturan rilis bergeser.
Target bundel
Bandingkan dengan versi bundel remote, aturan semver channel, atau keterbatasan unggah seperti --native-version.
Kelebihan: mencegah pengiriman JavaScript yang memerlukan native code yang lebih baru ke biner aplikasi lama.
Con: aturan yang terlalu ketat dapat menghalangi pembaruan yang valid sampai saluran atau metadata paket disesuaikan.
Untuk tester ini, masukkan dasar native yang perangkat mengirimkan sebagai version_buildlalu bandingkan dengan versi paket remote
yang ingin Capgo kirimkan.
Mengapa Capgo menggunakan Semantic Versioning
Penggunaan Versi Semantik adalah standar versi yang paling banyak digunakan dalam pengembangan perangkat lunak. Dengan menggunakan semver, Capgo memastikan konsistensi dan keamanan ketika mengirimkan pembaruan live 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): Pembaruan bug, aman untuk diterapkan secara otomatis
- Pembaruan minor (1.0.0 → 1.1.0): Fitur-fitur baru, kompatibel mundur
- Perubahan besar (1.0.0 → 2.0.0): Perubahan yang mengganggu, memerlukan rilis aplikasi native di toko aplikasi
Ini mencegah Capgo dari 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 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 'Cosmetic'
Perlu diingat: Metadata perbaruan diabaikan dalam urutan keutamaan versi -
1.2.0+anything sama dengan 1.2.0 untuk Capgo's logika perbaruan.
🔧 Identifikasi Prerelease (-) - 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 Nyata & Strategi Tim
🚀 Pengembangan Awal / Pengembangan Cepat
0.1.0 - Rilis MVP pertama0.2.0-beta.1 - Pengujian fitur baru0.2.0+ui.v2 - Metadata redesign UI1.0.0 - Siap untuk produksiGunakan 0.x.x untuk pengembangan pra-1.0, metadata untuk pengawasan desain
🏢 Perusahaan / Regulasi
2.1.0 → Rilis kuartalan2.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 pengawasan konten
⚡ Strategi Perbaikan 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 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 → Pengembangan Staging1.4.0+prod.final.789 → Pengembangan ProduksiVersi Otomatis dengan Metadata Pengembangan
- Gunakan metadata pembangunan (+) untuk melacak, tanggal, atau informasi kosmetik yang tidak mempengaruhi konsistensi
- Gunakan 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 - Ingatlah: Capgo menghormati aturan semver prioritas, jadi rencanakan strategi saluran Anda sesuai
Penting: Capgo menggunakan versi semantik 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.
Misalnya, npm menganggap versi seperti 1.0.0-alpha.1
berbeda dengan yang diperlukan oleh spesifikasi. Lihat di
masalah yang dilaporkan dan
perbaikan yang dicoba yang tidak pernah diverifikasi.
Versi Semantik yang Valid
1.0.0 ✓ Rilis Standar 2.1.3-alpha ✓ Rilis Pra-Verifikasi 1.0.0-beta.1 ✓ Rilis Pra-Verifikasi 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 ✗ 'v' di awal tidak diizinkan 1.0 ✗ Tidak ada patch versi 1.0.0.0 ✗ Terlalu banyak bagian versi 1.0.0- ✗ Prerelease kosong 1.0.0+ ✗ Metadata build kosong Capgo Perilaku Update
Alat ini mengikuti spesifikasi Pengaturan Versi Semantis berbeda dengan implementasi npm.