跳过内容

相关

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

1. 增加本机基准版本

标题:1. 增加本机基准版本

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

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控制台中打开您的应用程序,转到 频道,选择构建使用的频道,然后打开 信息 关闭 2. Block Emulator and Development-Build Updates in the Console both 允许开发构建允许模拟器.

Capgo
频道信息标签显示允许开发构建和允许模拟器设置

截图显示了设置的位置;其高亮的开关已启用。将两个开关都关闭以便频道不向开发构建或模拟器传递实时更新。

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

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

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

  1. 增加用于原生二进制文件的版本号。 CapacitorUpdater.version for the native binary.
  2. 禁用 允许开发构建允许模拟器 在测试这些构建类型时,禁用该频道。
  3. 在本地构建 CAPGO_LIVE_UPDATES.
  4. 设置 CAPGO_LIVE_UPDATES=true 仅在 npx cap sync 在本地 CI 任务中设置,应接收实时更新。