Zum Inhalt springen

Testen Sie Native-Builds ohne Live-Updates

Wenn Sie ein neues natives Binärtesten, stellen Sie sicher, dass es von den im Binärdatei eingebundenen Web-Assets startet – nicht von einem zuvor heruntergeladenen Live-Update. Verwenden Sie eine oder kombinieren Sie die folgenden Sicherheitsvorkehrungen.

Setzen CapacitorUpdater.version vom für Ihre native Veröffentlichung verwendeten Version und erhöhen Sie sie für jeden native Build. Eine neuerere native Basis macht das installierte Binärdatei von älteren Bundeln unterscheidbar und entfernt mit der Standard- resetWhenUpdate: trueheruntergeladene Bundles, wenn die neueren 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 ist ein Binärdatei, die mit version: '1.4.1' hat eine höhere native Basis als eine bestehende 1.4.0 Paket. Verwenden Sie keine native Version, wenn Sie die gebündelten Assets überprüfen müssen.

2. Blockieren Sie Emulator- und Entwicklungsbau-Updates im Konsole

Abschnitt mit dem Titel “2. Blockieren Sie Emulator- und Entwicklungsbau-Updates im Konsole”

Öffnen Sie Ihre App im Capgo-Konsole, gehen Sie zu Kanäle, wählen Sie den von der Build verwendeten Kanal und öffnen Sie die Informationen Registerkarte. Schalten Sie aus beide Entwicklungsbau erlauben und Emulatoren erlauben.

Capgo Kanalinformationen: Die Einstellungen für Entwicklungsbau und Emulatoren
Diese Einstellungen befinden sich im Kanalinformationen-Menü. Deaktivieren Sie beide hervorgehobenen Einstellungen, um Entwicklungsbau und Emulatoren auf ihren verbundenen Web-Assets zu belassen.

Diese Kanalrichtlinie blockiert die Aktualisierungsentwicklung nur für die ausgewählten Bauarten. Produktionssignierte physische Geräte können nach wie vor Updates entsprechend den anderen Einstellungen des Kanals erhalten.

Für Teams, die möchten, dass lokale, Emulator- und Entwicklerbuilds standardmäßig sicher sind, machen Sie Live-Updates über eine Umgebungsvariable opt-in. CAPGO_LIVE_UPDATES ist genau 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 in dem CI-Schritt, der synchronisiert und das native App erstellt:

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

Ausführen npx cap sync nachdem die Variable gesetzt wurde, weil Capacitor diese Konfiguration in die native Projekte während der Synchronisierung kopiert. Ohne die Variable führen lokale Builds und Emulator-Builder Live-Updates nicht aus. autoUpdate: false Schnellübersicht

Abschnitt mit dem Titel „Schnellübersicht“

Erhöhen Sie die verwendete Version
  1. für das native Binärdatei. CapacitorUpdater.version Quick Checklist
  2. Deaktivieren Zulassen von Entwicklungsbuilds und Zulassen von Emulatoren wenn Sie die Buildtypen testen.
  3. Lokal ohne Build CAPGO_LIVE_UPDATES.
  4. Setzen CAPGO_LIVE_UPDATES=true nur vor npx cap sync in der nativen CI-Job, die live aktualisierte Updates erhalten soll.