Capgo Tester Semver
Periksa kompatibilitas kebijakan saluran terhadap dasar native yang dikirim sebagai version_build
Versi native yang dikirim ke Capgo sebagai version_build, dari konfigurasi atau metadata aplikasi native.
Versi bundle yang ditugaskan ke saluran yang diperoleh.
Apa itu "Versi Dasar Native"
Versi Dasar Native adalah versi aplikasi native yang dikirimkan ke Capgo sebagai
version_build ketika perangkat meminta server pembaruan untuk bundle. Dalam aplikasi Capacitor, nilai tersebut dapat berasal dari
CapacitorUpdater.version di capacitor.config.*. Jika pengaturan tersebut tidak package.json
Plugin tersebut akan kembali ke versi aplikasi native dari iOS atau Android. Jangan asumsikan itu adalah versi Anda kecuali Anda menggandakan nilai tersebut ke konfigurasi atau metadata native.
Capgo masih menggunakan version_name untuk mengetahui bundle yang diunduh saat ini yang terpasang. Kebijakan semver channel seperti major, minor, dan
patch bandingkan bundle remote terhadap version_build.
Capacitor konfigurasi
Tetapkan CapacitorUpdater.version ketika Anda ingin satu versi eksplisit dikirim oleh aplikasi.
Kelebihan: mudah untuk menjaga yang sama di antara pembangunan iOS dan Android.
Kekurangan: konfigurasi 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.
Kelebihan: mengenai binary pengguna yang diinstal dari TestFlight, App Store, Play Store, atau pengujian internal.
Kerugian: mengubahnya memerlukan build asli dan dapat berbeda antar platform jika pengaturan rilis bergeser.
Pengaturan Bundle
Bandingkan dengan versi bundle remote, aturan semver channel, atau keterbatasan unggah seperti --native-version.
Kelebihan: mencegah mengirim JavaScript yang memerlukan native code yang lebih baru ke binary aplikasi lama.
Kerugian: aturan yang terlalu ketat dapat menghalangi pembaruan yang valid sampai channel atau metadata bundle diatur ulang.
Untuk tester ini, masukkan baseline native yang perangkat mengirimkan sebagai version_build, kemudian bandingkan dengan versi bundle remote
yang ingin Capgo kirimkan.
Mengapa Capgo menggunakan Versi Semantik
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-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 native code 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 pembangunan:
🏷️ Metadata Pembangunan (+) - Layer "Cosmetik"
Penting: Metadata pembangunan diabaikan dalam keutuhan versi -
1.2.0+anything sama 1.2.0 untuk logika pembaruan Capgo.
🔧 Identifikator Pra-Rilis (-) - Saluran Pengembangan
Catatan: Versi Pra-Rilis memiliki prioritas lebih rendah -
1.3.0-beta.1 < 1.3.0
🎯 Pendekatan Hibrida - Terbaik dari Kedua Dunia
Penggunaan Semver 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 - Rilis siap produksiGunakan 0.x.x untuk pengembangan pre-1.0, metadata untuk tracking desain
🏢 Perusahaan / Terregulasi
2.1.0 → Rilis kuartal2.1.1+sec.patch.cve2024 → Patch keamanan dengan tracking2.2.0-rc.1+audit.ready → Kandidat rilis audit sebelumnyaSemantik Versi 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 AssetMetadata Kreatif untuk Mengikuti Konten
⚡ Strategi Perbaikan 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 Mengikuti Pelacakan Pengembangan
🌍 Strategi Multi-Platform
1.3.0+ios.optimized → Optimasi iOS khusus1.3.0+android.material3 → Perbaruan desain Android1.3.0+web.pwa.ready → Kemampuan PWASama versi, metadata platform khusus
🔄 Integrasi CI/CD
1.4.0-alpha.1+build.123 → Pengiriman otomatis sebelum rilis1.4.0+deploy.staging.456 → Pengiriman staging1.4.0+prod.final.789 → Pengiriman produksiVersi otomatis dengan metadata pengiriman
- Pakai metadata pembangunan (+) untuk melacak, tanggal, atau informasi kosmetik yang tidak mempengaruhi konsistensi
- Pakai identifikasi pre-release (-) untuk saluran pengembangan yang memerlukan prioritas update yang berbeda
- Gabungkan 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 semver 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 kami
dan usaha untuk memperbaiki
yang tidak pernah digabungkan. Versi Semantik yang Valid
✓ Rilis standar
1.0.0
✓
2.1.3-alpha
✓ Rilis Pra
1.0.0-beta.1
✓ Rilis Pra dengan Nomor
1.0.0+build.1
✓ Metadata Pembangunan
1.0.0-rc.1+build.1
✓ Versi Lengkap
__CAPGO_KEEP_0__ Perilaku Perbarui
v1.0.0
Versi Semantik Tidak Valid
1.0
✗ Tidak Diperbolehkan 'v' di Awal
1.0.0.0
✗ Tidak Ada Versi Patch
1.0.0-
✗ Terlalu Banyak Bagian Versi
1.0.0+
✗ Rilis Pra Kosong
Capgo Update Behavior
Alat ini mengikuti spesifikasi Versi Semantik resmi berbeda dengan implementasi __CAPGO_KEEP_0__ unlike npm's implementation.