跳过内容

命令

本页面是一个引导式概述。使用当前命令参考表格获取准确的标志: 应用, 打包, 频道, 和 构建.

使用指南

使用指南

所有命令应在您的应用程序文件夹中运行,确保capacitor项目已正确启动。

初始化

初始化

npx @capgo/cli@latest init [apikey]

此方法将逐步引导您完成流程。

它将将您的应用程序添加到Capgo中。它将为您的应用程序添加code以验证更新。同样,它将构建您的应用程序。另外,它将将您的应用程序上传到Capgo。此外,它将帮助您检查更新是否有效。

登录

登录

npx @capgo/cli login [apikey]

此方法旨在记住您的__CAPGO_KEEP_0__账户信息以便于您下次登录。 apikey __CAPGO_KEEP_0__

您可以选择提供:

--local 这将在本地存储您的 apikey 在本地存储并忽略它

医生

医生

npx @capgo/cli doctor

检查您是否已更新到 Capgo 包的命令。

此命令还将对bug报告有所帮助。

应用

应用

添加

添加

npx @capgo/cli app add [appId]

[appId] 您的应用 ID 格式 com.test.app 解释 在这里.

💡 如果未提供,则所有选项将在您的配置中猜测。

您可以选择:

  • --icon [/path/to/my/icon] 在 Capgo 网页应用中显示自定义图标。
  • --name [test] 在列表中显示自定义名称。
  • --apikey [key] API 密钥以链接到您的帐户。
  • --retention [retention] 应用程序包的保留期限(以天为单位),默认值为0,即无限。

示例 capacitor.config.json appId 和 AppName 的图标将在资源文件夹中猜测

{
"appId": "ee.forgr.capacitor_go",
"appName": "Capgo",
"webDir": "dist"
}

npx @capgo/cli app set [appId]

[appId] 这是您的应用程序 ID,格式解释在这里 可选项:.

在 __CAPGO_KEEP_0__ 网站应用中显示自定义图标

  • --icon [/path/to/my/icon] to have a custom icon display in Capgo web app.
  • --name [test] 应用程序包的保留期限(以天为单位),默认值为0,即无限。
  • --retention [retention] 应用程序包的保留期限(以天为单位),默认值为0,即无限。
  • --expose-metadata [true|false] 用于暴露捆绑包元数据(链接和注释)给插件。
  • --preview--no-preview 您可以选择Capacitor、Appflow或Capawesome作为您的应用程序的构建服务。我们可以帮助您选择最适合您的应用程序的服务。
  • --allow-device-custom-id 用于启用或禁用捆绑包和频道预览二维码。 --no-allow-device-custom-id 您可以选择Capacitor、Appflow或Capawesome作为您的应用程序的构建服务。我们可以帮助您选择最适合您的应用程序的服务。
  • --block-provider-infra-requests 用于控制自定义设备ID。 --no-block-provider-infra-requests 您可以选择Capacitor、Appflow或Capawesome作为您的应用程序的构建服务。我们可以帮助您选择最适合您的应用程序的服务。
  • --build-timeout-minutes [5-360] 用于阻止已知的Google和Apple数据中心请求。
  • --ios-store-url [url] 用于设置本机构建超时。 --android-store-url [url] 您可以选择Capacitor、Appflow或Capawesome作为您的应用程序的构建服务。我们可以帮助您选择最适合您的应用程序的服务。
  • --default-upload-channel [channel] 用于设置商店URL。
  • --default-download-channel [channel] 用于设置默认上传频道。 --disable-download-channels 使所有下载频道为非公开。
  • --apikey [key] API用于链接到您的帐户。

npx @capgo/cli app list [appId]

[appId] 您的应用ID的格式 com.test.app 解释在这里 您可以选择提供:.

__CAPGO_KEEP_0__用于链接到您的帐户。

  • --apikey [key] API key to link to your account.

标题为“删除”的部分

您的应用ID的格式

npx @capgo/cli app delete [appId]

[appId] optional 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!

