Lompat ke konten utama

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.

Masukkan dua versi semantik untuk melihat perbandingan

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"

1.2.0+20240315.142530
Timestamp untuk pelacakan pengiriman
1.2.0+refresh.tampilan.malammu
Deskripsi perbarui UI untuk tim desain
1.2.0+build.4729.commit.a1b2c3d
Nomor build CI/CD dan commit Git

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

1.3.0-beta.1
Saluran pengujian beta
1.3.0-hotfix.pembayaran
Cabang perbaikan darurat
1.3.0-fitur.newapi
Pengujian cabang fitur

Perlu diingat: Versi pra-rilis memiliki prioritas yang lebih rendah - 1.3.0-beta.1 < 1.3.0

🎯 Pendekatan Hibrida - Terbaik dari Kedua Dunia

1.3.0-rc.1+ui.redesign.20240315
Kandidat rilis dengan metadata UI dan tanggal

Penggunaan Semver di Dunia Nyata & Strategi Tim

🚀 Pengembangan Startup / Cepat

0.1.0 - Rilis MVP pertama
0.2.0-beta.1 - Pengujian fitur baru
0.2.0+ui.v2 - Metadata desain UI
1.0.0 - Siap untuk produksi

Gunakan 0.x.x untuk pengembangan pra-1.0, metadata untuk tracking desain

🏢 Perusahaan / Regulasi

2.1.0 → Rilis setiap 3 bulan
2.1.1+sec.patch.cve2024 → Patch keamanan dengan tracking
2.2.0-rc.1+audit.ready → Kandidat rilis pra-audit

Semver ketat dengan metadata komplian

🎮 Aplikasi Permainan / Kreatif

1.0.0+season.winter.2024 → Konten musiman
1.1.0+event.halloween → Fitur berdasarkan acara
1.2.0+assets.hd.remaster → Update aset

Metadata kreatif untuk tracking konten

Strategi Hotfix ⚡

1.2.0 → Produksi saat ini
1.2.1-hotfix.payment → Perbaikan bug kritikal
1.2.1+urgent.20240315.1430 → Diterbitkan dengan timestamp

Pre-release untuk pengujian, metadata untuk tracking pengembangan

Strategi Multi-Platform 🌍

1.3.0+ios.optimized → Optimalisasi iOS
1.3.0+android.material3 → Perbarui desain Android
1.3.0+web.pwa.ready → Kemampuan PWA

Versi yang sama, metadata spesifik platform

Integrasi CI/CD 🔄

1.4.0-alpha.1+build.123 → Pengaturan Otomatis Rilis Pratinjau
1.4.0+deploy.staging.456 → Pengaturan Deploymen Staging
1.4.0+prod.final.789 → Pengaturan Deploymen Produksi

Pengaturan Versi Otomatis dengan Metadata Deploymen

💡 Tips Pro:
  • 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

Pembaruan patch diterapkan secara otomatis (1.0.0 → 1.0.1)
Pembaruan minor memerlukan pengaturan saluran (1.0.0 → 1.1.0)
Pembaruan mayor memerlukan rilis aplikasi native (1.0.0 → 2.0.0)
Versi pre-release memerlukan pengaturan eksplisit

Alat ini mengikuti spesifikasi Versi Semantik resmi berbeda dengan implementasi npm.