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.
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
Penting: Metadata pembangunan diabaikan dalam keutuhan versi -
1.2.0+anything sama 1.2.0 untuk Capgo's logika perbarui.
🔧 Identifikator Prereleas (-) - Saluran Pengembangan
Catatan: Versi Prereleas memiliki prioritas lebih rendah -
1.3.0-beta.1 < 1.3.0
🎯 Pendekatan Hibrid - Terbaik dari Kedua Dunia
Kasus Semver yang Digunakan dalam 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 merancang ulang 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 trimester2.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 → Perbaruan AssetMetadata Kreatif untuk Pemantauan Konten
⚡ Strategi Hotfix
1.2.0 → Produksi Saat Ini1.2.1-hotfix.payment → Perbaikan Bug Kritis1.2.1+urgent.20240315.1430 → Diterbitkan dengan TanggalRilis Pra untuk Pengujian, Metadata untuk Pemantauan Pengembangan
🌍 Strategi Multi-Platform
1.3.0+ios.optimized → Optimasi iOS Khusus1.3.0+android.material3 → Perbarui Desain Android1.3.0+web.pwa.ready → Kemampuan PWASama versi, metadata platform khusus
🔄 Integrasi CI/CD
1.4.0-alpha.1+build.123 → Pengaturan Prerelese Otomatis1.4.0+deploy.staging.456 → Pengembangan Staging1.4.0+prod.final.789 → Pengembangan ProduksiPengaturan Versi Otomatis dengan metadata pengembangan
- 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
Instrumen ini mengikuti spesifikasi Versi Semantik resmi berbeda dengan implementasi __CAPGO_KEEP_0__. unlike npm's implementation.