Langsung ke konten utama

Targeting Versi

Kirim hanya bundle yang bisa dijalankan ke setiap versi native

Pengguna melakukan update dari store sesuai kecepatan mereka sendiri, sehingga beberapa versi native aplikasi Anda aktif bersamaan. Capgo memeriksa dependensi native setiap bundle, memblokir update berdasarkan aturan versi, dan dapat mengarahkan setiap versi native ke channel masing-masing.

Cek kompatibilitas native sebelum upload

Kompatibilitas bundle membandingkan native packages di proyek Anda dengan bundle yang live di channel. Tambahkan --fail-on-incompatible di CI untuk menghentikan upload yang membutuhkan binary baru.

Dokumentasi kompatibilitas native

Tetapkan batas minimum versi native pada setiap bundle

Gunakan strategi metadata pada channel dan upload dengan --auto-min-update-version. Perangkat yang versi native-nya di bawah batas minimum bundle akan melewatinya dan tetap memakai bundle saat ini.

Dokumentasi version targeting

Blokir update antar lini semver

--disable-auto-update major, minor, atau patch mencegah perangkat menerima bundle di luar lini versi native-nya. Aturan ini hanya membandingkan nomor versi dan tidak memeriksa native code.

Tipe update dan pemblokiran versi

Satu channel per versi native

Atur defaultChannel di config Capacitor setiap native build, misalnya v2 atau v3. Setiap baris memiliki bundle sendiri, dan baris lama bisa tetap menggunakan bundle terakhir yang stabil.

Dokumentasi version targeting

Cara kerjanya

Cara tim dengan beberapa versi native melakukan deployment dengan Capgo

Setup CI yang memungkinkan lane live update dan lane store berjalan berdampingan. Setiap perintah di bawah ini diambil dari dokumentasi Capgo CLI.

  1. Cek apakah commit memerlukan native build

    build needed membandingkan package native Anda dengan channel. Perintah ini akan mencetak 'yes' dan exit dengan code 1 jika rilis store diperlukan, dan 'no' jika live update sudah cukup.

    npx @capgo/cli@latest build needed com.example.app --channel production
    referensi build needed
  2. Ganti channel ke strategi metadata

    Lakukan ini sekali saja. Setelah itu, setiap bundle akan menyertakan versi native minimum, dan perangkat di bawah versi tersebut akan melewati bundle tersebut.

    npx @capgo/cli@latest channel set production com.example.app \
      --disable-auto-update metadata
    Dokumentasi version targeting
  3. Upload live update setiap hari

    Selalu sertakan --auto-min-update-version di setiap upload. --fail-on-incompatible menghentikan job jika bundle membutuhkan code native yang tidak dimiliki channel tersebut.

    npx @capgo/cli@latest bundle upload --channel production \
      --auto-min-update-version \
      --fail-on-incompatible
    Dokumentasi kompatibilitas native
  4. Upload bundle untuk rilis native baru

    Saat binary baru dirilis, upload bundle-nya tanpa --fail-on-incompatible. Capgo menaikkan batas minimum sehingga build lama melewatinya, dan pengecekan berikutnya membandingkan dengan package native baru.

    npx @capgo/cli@latest bundle upload --channel production \
      --auto-min-update-version
    Workflow channel native dan OTA

Migrasi Appflow

Pindah dari Ionic Appflow?

Appflow mencocokkan live updates ke versi native untuk Anda. Di Capgo, Anda mendapatkan hasil yang sama dengan channel dan version rules:

  1. Buat channel untuk setiap native line, misalnya v1 dan v2.
  2. Set defaultChannel di config Capacitor tiap native build ke channel-nya.
  3. Upload setiap bundle ke channel dari native line yang menjadi target build-nya.
  4. Pertahankan --auto-min-update-version saat upload agar bundle yang butuh native code lebih baru melewati build lama.
Panduan migrasi Appflow
Channel per baris native
// capacitor.config.ts in your 2.x native builds
plugins: {
  CapacitorUpdater: {
    defaultChannel: 'v2',
  },
},

# ship a fix to 2.x users only
npx @capgo/cli@latest bundle upload --channel v2 \
  --auto-min-update-version

# 1.x devices stay on their channel's current bundle

Skenario umum

Plugin native baru

Binary 2.0 Anda menambahkan plugin kamera. Upload bundle yang memakainya dengan --auto-min-update-version, dan perangkat 1.x akan melewatinya sampai user menginstal 2.0.

Dokumentasi kompatibilitas native

Rilis bertahap

Kirim bundle ke sebagian pengguna di satu channel dengan --rollout, pantau data instalasi dan kegagalan, lalu promosikan atau lakukan rollback.

Dokumentasi progressive rollouts

Menghentikan versi lama

