Lebih lanjut ke konten

Lanjutkan dari Alur Kerja Native + OTA Channel

Konfigurasi umum Capgo menggunakan saluran dev saluran dan saluran saluran saluran. CI mengunggah setiap bundle OTA ke devlalu 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.

Ini halaman yang menjawab pertanyaan lanjutan: apakah Anda harus melakukan apa ketika Anda secara sengaja membutuhkan bundle yang tidak kompatibel dengan paket native saluran saat ini?

Jika Anda membutuhkan latar belakang mengapa Capgo membandingkan paket native, mulai dengan Pengkompatibilitas Native. Untuk cabang CI 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 dev dan production context: Halaman/area: Situs web pemasaran Capgo. Peran: Label UI singkat atau item navigasi. Dilihat di: halaman trust.astro. Kunci pesan `dan` (Dan).

saluran sudah ada. Buatlah terlebih dahulu jika perlu:
npx @capgo/cli@latest channel add production com.example.app
npx @capgo/cli@latest channel add dev com.example.app
Salin ke clipboardSaluranSiapa yang mendapatkannya
devUpload biasaBangunan internal / QA (kualitas perangkat lunak) yang biasa digunakan dalam pengembangan perangkat lunak native
productionPengguna TokoHanya dipromosikan atau diunggah ketika siap rilis

--fail-on-incompatible adalah 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, upload keluar dengan kode keluar dan tidak ada yang dikirim.

Pengguna Toko setiap hari (tahanlah flag)

Bab berjudul “Pengguna Toko setiap hari (tahanlah flag)”

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 is wajib pada setiap unggahan setelah saluran menggunakan strategi (direkomendasikan di bawah). Jika saluran belum menggunakan strategi ini, Anda dapat mengabaikan metadata hingga Anda beralih. metadata Opsi pintu masuk CI sebelum unggahan: --auto-min-update-version Tampilan terminal

Salin ke papan klip

Pergeseran native sengaja (hilangkan flag sekali saja)
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)

tidak dapat Pergeseran native sengaja (hilangkan flag sekali saja) 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. Kirimlah versi binary 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 binary lama tidak akan menerima bundle baru sampai mereka menginstal aplikasi baru. --auto-min-update-version Setelah itu, unggahlah __CAPGO_KEEP_0__ dasar metadata Put __CAPGO_KEEP_0__
  4. Put __CAPGO_KEEP_0__ --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 baseline sengaja. Setelah perubahan ini, setiap unggahan ke saluran harus termasuk --auto-min-update-version atau --min-update-version.

  2. Kirimkan binary native

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

  3. Unggah baseline OTA yang sesuai (tidak) --fail-on-incompatible)

    Jendela terminal
    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 periksa menggunakan dasar tersebut.

  4. Mulai kembali unggah 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

Bahwa saya dapat menjaga

dan masih mengirimkan paket asli?

Bahwa saya dapat menjaga --fail-on-incompatible dan masih mengirimkan paket asli? --fail-on-incompatible Tidak. Jika paket asli upload berbeda dengan paket saluran hidup, flag gagal perintah dengan sengaja. Untuk peningkatan asli sengaja, lewati flag pada upload itu (dan gunakan

Apakah upload satu kali tanpa flag yang tepat?

Pertanyaan Umum --auto-min-update-version Bahwa saya dapat menjaga

Ya. Itu adalah cara yang didukung untuk meningkatkan dasar asli saluran setelah Anda mengirimkan biner baru. Jaga flag pada setiap upload OTA lainnya agar pergeseran asli tidak sengaja gagal CI.

Apakah saya harus mengunggah ke dev terlebih dahulu, kemudian produksi? dev Pertama, kemudian production?

Judul bagian “Apakah saya harus mengunggah ke dev terlebih dahulu, kemudian produksi?”

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 native-baseline (tidak --fail-on-incompatible) pada setiap saluran yang memerlukan paket native baru direkam.

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

Judul bagian “Apa jika saya mengunggah paket 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?”
JalanKetikaUnggah bendera
OTAJS-saja; paket native sesuai dengan saluran--fail-on-incompatible + --auto-min-update-version (diperlukan jika saluran aktif) metadata)
Dasar nativeBinari native baru + matching bundle JSTidak --fail-on-incompatible; jaga --auto-min-update-version

Jika Anda menggunakan Native + OTA Channel Workflow untuk menjaga pembaruan hidup aman di sepanjang 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/target-versi.astro. Kunci pesan `solutions_version_targeting_title` (Judul Target Versi Solusi). | Halaman/area: Halaman pemasaran solusi Capgo. Peran: Label UI singkat atau item navigasi. Dilihat di: halaman solusi/target-versi.astro. Kunci pesan `solutions_version_targeting` (Target Versi Solusi). Capgo CLI bundle reference __CAPGO_KEEP_0__ __CAPGO_KEEP_1__ referensi paket