Zum Inhalt springen

Native Builds ohne Live Updates testen

Stelle beim Testen einer neuen nativen Binärdatei sicher, dass sie mit den in dieser Binärdatei gebündelten Web-Assets startet – nicht mit einem zuvor heruntergeladenen live update. Nutze eine der folgenden Schutzmaßnahmen oder kombiniere sie.

Setzen Sie CapacitorUpdater.version von der Version, die für dein natives Release verwendet wird, und erhöhe sie bei jedem Native Build. Eine neuere native Baseline macht die installierte Binärdatei von älteren Bundles unterscheidbar und mit der Standardeinstellung resetWhenUpdate: true, entfernt heruntergeladene Bundles, sobald die neuere native App installiert wird.

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;

Ein Beispiel: Eine Binärdatei, die mit version: '1.4.1' hat eine höhere native Baseline als ein bestehendes 1.4.0 bundle. Verwende keine native Version erneut, wenn du die gebündelten Assets verifizieren musst.

Öffne deine App in der Capgo Console und gehe zu Kanäle, wähle den für den Build verwendeten Channel aus und öffne den Informationen Tab. Schalte aus beide Development Build erlauben und Emulatoren erlauben.

Capgo-Kanal: Reiter „Informationen“ mit den Einstellungen „Entwickler-Builds erlauben“ und „Emulatoren erlauben“
Diese Optionen befinden sich im Reiter „Informationen“ des Kanals. Deaktiviere beide markierten Einstellungen, damit Entwickler-Builds und Emulatoren ihre gebündelten Web-Assets verwenden.

Diese Kanalrichtlinie blockiert die Update-Auslieferung nur für die ausgewählten Build-Typen. Physische Geräte mit Produktions-Signatur können weiterhin Updates gemäß den anderen Kanaleinstellungen erhalten.

Für Teams, die lokale, Emulator- und Entwickler-Builds standardmäßig sicher halten möchten, mache Live Updates über eine Umgebungsvariable opt-in. Die folgende Konfiguration deaktiviert Update-Checks, es sei denn, CAPGO_LIVE_UPDATES ist exakt 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;

Setzen Sie die Variable nur im CI-Schritt, der die native App synchronisiert und baut:

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

Ausführen npx cap sync nachdem die Variable gesetzt wurde, da Capacitor diese Konfiguration beim Sync in die nativen Projekte kopiert. Ohne die Variable behalten lokale Builds und Emulator-Builds autoUpdate: false und prüfen nicht auf Live Updates.

  1. Erhöhen Sie die Version von CapacitorUpdater.version für das native Binary.
  2. Deaktivieren Development Build erlauben und Emulatoren erlauben auf dem Channel beim Testen dieser Build-Typen.
  3. Lokal bauen ohne CAPGO_LIVE_UPDATES.
  4. Setzen Sie CAPGO_LIVE_UPDATES=true nur vor npx cap sync im nativen CI-Job, der Live Updates erhalten soll.