Langsung ke konten

Tes Native Build Tanpa Live Updates

Saat menguji binary native baru, pastikan aplikasi dimulai dari web assets yang ada di dalam binary tersebut—bukan dari live update yang sudah diunduh sebelumnya. Gunakan salah satu atau kombinasi langkah pencegahan di bawah ini.

Atur CapacitorUpdater.version dari versi yang digunakan pada rilis native Anda, dan naikkan setiap kali ada native build baru. Native baseline yang lebih baru membuat binary yang terinstal berbeda dari bundle lama dan, dengan pengaturan default, resetWhenUpdate: trueakan menghapus bundle yang 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 dibangun dengan version: '1.4.1' memiliki native baseline yang lebih tinggi daripada 1.4.0 bundle yang sudah ada. Jangan gunakan kembali versi native yang sama saat Anda perlu memverifikasi aset yang dibundel.

2. Blokir Update Emulator dan Development-Build di Konsol

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

Buka aplikasi Anda di konsol Capgo, lalu buka Channel, pilih channel yang digunakan oleh build tersebut, dan buka Informasi tab. Matikan off keduanya Izinkan development build dan Izinkan emulator.

Tab informasi channel Capgo yang menampilkan pengaturan Allow development build dan Allow Emulators
Kontrol ini ada di tab informasi channel. Nonaktifkan kedua pengaturan yang disorot agar development build dan emulator tetap menggunakan web assets bawaan bundle.

Kebijakan channel ini hanya memblokir pengiriman update untuk tipe build yang dipilih. Perangkat fisik dengan tanda tangan Production tetap bisa menerima update sesuai pengaturan channel lainnya.

3. Aktifkan Live Updates Hanya pada Native CI Builds

Bagian berjudul “3. Aktifkan Live Updates Hanya pada Native CI Builds”

Untuk tim yang ingin build lokal, emulator, dan developer aman secara default, buat live updates menjadi opt-in melalui environment variable. Konfigurasi di bawah ini menonaktifkan pengecekan update kecuali CAPGO_LIVE_UPDATES sama persis dengan 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;

Atur variabel hanya pada langkah CI yang melakukan sinkronisasi dan build native app:

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

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

  1. Tingkatkan versi yang digunakan oleh CapacitorUpdater.version untuk binary native.
  2. Nonaktifkan Izinkan development build dan Izinkan emulator pada 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 updates.