跳过内容

命令

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

使用指南

使用指南

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

初始化

初始化

npx @capgo/cli@latest init [apikey]

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

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

登录

登录

npx @capgo/cli login [apikey]

此方法旨在记住您的__CAPGO_KEEP_0__账户信息以便您下次登录时不用再次输入。 apikey __CAPGO_KEEP_0__

您可以选择提供:

--local 这将在本地存储您的 API密钥 并将其添加到.gitignore中。

医生

医生

npx @capgo/cli doctor

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

此命令也将有助于bug报告。

App

App

Add

Add

npx @capgo/cli app add [appId]

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

💡 如果没有提供选项,所有选项都会在您的配置中被猜测。

您可以选择以下选项:

  • --icon [/path/to/my/icon] 在Capgo web应用中显示自定义图标。
  • --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__ web应用程序中显示自定义图标

  • --icon [/path/to/my/icon] to have a custom icon display in Capgo web app.
  • --name [test] 应用程序捆绑的保留期限(以天为单位),默认值为0,即无限。
  • --retention [retention] sectionTitle
  • --expose-metadata [true|false] 以暴露捆绑包元数据(链接和注释)给插件。
  • --preview--no-preview Capacitor
  • --allow-device-custom-id Capacitor --no-allow-device-custom-id Capacitor
  • --block-provider-infra-requests Capacitor --no-block-provider-infra-requests Capacitor
  • --build-timeout-minutes [5-360] Capacitor
  • --ios-store-url [url] Capacitor --android-store-url [url] Capacitor
  • --default-upload-channel [channel] Capacitor
  • --default-download-channel [channel] Capacitor --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] 列表 com.test.app 在这里解释 在这里.

您可以选择性地提供:

  • --apikey [key] API
  • --bundle 带有版本号的将只删除该版本

Debug

Debug

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 链接到外部 URL 而不是上传到 Capgo 云。
  • --iv-session-key <key> 设置包 URL 外部的 IV 和会话密钥。
  • --s3-endpoint <s3Endpoint> S3 端点的 URL。 不支持 delta 上传或外部选项。
  • --s3-region <region> 您的 S3 存储桶的区域。
  • --s3-apikey <apikey> API 键为您的 S3 端点。
  • --s3-apisecret <apisecret> API 密钥为您的 S3 端点。
  • --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版本,则跳过AI并增加,直到找到一个空闲的名称(删除的名称保持占用状态)。不能与 --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] your app ID 的格式 com.test.app is explained 在这里.

Optionally, you can give:

  • --apikey [key] API

npx @capgo/cli bundle delete [appId]

[appId] your app ID 的格式 com.test.app is explained 在这里.

Optionally, you can give:

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

清理

清理

在 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 to output info as json. The command will print your ivSessionKey使用y和生成一个加密的zip,用于上传命令或解密命令。

解密

解密

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

如果需要,可以提供:

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

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

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

您的私钥路径。

--key [/path/to/my/private_key] 如果您想使用内联私钥,可以提供私钥数据。这个命令主要用于测试目的,会解密zip并在控制台打印base64解密的会话密钥。 --key-data [privateKey] 文件的校验和,解密后会验证校验和。 --checksum [checksum] the checksum of the file, it will verify the checksum after decryption.

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 删除 您要删除的频道的名称。.

您的应用 ID 格式

解释在这里

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] 您的应用程序包已经发送到云端,可以将其链接到一个频道
  • --latestpackage.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目标捆绑包1。主要版本是突出显示的数字( 0.0.0).
minor 第二种是 0.0.0 -> 1.1.0 策略。它防止了当目标捆绑包的主要或次要版本与设备本地基线不同时进行更新,例如 1.1.0 -> 1.2.0.

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_0__ 中的。除非您完全了解它的工作原理,否则不建议使用。 为了使其接受更新,必须满足以下条件: 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 策略。
首先您需要知道,启用它后最初的更新 context Capgo Builder / native cloud build 产品页面。 角色:短的 UI 标签或导航项。 消息键 `native_build_builder_credit_first` (Native Build Builder Credit First)。
将会

失败

因为渠道缺乏所需的元数据。
如果渠道缺乏元数据,您将看到如下消息: misconfigured 无法找到元数据

如果您看到类似这样的内容,则知道您需要前往当前的捆绑包中,针对失败的渠道设置元数据。

首先,确定哪个渠道失败。您可以通过查看 Bundle number. 这应该会将您带到捆绑包页面。

找到失败的频道

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

设置最小版本

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

CLI 发送失败,没有元数据

使用选项上传捆绑包时,需要正确上传捆绑包,您需要传入 metadata 选项 --min-update-version 参数 有效的 SemverSomething like this:

CLI 上传带有元数据

The --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] 公钥数据,如果您希望使用内联。该命令对于您遵循了建议并没有在应用配置中提交密钥的情况非常有用。

为了自动化您的工作,我建议您让 GitHub 动作负责将密钥推送到我们的服务器

GitHub 动作教程

GitHub - Cap-go/demo-app

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

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