跳过内容

测试原生构建无实时更新

在测试新本机二进制文件时,请确保它从二进制文件中包含的 Web 资产开始,而不是从之前下载的 live update。使用以下安全措施之一或结合使用。

1. Native 基线版本升级

标题:1. Native 基线版本升级

设置 CapacitorUpdater.version 从用于本机发布的版本开始,并为每个本机构建增加版本。新版本的本机基线使安装的二进制文件与旧的捆绑包不同,且在默认情况下 resetWhenUpdate: true,安装新版原生应用时会删除下载的包。

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;

例如,使用 version: '1.4.1' 的二进制文件具有更高的原生基线值,而现有的 1.4.0 包不应重复使用原生版本以验证打包资产。

2. 在控制台中阻止模拟器和开发构建更新

标题:2. 在控制台中阻止模拟器和开发构建更新

在Capgo控制台中打开您的应用,转到 频道context Information ,选择构建使用的频道,打开 off both 允许开发构建 和 允许模拟器.

Capgo
这些控件位于频道信息标签中。禁用两个突出显示的设置以保留其打包的Web资产中的开发构建和模拟器。

本频道策略仅阻止更新传递给所选的构建类型。已签名的物理设备仍可以根据频道的其他设置接收更新。

3.仅在本机CI构建中启用实时更新

3. 只在原生 CI 构建中启用实时更新

对于希望本地、模拟器和开发者构建默认安全的团队,通过环境变量使实时更新成为可选项。以下配置禁用更新检查,除非 CAPGO_LIVE_UPDATES 是精确的 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;

仅在同步和构建原生应用的 CI 步骤中设置变量:

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

运行 npx cap sync 在设置变量之后,因为Capacitor会将此配置复制到本地项目中进行同步。没有该变量,局域网构建和模拟器构建会 autoUpdate: false 不检查实时更新。

因为 __CAPGO_KEEP_0__ 将此配置复制到原生项目中进行同步。没有该变量,

本地构建和模拟器构建将
  1. 并不会检查实时更新。 CapacitorUpdater.version 用于本机二进制文件。
  2. 禁用 允许开发构建 并且 允许模拟器 在测试这些构建类型时,在频道上
  3. 在本地构建 CAPGO_LIVE_UPDATES.
  4. 设置 CAPGO_LIVE_UPDATES=true 仅在 npx cap sync 在本机CI作业中
相关