Kompatibilitas Nadi
Bagaimana Capgo mendeteksi perubahan paket nadi dan apa yang berarti tidak kompatibel untuk perangkat.
Salin permintaan pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Sebuah pengaturan Capgo yang umum menggunakan sebuah dev saluran dan sebuah produksi saluran. CI mengunggah setiap bundle OTA ke dev, kemudian mempromosikan ke production ketika Anda sudah siap. Tim sering menambahkan --fail-on-incompatible sehingga CI tidak dapat mengirimkan pembaruan hidup yang memerlukan native code baru secara tidak sengaja.
Pertanyaan ini menjawab pertanyaan lanjutan: apa yang harus Anda lakukan ketika Anda secara sengaja membutuhkan bundle yang tidak kompatibel dengan native package saluran saat ini?
Jika Anda membutuhkan latar belakang mengapa Capgo membandingkan native package, mulai dengan Kompatibilitas Native. Untuk cabang CI penuh yang memilih OTA vs Capgo Build secara otomatis, lihat Auto OTA atau Native.
Panduan ini asumsikan Anda telah memiliki saluran yang sudah ada. Buatlah terlebih dahulu jika diperlukan: dev Tampilan terminal production Salin ke clipboard
npx @capgo/cli@latest channel add production com.example.appnpx @capgo/cli@latest channel add dev com.example.app| Upload biasa | Rilis internal / QA | Setiap push CI JavaScript (dan dasar native yang sengaja) |
|---|---|---|
dev | Setiap push CI JavaScript (dan dasar native yang sengaja) | Rancangan saluran yang direkomendasikan |
production | Penyimpanan pengguna | Ditampilkan atau diunggah hanya ketika siap rilis |
--fail-on-incompatible adalah pilihan default yang baik pada kedua saluran untuk pengunggahan OTA sehari-hari. Ini membandingkan paket native di dalam bundle yang Anda unggah terhadap bundle yang sedang berjalan pada saluran tersebutJika mereka berbeda, proses unggah berakhir dengan kode keluaran non-nol dan tidak ada yang dikirim.
Ketika perubahan hanya JavaScript dan paket native sesuai dengan saluran:
npx @capgo/cli@latest bundle upload com.example.app \ --channel production \ --fail-on-incompatible \ --auto-min-update-version--fail-on-incompatible mengganggu kenaikan native secara tidak sengaja. --auto-min-update-version is wajib pada setiap unggahan setelah saluran menggunakan strategi (direkomendasikan di bawah). Jika saluran belum menggunakan strategi ini, Anda dapat mengabaikan metadata strategi ini (direkomendasikan di bawah). Jika saluran belum menggunakan strategi ini, Anda dapat mengabaikan metadata strategi ini (direkomendasikan di bawah). Jika saluran belum menggunakan strategi ini, Anda dapat mengabaikan --auto-min-update-version strategi ini (direkomendasikan di bawah). Jika saluran belum menggunakan strategi ini, Anda dapat mengabaikan
Opsi pintu masuk CI sebelum unggahan:
npx @capgo/cli@latest bundle releaseType com.example.app --channel production# → OTA safe to upload with --fail-on-incompatible# → native stop; ship a native binary first (see below)Anda context unggah sebuah bundle yang memerlukan code native baru sementara menjaga --fail-on-incompatibleflag tersebut ada untuk menghalangi kasus tersebut secara tepat. Ketika plugin, Capacitor versi, atau dependensi native lainnya berubah secara sengaja:
--fail-on-incompatible.--auto-min-update-version Setelah itu, unggah __CAPGO_KEEP_0__ dasar metadata native binary--fail-on-incompatible Kembali ke OTA CI normal (dan tetapkan) --auto-min-update-version Sementara saluran tetap pada metadata).Satu kali per saluran: aktifkan pengaturan metadata
npx @capgo/cli@latest channel set production com.example.app --disable-auto-update metadataUlangi untuk dev Jika saluran tersebut juga menerima native baseline sengaja. Setelah perubahan ini, setiap unggahan ke saluran harus termasuk --auto-min-update-version atau --min-update-version.
Bagaimana jika Anda ingin mengganti saluran yang ada?
Kirimkan binary native
Buat dan kirimkan aplikasi iOS/Android yang termasuk plugin atau perubahan native baru. Sampai pengguna menginstal binary tersebut, mereka tidak dapat menjalankan bundle yang bergantung pada paket native tersebut dengan aman. --fail-on-incompatible)
npx @capgo/cli@latest bundle upload com.example.app \ --channel production \ --auto-min-update-versionHal ini merekam paket native baru di saluran. Kemudian bundle releaseType / --fail-on-incompatible periksa menggunakan dasar tersebut.
Tetapkan ulang unggahan OTA yang dilindungi
Rilis JS-only berikutnya menggunakan kedua flag lagi:
npx @capgo/cli@latest bundle upload com.example.app \ --channel production \ --fail-on-incompatible \ --auto-min-update-version--fail-on-incompatible Apakah saya bisa tetap Bagian berjudul “Apakah saya bisa tetap --fail-on-incompatible dan masih bisa mengirimkan paket yang tidak kompatibel dengan native?” --auto-min-update-version Tidak. Jika paket native upload berbeda dengan paket live channel, flag tersebut akan gagal secara sengaja. Untuk peningkatan native yang sengaja, abaikan flag tersebut pada upload tersebut (dan gunakan
Bagian berjudul “Apakah upload sekali saja tanpa flag yang tepat adalah pendekatan yang tepat?”
dev pertama, kemudian production?Ya, jika itu sesuai dengan proses Anda. Jalankan aturan yang sama per saluran: cek kompatibilitas dilakukan terhadap apa yang sedang hidup di saluran target. Promosikan atau unggah ulang ke production hanya setelah dev terlihat baik, dan gunakan unggahan dasar native (tanpa --fail-on-incompatible) pada setiap saluran yang memerlukan paket native baru direkam.
CI gagal dan Capgo tidak mengirimkan unggahan tersebut. Itu adalah hasil yang diharapkan. Atau perubahan itu tidak sengaja (perbaiki paket native dan coba lagi sebagai OTA), atau itu sengaja (gunakan jalur native di atas).
| Path | Ketika | Upload bendera |
|---|---|---|
| OTA | JS-saja; paket native sesuai dengan saluran | --fail-on-incompatible + --auto-min-update-version (diperlukan jika saluran aktif) metadata) |
| Native baseline | Native biner baru + bundel JS yang sesuai | Tidak --fail-on-incompatible; jaga --auto-min-update-version |
Kompatibilitas Nadi
Bagaimana Capgo mendeteksi perubahan paket nadi dan apa yang berarti tidak kompatibel untuk perangkat.
Auto OTA atau Nadi
Kabel bundle releaseType Masukkan GitHub Aksi atau GitLab sehingga CI memilih jalur yang tepat.
Pencapaian Versi
context
CLI: bundle
__CAPGO_KEEP_0__: bundel
Jika Anda menggunakan Native + OTA Channel Workflow untuk menjaga pembaruan hidup aman di sepanjang rilis native, hubungkan dengan Native Compatibility untuk aturan perbandingan paket, Auto OTA atau Native untuk cabang CI, Target Versi context Capgo CLI bundle reference untuk lantai metadata, dan referensi bundel `__CAPGO_KEEP_0__ __CAPGO_KEEP_1__` untuk flag unggah.