命令
复制一个包含安装步骤和本插件的完整Markdown指南的设置命令。
所有命令应在您的应用程序文件夹中运行,且capacitor项目已正确点亮。
Init
Initnpx @capgo/cli@latest init [apikey]
一步一步地引导您完成初始化过程
它将您的应用添加到 Capgo 中。它将为您的应用添加 code 以验证更新。同样,它将构建您的应用。另外,它将上传您的应用到 Capgo 中。并且,它将帮助您检查更新是否有效
Login
Loginnpx @capgo/cli login [apikey]
记住 apikey for you
您可以选择提供:
--local 将会将您的 apikey 存储在本地仓库并将其忽略在git中。
Doctor
标题为“Doctor”的部分npx @capgo/cli doctor
命令来检查您是否已更新至Capgo包。
此命令也将有助于bug报告。
App
标题为“App”的部分Add
添加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 = 无限。
appId 和 AppName 的示例 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 网页应用中显示。--name [test]在列表中以自定义名称显示。--retention [retention]应用程序包的保留期限(以天为单位),默认值为 0,即无限。--apikey [key]API 密钥以链接到您的帐户。
列表
列表npx @capgo/cli app list [appId]
[appId] your app ID 的格式 com.test.app 是这里 解释.
Optionally,您可以提供:
--apikey [key]API key 链接到您的帐户.
删除
标题为“删除”npx @capgo/cli app delete [appId]
[appId] your app ID 的格式 com.test.app 是这里 解释.
Optionally,您可以提供:
--apikey [key]API key 链接到您的帐户.--bundle使用版本号删除此版本。
Debug
调试npx @capgo/cli app debug [appId]
[appId] 您的应用ID的格式 com.test.app 详细信息 这里.
您可以选择提供:
--apikey [key]API--device与您要调试的具体设备
npx @capgo/cli app setting [path]
Edit the Capacitor config.
[path] - 你想要改变的设置路径。例如,要改变 appId, 提供 appId
如果您想禁用自动更新,请在 capacitor-updater 提供 plugins.CapacitorUpdater.autoUpdate
您必须提供 --string 或 --bool!
选项:
--string <string>- 将设置设置为一个字符串--bool <true | false>- 将设置设置为一个布尔值
上传
上传npx @capgo/cli bundle upload [appId]
[appId] 您的应用 ID,格式解释在这里 这里.
您可以选择提供:
--apikey <apikey>API 键用于链接到您的帐户。--path <path>要上传的文件夹路径。--channel <channel>链接到通道。--external <url>使用 Capgo 云外链上传时,设置 IV 和会话密钥。--iv-session-key <key>S3 端点的 URL。与增量上传或外链选项无效。--s3-endpoint <s3Endpoint>您的 S3 存储桶的区域。--s3-region <region>__CAPGO_KEEP_0__ 键用于您的 S3 端点。--s3-apikey <apikey>API key for your S3 endpoint.--s3-apisecret <apisecret>API secret for your S3 endpoint.--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>__CAPGO_KEEP_0__--min-update-version <minUpdateVersion>__CAPGO_KEEP_0__--auto-min-update-version__CAPGO_KEEP_0__--ignore-metadata-check__CAPGO_KEEP_0__--ignore-checksum-check__CAPGO_KEEP_0__--timeout <timeout>__CAPGO_KEEP_0__--delta__CAPGO_KEEP_0__--delta-only__CAPGO_KEEP_0__--no-delta__CAPGO_KEEP_0__directUpdate__CAPGO_KEEP_0__--tus__CAPGO_KEEP_0__--multipart__CAPGO_KEEP_0__--encrypted-checksum <encryptedChecksum>一个加密的校验和(签名)。仅在上传外部包时使用。--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] 名为“删除”的部分 com.test.app 您的应用 ID 格式 解释.
可选地,您可以提供:
--apikey [key]API--bundle带有版本号的只会删除这个版本。
清理
标题为“清理”在 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]__CAPGO_KEEP_0__ (默认 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] 如果您想使用内联,则使用私钥数据。 ivSessionKey命令将打印您的 y 并生成一个加密的 zip 文件,用于与上传命令或解密命令一起使用。
加密 V2
加密 V2npx @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命令将打印您的
y 并生成一个加密的 zip 文件,用于与上传命令或解密命令一起使用。
解密npx @capgo/cli bundle decrypt [path/to/zip] [ivSessionKey]
标题:解密
--key [/path/to/my/private_key] 您可以选择提供:
--key-data [privateKey] 您的私钥路径。
私钥数据,如果您想使用内联。这个命令主要用于测试目的,会解密 zip 并在控制台打印 base64 解密的会话密钥。
解密 V2npx @capgo/cli bundle decryptV2 [path/to/zip] [ivSessionKey]
标题:解密 V2
--key [/path/to/my/private_key] 您可以选择提供:
--key-data [privateKey] 您的私钥路径。
--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 [channelId]
[appId] 您的应用 ID,格式解释在这里 这里.
[channelId] 您的新频道名称。
您可以选择给出:
--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 [channelId] [appId]
[channelId] 请输入您的新频道名称。 [appId] 您的应用 ID 格式 com.test.app 请参阅以下说明 删除.
npx @capgo/cli channel delete [channelId] [appId]
[channelId] 您的应用 ID 格式 [appId] 请参阅以下说明 com.test.app __CAPGO_KEEP_0__ 这里.
列表
标题:列表npx @capgo/cli channel list [appId]
[appId] 您的应用 ID 格式为 com.test.app 在这里有说明 您可以选择提供:.
__CAPGO_KEEP_0__
--apikey [key]API key to link to your account.
标题:设置
您的应用 ID 格式为npx @capgo/cli channel set [channelId] [appId]
[appId] 在这里有说明 您可以选择提供:.
您可以选择提供:
--bundle [1.2.3]将您的应用程序包已发送到云端,用于将其链接到一个频道。--latest从package.json:version不能与--bundle.--state [ normal | default ]设置频道状态,可以normal或default一个频道需要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禁用该频道的自动更新策略。可能的选项包括:major、minor、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.
这个策略不防止 第三, 0.1.0 -> 1.1.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 a update the following conditions must be meet:
- 新版本和旧版本之间的主要版本号相同
- 新版和旧版的修订号相同
- 新版的补丁号大于旧版的补丁号
以下是更新允许或拒绝的场景示例
- 0.0.311 -> 0.0.314 ✅
- 0.0.0 -> 0.0.314 ✅
- 0.0.316 -> 0.0.314 ❌
- 0.1.312 -> 0.0.314 ❌
- 1.0.312 -> 0.0.314 ❌
最后一种最复杂的策略。该 metadata 策略。
首先您需要知道,启用后初始更新 将会失败,因为通道缺少所需的元数据。 如果通道缺少元数据,您将看到以下消息:
找不到元数据
首先,确定哪个通道失败。您可以通过查看失败通道的当前捆绑包来做到这一点,并设置元数据。
您可以通过查看失败通道的当前捆绑包来确定哪个通道失败 misconfigured 列
然后前往失败的频道并点击 Bundle number这应该会将您带到捆绑包页面。
一旦您在那里填写了 Minimal update version 字段。这应该是一个 语义版本.
如果您传入的值不是语义版本,您将会得到一个错误,但如果一切顺利,您应该会看到类似这样的内容:
现在,您很可能不希望每次更新时都手动设置此数据。幸运的是,CLI 将防止您在没有此元数据的情况下发送更新
使用时要正确上传一个捆绑包,您需要传递 metadata __CAPGO_KEEP_0__ --min-update-version ,例如:
不是唯一的兼容性方法。
还存在 --min-update-version 。以下是它的工作原理。 --auto-min-update-version首先,它检查当前上传到频道的版本的兼容性,检查方式与
命令相同。
其次,如果新版本是100%兼容的,它会复用 bundle compatibility ,从频道中最新版本的 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 集成
为了自动化您的工作,我建议您让 __CAPGO_KEEP_0__ 动作负责将密钥推送到我们的服务器
keyTo automate your work, I recommend you make GitHub action do the job of pushing to our server
我们的示例应用
名为“我们的示例应用”的部分请记得配置 CI 环境变量并使用你的 API 密钥