命令
复制一个包含安装步骤和本插件的完整 Markdown 指南的配置提示。
使用
关于使用所有命令都应在您的应用程序文件夹中运行,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.
protectedTokens
登录npx @capgo/cli login [apikey]
这个方法是为了记住 apikey 的
可选地您可以给出:
--local 将存储 apikey 在本地仓库并将其忽略
npx @capgo/cli doctor
命令检查您是否已更新至 Capgo 包。
此命令还将有助于bug报告。
npx @capgo/cli app add [appId]
[appId] 您的应用ID的格式 com.test.app 解释在这里 💡 如果未提供,则所有选项将在您的配置中被猜测。.
您可以选择提供:
Section titled “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,格式解释在这里。 您可以选择提供:.
Optionally, you can give:
--icon [/path/to/my/icon]在 Capgo 网页应用中显示自定义图标。--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] 调试选项 com.test.app 您的应用ID的格式 如上所述.
Optionally, you can give:
--apikey [key]API--devicewith the specific device you want to debug
Setting
Section titled “Setting”npx @capgo/cli app setting [path]
Edit the Capacitor config.
[path] - path of the setting that you would like to change. For example, to change the appId, provide appId.
If you wish to disable auto update in the capacitor-updater, provide plugins.CapacitorUpdater.autoUpdate with --string off.
You MUST provide either --string 或 --bool!
选项:
--string <string>- 将设置设为一个字符串--bool <true | false>- 将设置设为一个布尔值
打包
标题:打包上传
标题:上传npx @capgo/cli bundle upload [appId]
[appId] 这是你的应用ID,格式解释在这里 您可以选填:.
__CAPGO_KEEP_0__ 键来链接到您的账户
--apikey <apikey>API--path <path>要上传的文件夹路径。--channel <channel>要链接的频道。--external <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>Public signing key (v1 system).--key-v2 <key>自定义私钥路径 (v2 系统).--key-data-v2 <keyData>Private signing key (v2 system).--bundle-url打印 bundle URL 到标准输出.--no-key忽略签名密钥并发送清晰更新.--no-code-check忽略检查源 code 和根目录中的索引是否被调用 notifyAppReady()--display-iv-session在控制台显示用于加密更新的 IV 和会话密钥.--bundle <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>package.json文件路径。适用于多包仓库。--package-json <packageJson>设置包文件路径到__CAPGO_KEEP_0__.config.json中。--auto-set-bundleSet the bundle in capacitor.config.json.--node-modules <nodeModules>⭐️ 该选项可解锁两种场景:企业级环境中有隐私需求,不向第三方发送__CAPGO_KEEP_0__,同时支持大于200MB的应用。该设置下,__CAPGO_KEEP_1__仅存储上传包的链接并将链接发送给所有应用。
⭐️ External option helps to unlock 2 cases: corporate with privacy concern, don’t send the code to a third part and app bigger than 200 MB. With this setting, Capgo store only the link to the zip and sends the link to all apps.
👀 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 key 可以连接到您的帐户。
删除
标题为“删除”npx @capgo/cli bundle delete [appId]
[appId] 您的应用 ID 格式 com.test.app 如图所示 在这里.
Optionally, you can give:
--apikey [key]API key 可以连接到您的帐户。--bundle仅删除此版本,带有版本号会
清理
标题为“清理”在一个 SemVer 范围内的主要版本中使用 Cloud
npx @capgo/cli bundle cleanup [appId] --bundle=[majorVersion] --keep=[numberToKeep]
[appId] 您的应用 ID 格式 com.test.app 在这里解释 here.
您可以提供:
--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 个
This command will ask for confirmation, it shows a table of what it will be keeping and removing.
加密
加密警告: 这个命令已经被弃用,下一个重大版本中将被删除。 请使用新的加密系统。
npx @capgo/cli bundle encrypt [path/to/zip]
This command is used when you use external source to store your code or for test purpose.
可选参数:
--key [/path/to/my/private_key] 您的私钥路径。
--key-data [privateKey] 私钥数据,如果您想使用内联。
命令将打印您的 ivSessionKey使用此命令时,您可以使用外部源存储您的 __CAPGO_KEEP_0__ 或进行测试。
校验和是由 —key-v2 生成的 bundle 的 sha256 值,用于验证文件解密后完整性。
校验和将使用私钥加密并与 bundle 一同发送。
在加密 v2 中,校验和升级为 bundle 的“签名”。
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 格式输出信息。 ivSessionKey命令将打印您的
使用此命令时,您可以使用外部源存储您的 __CAPGO_KEEP_0__ 或进行测试。 校验和是由 —key-v2 生成的 bundle 的 sha256 值,用于验证文件解密后完整性。 校验和将使用私钥加密并与 bundle 一同发送。 在加密 v2 中,校验和升级为 bundle 的“签名”。
解密npx @capgo/cli bundle decrypt [path/to/zip] [ivSessionKey]
Section titled “解密”
--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] 文件的校验和,解密后会验证校验和。
zip
标题:zipnpx @capgo/cli bundle zip [appId]
[appId] 您的应用ID是 gì?格式解释 这里.
可选:
--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 channel beta. [appId] 您的应用 ID 格式 com.test.app 这里有说明 这里.
删除
标题:删除npx @capgo/cli channel delete [channelName] [appId]
[channelName] 您要删除的频道名称。 [appId] 这里有说明 com.test.app 这里 列表.
标题:列表
您的应用 ID 格式npx @capgo/cli channel list [appId]
[appId] __CAPGO_KEEP_0__ com.test.app 在这里解释 这里.
您可以选择提供:
--apikey [key]API关键字来链接您的账户
npx @capgo/cli channel set [channelName] [appId]
[appId] 是您的应用ID,格式解释 在这里.
[channelName] 您要配置的频道名称,例如 production 或 beta.
您可以选择提供:
--bundle [1.2.3]您的应用程序包已经发送到云端,用于链接到频道。--latest从中获取版本号package.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 策略。它防止了从本机基线 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.
策略。它被添加到 __CAPGO_KEEP_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) or build metadata (+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 策略
首先你需要知道,启用它后最初的更新 将会被阻止 __CAPGO_KEEP_0__
如果频道缺少所需的元数据,您将看到类似这样的消息:
如果您看到类似这样的消息,则知道您需要前往当前包中失败的频道并设置元数据。
首先,确定哪个频道失败。您可以通过查看 misconfigured 列
然后前往失败的频道并点击 Bundle number。这应该会将您带到包页。
在那里填写 Minimal update version 字段。这应该是 semver.
如果您传入的值不是一个semver,则会出现错误,但如果一切顺利,您应该会看到如下内容:
现在,您很可能不想每次更新时都手动设置此数据。幸运的是,CLI 将防止您在没有此元数据的情况下发送更新
使用选项上传包时,需要正确上传包时需要传入 metadata option you need to pass the --min-update-version 有效的semver 。例如:__CAPGO_KEEP_0__ 上传时带有元数据
The --min-update-version 不是唯一的兼容性方法。
还存在 --auto-min-update-version以下是它的工作原理。
首先,它检查当前上传到频道的版本号。它检查兼容性与 bundle compatibility 命令一样。
其次,如果新版本100%兼容,它会复用 min_update_version 从频道中最新版本的 min_update_version 如果不兼容,则设置
为新上传版本的 min_update_version 使用此选项时,您始终会获得
最小更新版本
最小更新版本不兼容(不兼容)
Section titled “End-to-End encryption (Trustless)”Capgo 支持端到端加密,这意味着您的打包文件(code)在发送到云端之前被加密,并在设备上解密。为此,您需要生成一个RSA密钥对,您可以使用以下命令生成它。
加密系统是RSA和AES的组合,RSA密钥用于加密AES密钥,AES密钥用于加密文件。
有关加密系统的更多信息,请参见下文。
Encryption schema
为您的应用创建密钥
Section titled “为您的应用创建密钥”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动作教程
在您的应用程序配置中保存密钥
__CAPGO_KEEP_0__ - Cap-go/demo-appDon’t forget to configure CI env variable with your API key
继续使用命令
命令:继续如果您正在使用 命令 to plan dashboard and API operations, connect it with API for the implementation detail in API Overview, 查看 __CAPGO_KEEP_0__ API Keys for the implementation detail in API Keys, __CAPGO_KEEP_0__ 对于设备中的实现细节, bundles 对于bundles中的实现细节,