📦 打包
复制一个包含安装步骤和本插件的完整Markdown指南的设置提示。
📦 为在 Capgo 云中部署应用程序包管理,包括上传、兼容性检查和加密。
⬆️ 上传
标题: ⬆️ 上传别名: u
npx @capgo/cli@latest bundle upload⬆️ 将应用程序包上传到 Capgo 云以进行分发。 版本必须大于 0.0.0 并且唯一。已删除的版本不能重复使用以保证安全。 外部选项:仅存储一个 URL 链接(对于大于 200MB 的应用程序或隐私要求有用)。 Capgo 从未检查外部内容。添加加密以实现无信任安全。
示例:
npx @capgo/cli@latest bundle upload com.example.app --path ./dist --channel production,beta自动将下一个可用的 SemVer 从频道 (或最新远程应用版本) 中升级,当您不传递 __CAPGO_KEEP_0__ 时 --bundle在 CI 中有用时 package.json 当 Capgo 已经匹配一个版本时
npx @capgo/cli@latest bundle upload --channel=production --auto-bumpnpx @capgo/cli@latest bundle upload --auto-bump majornpx @capgo/cli@latest bundle upload --auto-bump minor # default when the flag has no valuenpx @capgo/cli@latest bundle upload --auto-bump patch # alias: fixnpx @capgo/cli@latest bundle upload --auto-bump metadatanpx @capgo/cli@latest bundle upload --channel=production --auto-bump ai使用 __CAPGO_KEEP_0__ 和 __CAPGO_KEEP_1__ Workers AI 比较本地包文件与之前的 __CAPGO_KEEP_2__/频道 delta 清单,推断 --auto-bump ai, Capgo Cloudflare Workers AI compares local bundle files to the previous Capgo/channel delta manifest, infers major | minor | patch | metadata, and prints a short reason in the CLI log. If no previous Capgo version exists, AI is skipped and the bump defaults to 选项:.
__CAPGO_KEEP_0__
| 参数 | 类型 | 描述 |
|---|---|---|
| -a | string | API 与您的帐户关联的密钥 |
| -p | string | capacitor.config 中设置的 webDir 如果未提供,则将使用该文件夹的路径 |
| -c | string | 要链接的频道。使用逗号分隔多个频道,例如 production,beta |
| —rollout | string | 将上传的包作为此频道的滚动目标,百分比从 0 到 100 |
| —stable | boolean | 在一个 rollout-configured 通道上,替换稳定fallback而不是设置 rollout 目标 |
| —rollout-percentage-bps | string | 设置从 0 到 10000 的已上传包装的 rollout 百分比 |
| —rollout-cache-ttl-seconds | string | Cloudflare rollout 决策缓存 TTL 秒 |
| -e | string | 将包装链接到外部 URL 而不是上传到 Capgo Cloud |
| —iv-session-key | string | 设置包装 URL 外部的 IV 和会话密钥 |
| —s3-region | string | 您的 S3 存储桶所在的区域 |
| —s3-apikey | string | API key for your S3 endpoint |
| —s3-apisecret | string | API secret for your S3 endpoint |
| —s3-endpoint | string | S3端点的URL |
| —s3-bucket-name | string | 您的AWS S3存储桶的名称 |
| —s3-port | string | 您的S3端点的端口 |
| —no-s3-ssl | boolean | 禁用S3上传的SSL |
| —key-v2 | string | 自定义私钥路径 (v2 系统) |
| —key-data-v2 | string | 私钥 (v2 系统) |
| —bundle-url | boolean | 将包 URL 打印到标准输出 |
| —no-key | boolean | 忽略签名密钥并发送清晰的更新 |
| —no-code-check | boolean | 忽略检查源 code 和根目录中是否存在 notifyAppReady() 函数和索引 |
| —display-iv-session | boolean | 在控制台显示用于加密更新的 IV 和会话密钥 |
| -b | string | 上传的包的版本号 |
| —auto-bump | string | 从频道关联的包中自动递增,否则使用最新的远程应用程序版本。级别:主版本、次版本(默认)、修订版本(修复版本)、元数据或ai(Worker AI根据本地与之前的delta清单推断级别;如果没有之前的Capgo版本,则回退到修订版本)。直到找到一个可用的名称(删除的名称将占用)。不能与—bundle(-b)一起使用 |
| —link | string | 链接到外部资源(例如GitHub发布) |
| —comment | string | 关于此版本的注释,可能是发布说明、提交哈希、提交消息等 |
| —min-update-version | string | 此版本所需的最小版本号。仅当频道中禁用自动更新设置为元数据时才使用 |
| —auto-min-update-version | boolean | 根据本地包设置最小更新版本 |
| —ignore-metadata-check | boolean | 忽略上传时的元数据(node_modules)检查 |
| —fail-on-incompatible | boolean | 当捆绑包与渠道当前本地包不兼容时,上传失败(退出非零状态)而不是上传。在交互式终端中,您仍可以选择本地构建;拒绝上传失败。不能与 —ignore-metadata-check 一起使用。 |
| —ignore-checksum-check | boolean | 忽略上传时的校验和检查 |
| —force-crc32-checksum | boolean | 强制CRC32校验和上传(覆盖自动检测) |
| —timeout | string | 上传过程的超时时间(以秒为单位) |
| —multipart | boolean | [已弃用] 使用 —tus 代替。使用多部分协议进行 S3 上传 |
| —zip | boolean | 使用 zip 上传包到 Capgo 云 (legacy) |
| —tus | boolean | 使用 TUS 上传包到 Capgo 云 |
| —tus-chunk-size | string | TUS 分段上传时的字节块大小(默认:自动) |
| —partial | boolean | 【已弃用】使用 —delta 代替。上传增量更新 |
| —partial-only | boolean | 【已弃用】使用 —delta-only 代替。只上传增量更新,跳过完整包 |
| —delta | boolean | 上传差异更新(只上传改变的文件)以实现实时、超快更新而不是大型 zip 下载 |
| —delta-only | boolean | 以最大速度上传仅 delta 更新而非完整包(适用于大型应用) |
| —no-delta | boolean | 即使启用即时更新,也禁用 delta 更新 |
| —encrypted-checksum | string | 用于上传外部包时的加密校验和(签名) |
| —auto-set-bundle | boolean | 设置包在 capacitor.config.json 中 |
| —dry-upload | boolean | 干燥上传包过程:在数据库中添加行而非上传文件或更新频道(由 Capgo 内部测试使用) |
| —package-json | string | 多包项目的 package.json 文件路径(用逗号分隔) |
| —node-modules | string | 多仓库的node_modules目录路径(逗号分隔) |
| —部分加密 | boolean | 加密delta更新文件(自动启用于updater > 6.14.4) |
| —上传时删除关联的捆绑包 | boolean | 在您尝试上传的频道中定位当前关联的捆绑包,并删除它 |
| —排除Brotli压缩的文件(逗号分隔模式,例如“ | string | .jpg,.png”)—完全禁用Brotli压缩,即使更新器版本支持它 |
| —版本存在时允许 | boolean | —no-brotli-patterns |
| —disable-brotli | boolean | 如果包版本已经存在,退出成功,适用于CI/CD工作流程中的多包仓库 |
| —自我赋予 | boolean | 允许设备自动加入此频道(更新频道设置) |
| —二维码预览 | boolean | 上传后打印此包预览的终端二维码code |
| —发送更新通知 | boolean | 更新关联频道包后发送本机更新检查通知给设备 |
| —超级主机 | string | 自定义Supabase主机URL(用于自主托管或Capgo开发) |
| —自定义匿名 | string | 自定义Supabase匿名密钥(用于自主托管) |
| —详细 | boolean | 使用详细日志输出来启用详细输出 |
🧪 兼容性
兼容性npx @capgo/cli@latest bundle compatibility在 Capgo 云中检查一个特定频道的包与 Capgo Cloud 兼容性,以确保更新是安全的。
示例:
npx @capgo/cli@latest bundle compatibility com.example.app --channel production选项:
| 参数 | 类型 | 描述 |
|---|---|---|
| -a | string | API key to link to your account |
| -c | string | 频道 |
| —text | boolean | 输出文本而不是表情符号 |
| —package-json | string | 多包项目的package.json文件路径(逗号分隔) |
| —node-modules | string | 多包项目的node_modules目录路径(逗号分隔) |
| —supa-host | string | 自定义 Supabase 主机 URL(用于自主托管或 Capgo 开发) |
| —supa-anon | string | 自定义 Supabase 匿名密钥(用于自主托管) |
🔹 发布类型
发布类型npx @capgo/cli@latest bundle releaseType🧭 根据与频道最新元数据的兼容性打印“原生”或“OTA”。
示例:
npx @capgo/cli@latest bundle releaseType com.example.app --channel production选项:
| 参数 | 类型 | 描述 |
|---|---|---|
| -a | string | API 与您的帐户关联的密钥 |
| -c | string | 与之比较的频道 |
| —package-json | string | 多包项目的package.json文件路径(逗号分隔) |
| —node-modules | string | 多包项目的node_modules目录路径(逗号分隔) |
| —supa-host | string | Custom Supabase host URL (for self-hosting or Capgo development) |
| —supa-anon | string | 自定义 Supabase 匿名密钥(用于自主托管) |
🗑️ 删除
删除别名: d
npx @capgo/cli@latest bundle delete🗑️ 从 Capgo 云中删除特定包, optionally 目标单个版本。
示例:
npx @capgo/cli@latest bundle delete BUNDLE_ID com.example.app选项:
| 参数 | 类型 | 描述 |
|---|---|---|
| -a | string | API |
| 自定义 Supabase 主机 URL(用于自主托管或 __CAPGO_KEEP_0__ 开发) | string | Custom Supabase host URL (for self-hosting or Capgo development) |
| 列表 | string | 名为“ 📋 列表”的部分 |
别名: l
npx @capgo/cli@latest bundle list📋 为应用程序列出所有已上传的包:Capgo Cloud
示例:
npx @capgo/cli@latest bundle list com.example.app选项:
| 参数 | 类型 | 描述 |
|---|---|---|
| -a | string | API key to link to your account |
| —supa-host | string | 自定义 Supabase 主机 URL(用于自主托管或 Capgo 开发) |
| —supa-anon | string | 自定义 Supabase 匿名密钥(用于自主托管) |
🧹 Cleanup
标题: 🧹 Cleanup别名: c
npx @capgo/cli@latest bundle cleanup🧹 删除 Capgo 云中的旧包,保留指定数量的最近版本。 与频道相关的包除非使用 —ignore-channel,否则将被保留。
示例:
npx @capgo/cli@latest bundle cleanup com.example.app --bundle=1.0 --keep=3选项:
| 参数 | 类型 | 描述 |
|---|---|---|
| -b | string | 要删除的应用程序的包版本号 |
| -a | string | API 与您的帐户关联的密钥 |
| -k | string | 保留的版本数量 |
| -f | boolean | 强制删除 |
| —ignore-channel | boolean | 即使与频道相关,仍删除包装(警告:也会删除频道) |
| —supa-host | string | Custom Supabase host URL (for self-hosting or Capgo development) |
| —supa-anon | string | 自定义 Supabase 匿名密钥(用于自主托管) |
🔒 加密
标题:加密npx @capgo/cli@latest bundle encrypt🔒 为安全外部存储加密一个 zip 包。 返回用于上传/解密的 ivSessionKey。使用 ‘bundle zip —json’ 获取校验和。
示例:
npx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM选项:
| 参数 | 类型 | 描述 |
|---|---|---|
| —key | string | 自定义私钥路径 |
| —key-data | string | 私钥 |
| -j | boolean | 输出为 JSON |
| —package-json | string | 多包仓库的package.json文件路径(以逗号分隔) |
🔓 解密
标题:解密(🔓)npx @capgo/cli@latest bundle decrypt解密一个加密的包(主要用于测试)。 打印base64会话密钥以进行验证。
示例:
npx @capgo/cli@latest bundle decrypt ./myapp_encrypted.zip CHECKSUM选项:
| 参数 | 类型 | 描述 |
|---|---|---|
| —key | string | 私有签名密钥的自定义路径 |
| —key-data | string | 私有签名密钥 |
| —checksum | string | 校验包的完整性 |
| —package-json | string | 多包项目的package.json文件路径(以逗号分隔) |
🔹 压缩包
名为“ 🔹 压缩包”的部分npx @capgo/cli@latest bundle zip🗜️ 生成应用程序包的压缩文件。 返回用于加密的校验和。使用 —json 可以获得机器可读的输出。
示例:
npx @capgo/cli@latest bundle zip com.example.app --path ./dist选项:
| 参数 | 类型 | 描述 |
|---|---|---|
| -p | string | 上传文件夹的路径,如果未提供,则使用capacitor.config中的webDir |
| -b | string | zip文件的版本号 |
| -n | string | zip文件的名称 |
| -j | boolean | 以JSON输出 |
| —no-code-check | boolean | 忽略源code和根目录中的index文件中是否调用了notifyAppReady() |
| —key-v2 | boolean | 使用加密v2 |
| —package-json | string | 多包项目的package.json文件路径(逗号分隔) |