Lebihkan ke Konten

Native + OTA Channel Workflow?

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 agar CI tidak bisa mengirimkan pembaruan hidup yang memerlukan native code baru secara tidak sengaja.

Ini halaman yang menjawab pertanyaan lanjutan: apakah Anda harus melakukan apa 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 CI cabang penuh yang memilih OTA vs Capgo Build secara otomatis, lihat Auto OTA atau Native.

Judul bagian “Rancangan saluran yang direkomendasikan”

Panduan ini asumsikan Anda telah memiliki saluran yang sudah ada. Buatlah terlebih dahulu jika perlu: dev Tampilan terminal production Salin ke clipboard

Saluran
npx @capgo/cli@latest channel add production com.example.app
npx @capgo/cli@latest channel add dev com.example.app
Upload biasaRilis internal / QASetiap push CI dari JS (dan dasar native yang sengaja)
devdanSaluran
productionPengguna TokoDitampilkan atau diunggah hanya ketika rilis siap

--fail-on-incompatible adalah pilihan default yang baik pada kedua saluran untuk upload OTA sehari-hari. Ini membandingkan paket native di dalam bundle yang Anda unggah terhadap bundle yang sedang berjalan pada saluran tersebut. Jika 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:

Tampilan jendela terminal
npx @capgo/cli@latest bundle upload com.example.app \
--channel production \
--fail-on-incompatible \
--auto-min-update-version

--fail-on-incompatible mencegah pergeseran native secara tidak sengaja. --auto-min-update-version diperlukan pada setiap unggahan setelah saluran menggunakan strategi (direkomendasikan di bawah). Jika saluran belum digunakan, Anda dapat mengabaikan metadata hingga Anda beralih. metadata Pintu CI opsional sebelum unggahan: --auto-min-update-version Jendela terminal

Salin ke papan klip

Peningkatan native sengaja (angkat flag sekali)
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)

mengganggu pergeseran native secara tidak sengaja. diperlukan pada setiap unggahan setelah saluran menggunakan strategi (direkomendasikan di bawah). Jika saluran belum digunakan, Anda dapat mengabaikan unggah sebuah bundle yang memerlukan code native baru sambil menjaga --fail-on-incompatibleitu. Flag tersebut ada untuk menghalangi kasus tersebut secara tepat. Ketika plugin, Capacitor versi, atau dependensi native lainnya berubah secara sengaja:

  1. Kirimkan versi biner native yang sesuai (App Store / Play Store, atau __CAPGO_KEEP_0__ Build Capgo Build).
  2. tanpa Lebih baik --fail-on-incompatible.
  3. dengan saluran pada strategi sehingga perangkat yang masih menggunakan biner lama tidak menerima bundle baru sampai mereka menginstal aplikasi baru. --auto-min-update-version Setelah itu, unggah baseline metadata Setelah itu, unggah baseline upload, masukkan
  4. Setelah itu, unggah baseline upload, masukkan --fail-on-incompatible Kembali ke OTA CI normal (dan tetapkan) --auto-min-update-version Sementara saluran tetap pada metadata).
  1. Satu kali per saluran: aktifkan pengaturan metadata

    Jendela terminal
    npx @capgo/cli@latest channel set production com.example.app --disable-auto-update metadata

    Ulangi untuk dev Jika saluran tersebut juga menerima native baselines sengaja. Setelah perubahan ini, setiap unggahan ke saluran harus termasuk --auto-min-update-version atau --min-update-version.

  2. Saluran harus tetap pada

    Kirimkan binary native

  3. Buat dan kirimkan aplikasi iOS/Android yang mencakup plugin baru atau perubahan native. Hingga pengguna menginstal binary tersebut, mereka tidak dapat menjalankan aman bundle yang bergantung pada paket native tersebut. --fail-on-incompatible)

    Unggah baseline OTA yang sesuai (tidak termasuk)
    npx @capgo/cli@latest bundle upload com.example.app \
    --channel production \
    --auto-min-update-version

    Catatan ini merekam paket native baru di saluran. Kemudian bundle releaseType / --fail-on-incompatible memeriksa menggunakan dasar tersebut.

  4. Mulai kembali unggahan OTA yang dilindungi

    Rilis JS-only berikutnya menggunakan kedua flag lagi:

    Jendela terminal
    npx @capgo/cli@latest bundle upload com.example.app \
    --channel production \
    --fail-on-incompatible \
    --auto-min-update-version

FAQ

FAQ

Bagian berjudul “FAQ” --fail-on-incompatible Apakah saya bisa tetap

dan masih bisa mengirimkan bundle yang tidak kompatibel dengan native?

Bagian berjudul “Apakah saya bisa tetap --fail-on-incompatible dan masih bisa mengirimkan bundle yang tidak kompatibel dengan native?” --auto-min-update-version Tidak. Jika paket native upload berbeda dengan bundle live channel, flag tersebut akan gagal perintah secara sengaja. Untuk meningkatkan native secara sengaja, abaikan flag tersebut pada upload tersebut (dan gunakan

Apakah upload sekali saja tanpa flag yang tepat?

Bagian berjudul “Apakah upload sekali saja tanpa flag yang tepat?”

Iya. Cara tersebut adalah cara yang didukung untuk meningkatkan dasar native channel setelah Anda mengirimkan binary baru. Tetapkan flag pada setiap upload OTA lainnya agar pergeseran native tidak sengaja masih gagal CI.

Apakah saya harus mengunggah ke dev pertama, kemudian production?

Bab yang berjudul “Apakah saya harus mengunggah ke dev pertama, kemudian produksi?”

Ya, jika itu sesuai dengan proses Anda. Jalankan aturan yang sama per saluran: cek kompatibilitas melawan apa yang sedang hidup di saluran target. Promosikan atau unggah ulang ke production hanya setelah dev terlihat baik, dan gunakan unggahan native-baseline (tidak --fail-on-incompatible) pada setiap saluran yang memerlukan paket native baru direkam.

Apa jika saya mengunggah bundle native baru dengan flag masih aktif?

Bab yang berjudul “Apa jika saya mengunggah bundle native baru dengan flag masih aktif?”

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).

Mana bendera yang ditempatkan pada mana pekerjaan?

Judul Bagian “Mana bendera yang ditempatkan pada mana pekerjaan?”
RuteKetikaUnggah bendera
OTAJS-saja; paket native sesuai dengan saluran--fail-on-incompatible + --auto-min-update-version (diperlukan jika saluran aktif) metadata)
Dasar nativeBinari native baru + bundel JS yang sesuaiTidak --fail-on-incompatible; jaga --auto-min-update-version

Referensi untuk unggah, kompatibilitas, releaseType, dan flag terkait.

Judul Bagian: “Teruskan dari Native + OTA Channel Workflow””

Jika Anda menggunakan Native + OTA Channel Workflow untuk menjaga pembaruan hidup aman di rilis native, hubungkannya dengan Native Compatibility untuk aturan perbandingan paket, Auto OTA atau Native untuk cabang CI, Versi Targeting context: Halaman/area: Halaman pemasaran solusi Capgo. Peran: Judul bagian atau halaman. Dilihat di: halaman solusi/versi-targeting.astro. Pesan kunci `solutions_version_targeting_title` (Judul Versi Targeting Solusi). | Halaman/area: Halaman pemasaran solusi Capgo. Peran: Label UI singkat atau item navigasi. Dilihat di: halaman solusi/versi-targeting.astro. Pesan kunci `solutions_version_targeting` (Versi Targeting Solusi). Capgo CLI bundle reference __CAPGO_KEEP_0__ __CAPGO_KEEP_1__ referensi paket