Langsung ke konten

Uji Native Build Tanpa Live Updates

Saat menguji binary native baru, pastikan ia dimulai dari web assets yang di-bundle di binary tersebut—bukan dari live update yang sudah diunduh sebelumnya. Gunakan salah satu atau kombinasikan pengaman berikut.

Atur CapacitorUpdater.version dari versi yang digunakan untuk rilis native Anda, dan naikkan untuk setiap native build. Native baseline yang lebih baru membuat binary yang terinstal berbeda dari bundle lama dan, dengan default, resetWhenUpdate: true, menghapus bundle yang sudah diunduh saat aplikasi native yang lebih baru diinstal.

import type { CapacitorConfig } from '@capacitor/cli';
import pkg from './package.json';
const config: CapacitorConfig = {
plugins: {
CapacitorUpdater: {
// Keep this aligned with, and increase it for, every native build.
version: pkg.version,
autoUpdate: 'atBackground',
},
},
};
export default config;

Sebagai contoh, binary yang di-build dengan version: '1.4.1' memiliki native baseline yang lebih tinggi daripada yang sudah ada 1.4.0 bundle. Jangan pakai ulang versi native saat Anda perlu memverifikasi aset bundle.

2. Blokir Update Emulator dan Development-Build di Console

Bagian berjudul “2. Blokir Update Emulator dan Development Build di Console”

Buka aplikasi Anda di console Capgo, lalu buka Channel, pilih channel yang digunakan oleh build, dan buka Informasi tab. Matikan off kedua Izinkan development build dan Izinkan Emulator.

Capgo tab Information channel yang menampilkan pengaturan Allow development build dan Allow Emulators
Kontrol ini ada di tab Information channel. Nonaktifkan kedua pengaturan yang disorot agar development build dan emulator tetap memakai web assets yang di-bundle.

Kebijakan channel ini hanya memblokir pengiriman update untuk tipe build yang dipilih. Perangkat fisik yang di-sign Production tetap bisa menerima update sesuai pengaturan channel lainnya.

3. Aktifkan Live Updates Hanya di Native CI Build

Bagian berjudul “3. Aktifkan Live Updates Hanya di Native CI Build”

Untuk tim yang ingin build lokal, emulator, dan developer aman secara default, buat live updates jadi opt-in lewat environment variable. Konfigurasi di bawah menonaktifkan pengecekan update kecuali CAPGO_LIVE_UPDATES tepat true:

import type { CapacitorConfig } from '@capacitor/cli';
import pkg from './package.json';
const liveUpdatesEnabled = process.env.CAPGO_LIVE_UPDATES === 'true';
const config: CapacitorConfig = {
appId: 'com.example.app',
appName: 'Example App',
plugins: {
CapacitorUpdater: {
// Bump package.json for every native build.
version: pkg.version,
// Local builds are off; native CI explicitly enables live updates.
autoUpdate: liveUpdatesEnabled ? 'atBackground' : false,
},
},
};
export default config;

Set variabel hanya di langkah CI yang menyinkronkan dan membangun aplikasi native:

- run: CAPGO_LIVE_UPDATES=true npx cap sync
- run: ./build-native-app.sh

Jalankan npx cap sync setelah mengatur variabel karena Capacitor menyalin konfigurasi ini ke proyek native saat sync. Tanpa variabel, build lokal dan build emulator tetap autoUpdate: false dan tidak memeriksa Live Update.

  1. Tingkatkan versi yang digunakan oleh CapacitorUpdater.version untuk biner native.
  2. Nonaktifkan Izinkan development build dan Izinkan Emulator di channel saat menguji tipe build tersebut.
  3. Build secara lokal tanpa CAPGO_LIVE_UPDATES.
  4. Atur CAPGO_LIVE_UPDATES=true hanya sebelum npx cap sync di job CI native yang seharusnya menerima live update.