跳过内容

命令

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

npx @capgo/cli@latest init [apikey]

该方法将逐步引导您。它将添加您的应用程序到__CAPGO_KEEP_0__。它将添加__CAPGO_KEEP_1__到您的应用程序以验证更新。同样,它将构建您的应用程序。另外,它将上传您的应用程序到__CAPGO_KEEP_2__。此外,它将帮助您检查更新是否有效。

It will add your app to Capgo. It will add the code to your app to validate the update. Likewise, it will build your app. Furthermore, it will upload your app to Capgo. And it will help you to check if the update works.

npx @capgo/cli login [apikey]

这个方法是为了记住你 apikey 的信息.

可选地你可以给出:

--local 这个会将你的 apikey 存储在本地仓库并忽略它.

Doctor

医生

npx @capgo/cli doctor

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

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

应用

应用

添加

添加

npx @capgo/cli app add [appId]

[appId] 您的应用ID的格式 com.test.app 请参阅 这里.

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

可选项:

  • --icon [/path/to/my/icon] 在Capgo web app中显示自定义图标。
  • --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,格式解释 在此处.

您可以选择提供:

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

npx @capgo/cli app list [appId]

[appId] 您的应用程序ID的格式 com.test.app 如上所述 在这里.

您可以选择提供:

  • --apikey [key] API密钥以链接到您的帐户。

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,格式解释在这里 您可以选择提供:.

__CAPGO_KEEP_0__

  • --apikey <apikey> API key to link to your account.
  • --path <path> 要上传的文件夹路径。
  • --channel <channel> 要链接的频道。
  • --external <url> 将文件上传到外部 URL 而不是使用 Capgo Cloud。
  • --iv-session-key <key> 设置用于外部 URL 的包装 URL 的 IV 和会话密钥。
  • --s3-endpoint <s3Endpoint> S3 端点的 URL。与 delta 上传或外部选项无效。
  • --s3-region <region> S3 存储桶的区域。
  • --s3-apikey <apikey> API key 为您的 S3 端点。
  • --s3-apisecret <apisecret> API secret 为您的 S3 端点。
  • --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 将包裹 URL 打印到标准输出。
  • --no-key 忽略签名密钥并发送清晰的更新。
  • --no-code-check 忽略源代码 code 中的 notifyAppReady() 是否被调用,以及根目录中的索引是否存在。
  • --display-iv-session 在控制台中显示用于加密更新的 IV 和会话密钥。
  • --bundle <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> 包.json 的路径。适用于多包项目。
  • --package-json <packageJson> 设置包在 __CAPGO_KEEP_0__.config.json 中。
  • --auto-set-bundle Set the bundle in capacitor.config.json.
  • --node-modules <nodeModules> __CAPGO_KEEP_0__

⭐️ 外部选项帮助解锁 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 详见说明 here.

Optionally, you can give:

  • --apikey [key] API

npx @capgo/cli bundle delete [appId]

[appId] __CAPGO_KEEP_0__ com.test.app is explained here.

__CAPGO_KEEP_0__

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

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,使用它将删除 10.0.1 到 10.0.6。 10.0.7 到 10.0.11 将被保留。 npx @capgo/cli cleanup [appId] --bundle=10.0.0 如果您有 20 个版本总数,并且您没有提供一个捆绑包号码

如果您有 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文件,用于与上传命令或解密命令一起使用。

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

该命令用于在使用外部源存储您的 code 或测试目的时。 校验和是由 —key-v2 生成的bundle的sha256,它用于在解密后验证文件的完整性。 它将使用私钥加密并与bundle一起发送。 在加密v2中,校验和升级为bundle的“签名”。

可选项,您可以提供:

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

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

Optionally, you can give:

--key [/path/to/my/private_key] the path of your private key.

--key-data [privateKey] the private key data, if you want to use inline. This command is mainly used for test purpose, it will decrypt the zip and print the base64 decrypted session key in the console.

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

Optionally, you can give:

--key [/path/to/my/private_key] the path of your private key. --key-data [privateKey] the private key data, if you want to use inline. This command is mainly used for test purpose, it will decrypt the zip and print the base64 decrypted session key in the console. --checksum [checksum] the checksum of the file, it will verify the checksum after decryption.