context:Capacitor live-update alternatives comparison page. Role: Long marketing or legal paragraph. Seen in: page alternatives.astro. Preserve Capgo product/brand and developer terms exactly. Message key `alternatives_cta_questions` (Alternatives CTA Questions). | context:Appflow comparison / migration marketing copy. Role: Long marketing or legal paragraph. Seen in: page ionic-appflow.astro. Preserve Capgo product/brand and developer terms exactly. Message key `appflow_cta_questions` (Appflow CTA Questions). | context:Capawesome comparison page. Role: Long marketing or legal paragraph. Seen in: page capwesome.astro. Preserve Capgo product/brand and developer terms exactly. Message key `capwesome_cta_questions` (Capwesome CTA Questions). | context:Consulting services page. Role: Section subtitle or tagline. Seen in: page consulting.astro. Preserve Capgo product/brand and developer terms exactly. Message key `consulting_faq_subtitle` (Consulting FAQ Subtitle). | context:Appflow comparison / migration marketing copy. Role: Short UI label or navigation item. Seen in: page ionic-appflow.astro, page ionic-enterprise-plugins.astro, page solutions/ionic-enterprise-plugins.astro. Message key `appflow_plugins_or` (Appflow Plugins Or). 选项:

  • --string <string> - 设置为字符串
  • --bool <true | false> - 设置为布尔值

上传

上传

npx @capgo/cli bundle upload [appId]

[appId] 您的应用 ID,格式解释 这里.

您可以选择提供:

  • --apikey <apikey> API 键以链接到您的帐户。
  • --path <path> 上传文件夹的路径。
  • --channel <channel> 要链接的频道。
  • --external <url> 将 URL 链接到外部 URL 而不是上传到 Capgo 云。
  • --iv-session-key <key> 设置 IV 和会话密钥用于外部包 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> AWS 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 将包裹 URL 打印到标准输出。
  • --no-key 忽略签名密钥并发送清晰的更新。
  • --no-code-check 忽略检查源 code 中的 notifyAppReady() 是否被调用,并在根目录中检查索引是否存在。
  • --display-iv-session 在控制台中显示用于加密更新的 IV 和会话密钥。
  • --bundle <bundle> 要上传的包裹的版本号。
  • --auto-bump [level] 从渠道关联的包裹中自动递增,否则使用最新的远程应用程序版本。级别: major, minor (默认) patch (别名) fix), metadata(或) ai (工人 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> __CAPGO_KEEP_0__
  • --package-json <packageJson> 一个指向 package.json 的路径。对于多个仓库很有用。
  • --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 key to link to your account.
  • --bundle 带有版本号的仅删除此版本。

清理

清理

在 SemVer 范围内的主要版本删除到 Cloud

npx @capgo/cli bundle cleanup [appId] --bundle=[majorVersion] --keep=[numberToKeep]

[appId] 应用 ID 的格式 com.test.app 详解 请参阅.

可选地,您可以提供:

  • --apikey [key] API key to link to your account.
  • --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] 如果您想使用内联方式,则可以提供私钥数据。 命令将打印您的 y 并生成一个加密的 zip 文件,用于与上传命令或解密命令一起使用。 ivSessionKeyEncrypt V2

npx @capgo/cli bundle encrypt [path/to/zip] [checksum]

This command is used when you use external source to store your code or for test purpose. The checksum is the sha256 of the bundle (generated by —key-v2), it is used to verify the integrity of the file after decryption. It will be enncrypted with the private key and sent along with the bundle. In encryption v2 the checksum is upgraded to become a “signature” of the bundle.

您的私钥路径。

--key [/path/to/my/private_key] 如果您想使用内联方式,则可以提供私钥数据。 --key-data [privateKey] 以 JSON 格式输出信息。 命令将打印您的 --json y 并生成一个加密的 zip 文件,用于与上传命令或解密命令一起使用。 ivSessionKey使用y和生成一个加密的zip文件,用于上传命令或解密命令。

解密

解密

npx @capgo/cli bundle decrypt [path/to/zip] [ivSessionKey]

如果需要,可以提供:

--key [/path/to/my/private_key] 您的私钥路径。

--key-data [privateKey] 如果您想使用内联方式,可以提供私钥数据。这个命令主要用于测试目的,会解密zip并在控制台打印base64解密后的会话密钥。

解密V2

解密V2

npx @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 忽略 __CAPGO_KEEP_0__ 检查并发送捆绑包。
  • --no-code-check to ignore the code check and send the bundle anyway.
  • --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] 您的新频道的名称,例如 productionbeta. [appId] 添加 com.test.app 您的新频道的名称,例如 .

npx @capgo/cli channel delete [channelName] [appId]

[channelName] 添加 [appId] 您的新频道的名称,例如 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] 您的应用 ID 格式 解释. [channelName] 您想要配置的频道名称,例如 productionbeta.