Berhenti upload ke channel v1. Perangkat di channel itu tetap memakai bundle terakhir yang berfungsi sementara v2 terus menerima update.

Dokumentasi version targeting

Setiap versi native memiliki channel sendiri

Contoh layout dengan tiga versi native yang sedang berjalan.

  • Native 3.x
    v3
    Bundle baru
  • Native 2.x
    v2
    Hanya perbaikan
  • Native 1.x
    v1
    Tanpa bundle baru

Rilis fitur ke v3, perbaikan ke v2, dan tidak ada untuk v1. Perangkat di v1 tetap memakai bundle terakhir yang berfungsi.

Aplikasi yang dibangun dengan Capacitor

Aplikasi publik harus mendukung versi native lama dan baru

Aplikasi layanan publik, kesehatan, dan prakiraan cuaca mungkin mendukung versi Android lama dan generasi perangkat yang berbeda. Version targeting menjaga setiap Native Build tetap menggunakan web bundle kompatibel terbaru tanpa memaksakan satu jalur update untuk semua orang.

Ikon aplikasi e-Título SOSIAL

e-Título

Aplikasi identitas kewargaan dengan kebutuhan kompatibilitas perangkat publik yang luas.

Instalasi Google Play
54,9M
Rating toko
4.8
Ikon aplikasi Conecte SUS MEDIS

Hubungkan SUS

Aplikasi kesehatan yang native shell lama dan barunya mungkin butuh web bundle berbeda.

Instalasi Google Play
27,7M
Rating toko
4.6
Ikon aplikasi Windy.com - Prakiraan Cuaca CUACA

Windy.com - Prakiraan Cuaca

Aplikasi cuaca yang kemampuan perangkat dan performa petanya bisa berbeda tiap versi.

Instalasi Google Play
32,9 jt
Rating toko
4.7

Bukti nyata pelanggan

Apa kata tim yang merilis aplikasi dengan Capgo

5.0/5 Diberi rating oleh tim developer 9,400+ tim Baca ulasan

no-tone @ Webincode

Developer, Webincode

“Bisa menambahkan Device ID ke grup tertentu dan push perubahan hanya ke grup itu sangat membantu.”

Nate van Jole

CTO, Privat

“Setup-nya selesai kurang dari sehari. Rollout berbasis channel memungkinkan saya menguji di perangkat sendiri sebelum sampai ke pengguna production.”

Potret Sergiu S

Sergiu S

Lead Developer, drivolino GmbH

“Plugin Capgo Capacitor Updater benar-benar mengubah cara kami merilis update. Yang dulu butuh berhari-hari kini hanya butuh beberapa menit.”

FAQ

Pertanyaan seputar versi di lapangan

Untuk tim yang mendukung pengguna yang meng-update aplikasi store pada waktu berbeda-beda.

Apa yang terjadi pada pengguna yang tidak pernah update aplikasi native?

Mereka akan terus menerima bundle yang kompatibel dengan versi native mereka. Dengan strategi metadata, bundle yang versi native minimumnya lebih tinggi dari versi mereka akan dilewati, sehingga mereka tetap memakai bundle saat ini.

Dokumentasi version targeting

Apakah --disable-auto-update cukup ampuh mencegah crash?

Tidak. Aturan versi hanya membandingkan nomor versi, jadi perubahan native dalam rilis minor atau patch tetap akan terkirim. Gunakan --fail-on-incompatible atau --auto-min-update-version, yang memeriksa paket native Anda.

Dokumentasi kompatibilitas native

Bagaimana CI tahu apakah suatu perubahan perlu rilis store?

Jalankan build needed atau bundle releaseType pada channel. Keduanya membandingkan metadata paket native. Keduanya tidak melihat setiap perubahan di ios/, android/, atau capacitor.config, jadi lakukan gate pada path tersebut di git juga.

Pilih OTA atau Native Build di CI

Kami sedang pindah dari Ionic Appflow. Bisakah kami tetap memakai update yang sesuai versi?

Bisa. Gunakan satu channel per lini native dengan defaultChannel, atau strategi metadata dengan --auto-min-update-version. Panduan migrasi Appflow menjelaskan langkah setup-nya.

Panduan migrasi Appflow

Bagaimana jika bundle yang tidak kompatibel sudah terlanjur rilis?

Arahkan channel kembali ke bundle kompatibel terakhir dari riwayatnya, atau paksa built-in bundle, lalu rilis native build. notifyAppReady() akan me-rollback bundle yang gagal start, tapi itu bukan pengganti code native yang kompatibel.

Dokumentasi rollbacks

Pastikan setiap versi native tetap di bundle yang bisa dijalankannya

Atur strategi metadata dan pengecekan kompatibilitas di CI selama uji coba gratis 14 hari. Tanpa perlu kartu kredit.