npx @capgo/cli bundle zip [appId]

[appId] is your app ID, the format is explained 在这里.

可选:

  • --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] __CAPGO_KEEP_0__

Optionally, you can give:

  • --apikey [key] API
  • --text 使用文本而非表情符号
  • --channel [channel] __CAPGO_KEEP_0__
  • --package-json <packageJson> package.json的路径,适用于多包项目
  • --node-modules <nodeModules> node_modules的路径,适用于多包项目(逗号分隔,例如:../../node_modules,./node_modules)

频道

频道

添加

添加

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

[channelName] 新频道的名称,例如 productionbeta. [appId] 您的应用 ID 格式 com.test.app 如图所示 删除.

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

[channelName] 您的应用 ID 格式 [appId] 如图所示 com.test.app 列表 列表.

列表

列表

npx @capgo/cli channel list [appId]

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

Optionally, 您可以提供:

  • --apikey [key] API key 链接到您的帐户

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

[appId] 是您的 app ID,格式是 在这里. [channelName] 您要配置的频道名称,例如 productionbeta.

Optionally, 您可以提供:

  • --bundle [1.2.3] 您的应用程序包已经发送到云端,需要将其链接到一个频道。
  • --latestpackage.json:version中获取包版本, --bundle.
  • --state [ normal | default ] 不能与 normal 一起使用。 default设置频道状态,可以 default.
  • --downgrade
  • --no-downgrade 。一个频道需要
  • --upgrade 允许频道向设备发送降级版本。
  • --no-upgrade 不允许频道向设备发送降级版本。
  • --ios 允许频道向设备发送升级(主)版本。
  • --no-ios 不允许频道向设备发送升级(主)版本。
  • --android 允许频道向安卓设备发送版本信息.
  • --no-android 不允许频道向安卓设备发送版本信息.
  • --self-assign 允许设备自行分配到此频道.
  • --no-self-assign 不允许设备自行分配到此频道.
  • --disable-auto-update STRATEGY 禁用此频道的自动更新策略。可能的选项包括:major、minor、patch、metadata、none.
  • --apikey [key] API用于链接到您的帐户.

禁用更新策略

禁用更新策略部分

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

首先, major 策略。它防止从本地基线更新本机__CAPGO_KEEP_1__ 0.0.0 ->目标包 1.0.0.0.0 和1第二是策略。它防止更新当目标包的主版本或次版本与设备本地基线不同,例如 0.0.0).
minor 第三, 0.0.0 -> 1.1.0 策略。它被添加到__CAPGO_KEEP_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:

  • 目标包和 version_build
  • 的次版本相同 version_build
  • 目标包和 version_build
  • 的修订版本相同-beta.2或构建元数据(+build.2)

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

  • 1.0.0-beta.1 -> 1.0.0-beta.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 更新策略。
首先你需要知道,最初启用它后更新会被拒绝 将会失败,因为通道缺少所需的元数据。 如果通道缺少元数据,您将看到如下信息:
找不到元数据

如果您看到类似这样的信息,则知道您需要前往当前包中失败的通道并设置元数据。

首先,确定哪个通道失败。您可以通过查看
misconfigured 配置错误的表格

然后前往失败的通道并点击

。这应该会将您带到包页。 Bundle number定位失败的通道

一旦您找到它,请在失败的通道中填写

__CAPGO_KEEP_0__ Minimal update version field. 这个应该是一个 semver.
如果您传入的值不是一个 semver 您将会得到一个错误,但如果一切顺利您应该会看到类似这样的内容:

设置最小版本

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

CLI 无元数据失败

使用"选项"时,为了正确上传一个捆绑包,您需要传入一个 metadata ,并且 --min-update-version 必须是有效的 semver 。类似这样的内容:__CAPGO_KEEP_0__ 上传带有元数据

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

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

继续执行命令

标题:继续执行命令

如果您正在使用 命令 来规划仪表板和 API 操作,连接它到 API 概览 为了在 API 概览中获取实现细节,请参阅 介绍 为了在介绍中获取实现细节,请参阅 API 密钥 为了在 API 密钥中获取实现细节,请参阅 设备 为设备的实现细节,和 捆绑包 为捆绑包的实现细节,。