您可以选择

  • --bundle [1.2.3] 将您的应用程序包发送到云端,用于与频道建立关联。
  • --latest 获取包版本号 package.json:version不能与 --bundle.
  • --state [ normal | default ] 设置频道状态,可以 normaldefault一个频道需要 default.
  • --downgrade 允许频道向设备发送降级版本。
  • --no-downgrade 不允许频道向设备发送降级版本。
  • --upgrade 允许频道向设备发送升级(主)版本。
  • --no-upgrade 禁止该频道向设备发送升级(重大)版本。
  • --ios 允许该频道向iOS设备发送版本。
  • --no-ios 禁止该频道向iOS设备发送版本。
  • --android 允许该频道向Android设备发送版本。
  • --no-android 禁止该频道向Android设备发送版本。
  • --self-assign 允许设备自行将其分配到此频道。
  • --no-self-assign 禁止设备自行将其分配到此频道。
  • --disable-auto-update STRATEGY 禁用此频道的自动更新策略。可能的选项包括:重大、次要、补丁、元数据、无。
  • --apikey [key] API用于链接到您的帐户。

禁用更新策略

标题:禁用更新策略

处理过旧版本时禁用更新有几种方法。
Capgo 无法更新本地 code 因此,从旧本地 code 版本更新到更新本地 code 版本的更新不应是可能的。 有几种方法可以实现这一点。

首先, major 策略。它防止了从本地基线 -> 目标捆绑包的更新。 0.0.0 -> 目标捆绑包 1.0.0第二种是策略。它防止了当目标捆绑包的主版本或次版本与设备本地基线不同时的更新,例如 10.0.0).
第三种是策略。它是 __CAPGO_KEEP_0__ 中添加的非常严格的模式。除非您完全了解它的工作原理,否则不建议使用。 为了使其接受更新,必须满足以下条件: minor 目标捆绑包和设备本地基线的主版本相同 0.0.0 -> 1.1.0 __CAPGO_KEEP_0__ 1.1.0 -> 1.2.0.

__CAPGO_KEEP_1__ patch strategy. It was added into capgo as a very strict mode. It’s not recommended to be used unless you fully understand how it works. In order for it to accept an update, the following conditions must be met:

  • __CAPGO_KEEP_3__ version_build
  • 目标包和目标捆绑包之间的修订号相同 version_build
  • 目标包和目标捆绑包之间的补丁号相同 version_build
  • 仅版本后缀可能不同,例如预发布(-beta.2)或构建元数据(+build.2)

以下是更新是否允许或拒绝的场景示例

  • 1.0.0-β.1 -> 1.0.0-β.2 允许
  • 1.0.0+build.1 -> 1.0.0+build.2 允许
  • 1.0.0 -> 1.0.1 被阻止
  • 1.0.0 -> 1.1.0 被阻止
  • 1.0.0 -> 2.0.0 被阻止

策略比较使用发送的本地基线( version_build,)而不是下载的当前捆绑包( version_name.

最后的最复杂的策略。 metadata 策略。
首先,您需要了解,在启用它后,更新 页面路径:/zh/docs/cli/commands/。保护令牌:Capacitor, GitHub, Capgo, code, API, SDK, CLI, npm, bun。 首先,您需要了解,最初启用后,更新
将会失败,因为通道缺少所需的元数据。

如果通道缺少元数据,您将看到以下信息:

找不到元数据
如果您看到类似这样的信息,则意味着您需要前往当前的包中,设置元数据。 misconfigured 首先,确定哪个通道失败。您可以通过查看

列

配置错误的表格中显示的信息来确定。然后前往失败的通道并点击 Bundle number. 这应该会将您带到捆绑包页面。

找到失败的频道

一旦您到达那里,请填写 Minimal update version 字段。这应该是一个 语义版本.
如果您传递的值不是语义版本,您将得到一个错误,但如果一切顺利,您应该会看到类似这样的内容:

设置最小版本

现在,您很可能不想每次更新时都手动设置此数据。幸运的是,CLI 将防止您在没有此元数据的情况下发送更新

CLI 发送失败,没有元数据

使用选项上传捆绑包时,请务必正确传递 metadata 参数 --min-update-version 参数 有效的语义版本号. 这样的事情:

CLI 上传带有元数据

这个 --min-update-version 不是唯一的兼容性方法。 还存在 --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 集成

GitHub 动作教程

GitHub action tutorial

GitHub - Cap-go/demo-app

请记住使用你的 API 密钥配置 CI 环境变量

如果你正在使用 命令 来规划仪表板和 API 操作,连接它到 API 概览 查看 API 概览中的实现细节 介绍 查看 CLI 命令的实现细节,请参阅介绍。 API 键 查看 CLI 命令的实现细节,请参阅 API 键。 设备 查看 CLI 命令的实现细节,请参阅设备, 捆绑包 查看 CLI 命令的实现细节,请参阅捆绑包。