命令
复制一个包含安装步骤和本插件 Markdown 指南的 AI 配置提示。
本页面是一份引导性的概述。使用当前命令参考获取准确的标志: 应用, 捆绑, 频道, 和 构建.
所有命令应在您的应用程序文件夹中运行,确保capacitor项目已正确启动。
Init
“初始化”npx @capgo/cli@latest init [apikey]
该方法旨在一步一步地引导您入门。
它将您的应用程序添加到Capgo中。它将code添加到您的应用程序中,以验证更新。同样,它将构建您的应用程序。另外,它将上传您的应用程序到Capgo中。最后,它将帮助您检查更新是否有效。
npx @capgo/cli login [apikey]
该方法旨在记住您的 apikey 为您。
您可以选择提供:
--local 这将在本地存储您的 API密钥 在本地存储API密钥并将其添加到.gitignore文件中。
npx @capgo/cli doctor
用于检查您是否已更新到Capgo包的最新版本的命令。
此命令还将有助于bug报告。
应用
App添加
添加npx @capgo/cli app add [appId]
[appId] 添加 com.test.app your app ID 的格式 is explained.
here
💡 如果不提供,所有选项都会在您的配置中被猜测。
--icon [/path/to/my/icon]在Capgo web 应用中显示自定义图标。--name [test]为您的 web 应用显示自定义图标。--apikey [key]API 键用于链接到您的账户。--retention [retention]__CAPGO_KEEP_0__ key 链接到您的帐户。
示例 capacitor.config.json appId 和 AppName 的图标将在资源文件夹中猜测
{ "appId": "ee.forgr.capacitor_go", "appName": "Capgo", "webDir": "dist"}npx @capgo/cli app set [appId]
[appId] 可选项: here.
在列表中显示自定义名称
--icon [/path/to/my/icon]在Capgo web 应用中显示自定义图标。--name [test]将包元数据(链接和注释)暴露给插件--retention [retention]Section titled “Set”--expose-metadata [true|false]is your app ID, the format is explained--preview或--no-preview启用或禁用捆绑包和频道预览二维码。--allow-device-custom-id或--no-allow-device-custom-id控制自定义设备ID。--block-provider-infra-requests或--no-block-provider-infra-requests控制阻止已知Google和Apple数据中心请求。--build-timeout-minutes [5-360]设置原生构建超时。--ios-store-url [url]或--android-store-url [url]设置商店URL。--default-upload-channel [channel]设置默认上传频道。--default-download-channel [channel]设置默认下载频道,或者--disable-download-channels使所有下载频道非公开。--apikey [key]API key連接到您的帐户。
npx @capgo/cli app list [appId]
[appId] 您的应用ID的格式 com.test.app 格式说明 这里.
您可以选择提供:
--apikey [key]API key連接到您的帐户。
npx @capgo/cli app delete [appId]
[appId] 您的应用ID的格式 com.test.app 格式说明 这里.
如果需要,您可以提供:
--apikey [key]API 键用于链接到您的帐户。--bundle带有版本号的命令只会删除该版本。
调试
调试部分npx @capgo/cli app debug [appId]
[appId] 您的应用 ID 格式为: com.test.app 具体说明请参见 这里.
如果需要,您可以提供:
--apikey [key]API 键用于链接到您的帐户。--device您要调试的具体设备
设置
设置标题:设置npx @capgo/cli app setting [path]
编辑Capacitor配置。
[path] 路径:您要更改的设置路径。例如,要更改 appId,提供 appId.
如果您希望禁用自动更新,请在 capacitor-updater,提供 plugins.CapacitorUpdater.autoUpdate 中 --string off.
您必须提供 --string 或 --bool!
选项:
--string <string>- 将设置设置为字符串--bool <true | false>- 设置为布尔值
包
标题:包上传
标题:上传npx @capgo/cli bundle upload [appId]
[appId] 是您的应用程序ID,格式解释在这里 这里.
您可以选择提供:
--apikey <apikey>API 键以链接到您的帐户。--path <path>要上传的文件夹路径。--channel <channel>要链接的频道。--external <url>以外部 URL 链接而不是上传到 Capgo 云。--iv-session-key <key>设置 IV 和会话密钥(bundle URL 外部)。--s3-endpoint <s3Endpoint>S3 端点的 URL。 不支持 delta 上传或外部选项。--s3-region <region>S3 存储桶的区域。--s3-apikey <apikey>S3 端点的API密钥。--s3-apisecret <apisecret>S3 端点的API密钥。--s3-bucket-name <bucketName>S3 存储桶的名称。--s3-port <port>S3 端点的端口。--no-s3-ssl禁用 S3 上传的 SSL。--key <key>自定义路径(v1 系统)公共签名密钥。--key-data <keyData>公共签名密钥(v1 系统)。--key-v2 <key>自定义路径(v2 系统)私有签名密钥。--key-data-v2 <keyData>私有签名密钥(v2 系统)。--bundle-url打印 bundle URL 到标准输出。--no-key忽略签名密钥并发送清晰的更新。--no-code-check忽略检查源 code 和索引是否在根目录中存在的 notifyAppReady() 是否被调用。--display-iv-session在控制台显示用于加密更新的 IV 和会话密钥。--bundle <bundle>要上传的 bundle 的版本号。--auto-bump [level]从渠道关联的 bundle 自动递增,否则使用最新的远程应用版本。级别:major,minor(默认)patch(别名)fix),metadata,或ai(Workers AI 将本地文件与之前的 Capgo/渠道 delta 清单进行比较,推断级别,并记录一个短的原因;跳过 AI 并增加patch如果没有之前的 Capgo 版本,则增加直到找到一个空闲的名称(删除的名称保持占用)。不能与--bundle.--min-update-version <minUpdateVersion>更新到此版本所需的最小版本。仅在设置了渠道中的元数据禁用自动更新时使用。--auto-min-update-version根据本机包设置最小更新版本。--ignore-metadata-check忽略上传时的元数据(node_modules)检查。--ignore-checksum-check忽略上传时的校验和检查。--timeout <timeout>上传过程超时时间(以秒为单位)。--delta上传Delta(清单)文件,同时上传完整包。--delta-only仅上传Delta(清单)更新,跳过完整包。--no-delta禁用Delta(清单)上传(如果启用了即时应用模式,但您仍想上传完整包)。autoUpdate使用TUS协议上传包。--tus使用多部分协议上传数据到S3(已弃用,请使用TUS代替)。--multipart用于上传外部包的加密校验和(签名)。--encrypted-checksum <encryptedChecksum>用于monorepos的package.json路径。--package-json <packageJson>__CAPGO_KEEP_0__--auto-set-bundle设置 capacitor.config.json 中的包。--node-modules <nodeModules>node_modules 的路径列表。对于多包项目(以逗号分隔,例如:../../node_modules,./node_modules)很有用。
⭐️ 外部选项帮助解锁 2 个案例:企业级别的隐私保护,避免将 code 发送到第三方,并且应用程序大小超过 200 MB。通过此设置,Capgo 只会存储 zip 链接并将链接发送给所有应用程序。
👀 Capgo 云从未查看链接中的内容(对于外部选项),或在 code 中存储的内容。
🔑 通过使用加密,您可以添加第二层安全性,Capgo 将无法查看或修改任何内容,变得“无需信任”。
示例 package.json 用于版本
{ "version": "1.0.2"}⛔ 版本应大于“0.0.0”。
💡 不要忘记每次发送时更新版本号,版本号不能被覆盖或重复使用,否则会导致安全问题。
npx @capgo/cli bundle list [appId]
[appId] 您的应用 ID 格式为 com.test.app 详细说明请参见 此处.
如果需要,您可以提供:
--apikey [key]API 键用于与您的帐户关联。
删除
标题为“删除”npx @capgo/cli bundle delete [appId]
[appId] 您的应用 ID 格式为 com.test.app 详细说明请参见 此处.
如果需要,您可以提供:
--apikey [key]API 键用于与您的帐户关联。--bundle使用版本号将只删除此版本。
Cleanup
标题:Cleanup在 SemVer 范围内为主要版本删除到 Cloud
npx @capgo/cli bundle cleanup [appId] --bundle=[majorVersion] --keep=[numberToKeep]
[appId] 您的应用 ID 格式为 com.test.app 如需了解更多,请参阅 这里.
您可以选择提供:
--apikey [key]API 键以链接到您的帐户。--bundle [majorVersion]您可以选择删除的版本号,删除前面的包,保留最后一个 +numberToKeep.--keep [numberToKeep]您可以选择保留的包数(默认为 4)。
例如:如果您有 10 个版本,从 10.0.1 到 10.0.11,如果您使用 npx @capgo/cli cleanup [appId] --bundle=10.0.0 将会移除 10.0.1 到 10.0.6。10.0.7 到 10.0.11 将被保留。
如果您总共有 20 个版本,并且没有提供像这样的包号: npx @capgo/cli cleanup [appId] --keep=2 将移除 18 个版本,保留最后 2 个。
此命令将要求确认,并显示将保留和移除的表格。
加密
加密部分警告: 此命令已被弃用,将在下一个重大版本中移除。请使用新加密系统。
npx @capgo/cli bundle encrypt [path/to/zip]
此命令用于在使用外部源存储您的 code 或用于测试目的时。
如果需要,请提供:
--key [/path/to/my/private_key] 您的私钥路径。
--key-data [privateKey] 如果需要使用内联方式,请提供私钥数据。
此命令将打印您的 ivSessionKeyy 并生成一个加密的 zip 文件,用于与上传命令或解密命令一起使用。
加密 V2
标题:Encrypt V2npx @capgo/cli bundle encrypt [path/to/zip] [checksum]
此命令用于在外部源中存储您的 code 或测试目的时。 校验和是由 —key-v2 生成的包的 sha256 值,用于验证文件解密后是否完整。 校验和将使用私钥加密并与包一起发送。 在加密 v2 中,校验和升级为包的“签名”。
如果需要,请提供:
--key [/path/to/my/private_key] 您的私钥路径。
--key-data [privateKey] 如果需要使用内联方式,请提供私钥数据。
--json 以 JSON 格式输出信息。
此命令将打印您的 ivSessionKeyy 并生成一个加密的 zip 文件,用于与上传命令或解密命令一起使用。
解密
解密npx @capgo/cli bundle decrypt [path/to/zip] [ivSessionKey]
您可以选择提供:
--key [/path/to/my/private_key] 您的私钥路径。
--key-data [privateKey] 如果您想使用内联方式,则可以提供私钥数据。这个命令主要用于测试目的,会解密zip并在控制台打印base64解密的会话密钥。
解密 V2
解密 V2npx @capgo/cli bundle decryptV2 [path/to/zip] [ivSessionKey]
您可以选择提供:
--key [/path/to/my/private_key] 您的私钥路径。
--key-data [privateKey] 如果您想使用内联方式,则可以提供私钥数据。这个命令主要用于测试目的,会解密zip并在控制台打印base64解密的会话密钥。
--checksum [checksum] 文件的校验和,解密后会校验校验和。
npx @capgo/cli bundle zip [appId]
[appId] 是您的应用程序ID,格式解释在这里 这里.
可选,您可以给:
--path [/path/to/my/bundle]上传特定文件夹--bundle [1.0.0]设置文件名中的捆绑包版本号--name [myapp]覆盖文件名--json以 JSON 格式输出信息--no-code-check忽略 code 检查并发送捆绑包--key-v2使用新加密系统。由于新加密系统使用更好的校验和来验证文件的完整性,因此这是必需的
npx @capgo/cli bundle compatibility [appId] -c [channelName]
[appId] 是您的应用程序ID,格式解释在这里 这里.
[channelName] 要检查的频道名称。
您可以选择提供:
--apikey [key]API--text使用文本代替表情符号--channel [channel]要检查兼容性的频道。--package-json <packageJson>package.json的路径。对于多包应用程序很有用--node-modules <nodeModules>node_modules的路径列表。对于多包应用程序很有用(逗号分隔,例如:../../node_modules,./node_modules)
频道
频道添加
添加npx @capgo/cli channel add [channelName] [appId]
[channelName] 输入您新频道的名称,例如 production 或 beta. [appId] 您的应用ID的格式 com.test.app 如上所述 查看.
npx @capgo/cli channel delete [channelName] [appId]
[channelName] 删除 [appId] 您的应用ID的格式 com.test.app 如上所述 查看.
列表
标题:列表npx @capgo/cli channel list [appId]
[appId] 您的应用 ID 格式 com.test.app 如图所示 这里.
您可以选择提供:
--apikey [key]API
npx @capgo/cli channel set [channelName] [appId]
[appId] 您要配置的频道名称,例如 这里.
[channelName] __CAPGO_KEEP_0__ production 或 beta.
您可以选择
--bundle [1.2.3]将您的应用程序包(bundle)已发送到云端,链接到一个频道(channel)--latest获取包(bundle)版本号package.json:version不能与--bundle.--state [ normal | default ]设置频道(channel)状态,可以normal或default一个频道需要default.--downgrade允许频道(channel)向设备发送降级版本--no-downgrade不允许频道(channel)向设备发送降级版本--upgrade允许频道(channel)向设备发送升级(重大)版本--no-upgrade不允许频道(channel)向设备发送升级(重大)版本--ios允许频道向 iOS 设备发送版本信息。--no-ios禁止频道向 iOS 设备发送版本信息。--android允许频道向 Android 设备发送版本信息。--no-android禁止频道向 Android 设备发送版本信息。--self-assign允许设备自行分配到此频道。--no-self-assign禁止设备自行分配到此频道。--disable-auto-update STRATEGY禁用此频道的自动更新策略。可能的选项包括:主版本、次版本、修订版本、元数据、无。--apikey [key]API 用于连接您的帐户。
禁用更新策略
禁用更新策略禁用更新策略
Capgo cannot update native code thus an update from a version with the old native code to a version with the updated native code should not be possible.
There are a couple of ways to achieve that.
首先, major 策略。它防止从本地基线更新 0.0.0 ->目标包 1.0.0。主要是突出显示的数字(1。0.0和 0.0.0).
第二是 minor 策略。它防止更新,当目标包的主要或次要版本与设备本地基线不同时,例如 0.0.0 -> 1.1.0 或 1.1.0 -> 1.2.0.
第三, patch 策略。它被添加到capgo中作为一个非常严格的模式。除非您完全了解它的工作原理,否则不建议使用它。
为了接受更新,以下条件必须满足:
- 目标包和
version_build - 目标包和
version_build - 修补程序在目标捆绑包和
version_build - 仅版本后缀可能不同,例如预发布(
-beta.2)或构建元数据(+build.2)
以下是更新允许或拒绝的场景示例
- 1.0.0-β.1 -> 1.0.0-β.2 允许
- 1.0.0+构建.1 -> 1.0.0+构建.2 允许
- 1.0.0 -> 1.0.1 被阻止
- 1.0.0 -> 1.1.0 被阻止
- 1.0.0 -> 2.0.0 被阻止
策略比较使用发送的本地基线 version_build,而不是下载的当前捆绑包发送的 version_name.
最后,最复杂的策略是 metadata 策略。
首先你需要知道,启用后初始更新 将 会
失败,因为渠道缺少所需的元数据。
找不到元数据
如果你看到类似这样的消息,你就知道你需要去当前的捆绑包中为失败的渠道设置元数据。 misconfigured column
配置错误的表格 Bundle number然后去失败的渠道并点击
填好后 Minimal update version 填写的内容应该是 语义版本.
如果您传入的值不是语义版本号,您将会收到错误,但如果一切顺利,您应该会看到类似这样的内容:
现在,您很可能不想每次更新时都手动设置这些数据。幸运的是,CLI 将防止您在没有此元数据的情况下发送更新
使用选项上传包时,需要正确传入 metadata 选项 --min-update-version 有效的语义版本号 设置最小版本号Capgo CLI 命令
CLI命令 --min-update-version 兼容性并非唯一途径。\n此外,还存在 --auto-min-update-version这里是它的工作原理。
首先,它会检查当前上传到频道的版本。它会检查与当前版本的兼容性。 bundle compatibility 命令将会被执行。
第二,若新版本是100%兼容的,它将重用原有的命令。 min_update_version 从最新版本的频道中获取。如果没有,则设置 min_update_version 上传新版本的包数量。
您总是会收到有关其状态的信息 min_update_version 使用此选项时,它会像这样显示。
如果新版本不兼容,应该显示如下内容
端到端加密(无信任)
标题:端到端加密(无信任)Capgo 支持端到端加密,这意味着您的捆绑包(code)在发送到云端之前被加密,并在设备上解密。为此,您需要生成一个RSA密钥对,您可以使用以下命令生成它。
加密系统是RSA和AES的组合,RSA密钥用于加密AES密钥,AES密钥用于加密文件。
请参阅下文获取更多关于加密系统的信息。
加密方案
为您的应用创建密钥
标题:为您的应用创建密钥npx @capgo/cli key create
如果需要,您可以提供: --force 覆盖现有密钥。该命令将为您创建一个密钥对,并要求您将私钥保存在安全的地方。建议您不要将私钥提交到 Git,并且不要与任何人共享。
本地测试后,删除密钥并在 CI 步骤中添加它。
key save
保存密钥在应用配置中
保存密钥在应用配置中npx @capgo/cli key save
可选项:
--key [/path/to/my/public_key] 提供您的公钥文件路径。
--key-data [publicKey] 提供公钥数据(如果您想使用内联)。如果您遵循了建议并没有在应用配置中提交密钥,这个命令很有用。
CI 集成
CI 集成为了自动化您的工作,我建议您让 GitHub 动作负责将密钥推送到我们的服务器。
我们的示例应用
Section titled “我们的示例应用”请记住配置 CI 环境变量并使用您的 API 密钥
继续使用命令
Section titled “继续使用命令”如果您正在使用 命令 来规划仪表板和 API 操作,连接它与 API 概览 了解 API 概览中的实现细节 介绍 了解介绍中的实现细节 API 键 为 API 键 的实现细节 设备 为设备的实现细节 包 为包的实现细节