常见更新问题
复制一个包含安装步骤和完整Markdown指南的设置提示。
当更新检查失败时,Capgo通常返回一个 error code和一个 message 在 /updates 响应中。这一页解释了最常见的失败和最快的修复。
先读这个
标题为“先读这个”的部分no_new_version_available是正常状态,而不是失败。- 许多“更新发现但未应用”的报告是政策/配置拒绝,而不是缓存延迟,尤其是响应中包含了明确的
errorcode。 - 使用
npx @capgo/cli@latest app debug为了复制问题,请查看请求/响应详细信息。
常见错误代码
常见错误代码disable_auto_update_to_major
禁用重大更新原因
您的频道阻止了主要升级(disable_auto_update = major)并且目标包的主要版本号高于设备基线版本。
典型症状
version: 1.0.8 表示设备报告基线 old: 0.0.0 ,因此拒绝了主要升级。 0.0.0如何解释它
with
后端使用设备基线和目标进行主要版本比较 old 如果目标是 version.
- ,基线主要版本必须是
1.0.1(例如1如果目标是1.0.0). - ,基线主要版本必须是
10.0.1(例如10修复选项 A(推荐):将设备基线主要版本与目标对齐10.0.0).
设置
在 plugins.CapacitorUpdater.version 以此方式 capacitor.config.* so its 重大版本 __CAPGO_KEEP_0__符合您要发布的捆绑包的重大版本(例如 1.0.0 对于 1.0.1, 10.0.0 对于 10.0.1).
然后将此配置应用到已安装的应用程序:
- 运行
npx cap sync. - 重新构建并重新安装本机应用程序。
修复选项 B:放宽渠道策略
在渠道设置中允许跨重大版本的自动更新(仅当该发布策略是有意的)。
相关文档:
disable_auto_update_to_minor / disable_auto_update_to_patch
标题:禁用到次要版本的自动更新 / 禁用到补丁版本的自动更新原因
渠道策略比正在提供的更新更严格(minor 或 patch)
解决方案
- 上传一个与当前策略兼容的捆绑包,或者
- 在控制台中更改渠道策略(CLI)
相关文档:
disable_auto_update_to_metadata
标题:禁用到元数据的自动更新原因
频道使用基于元数据的目标(version_number),并且设备基线低于所需值 min_update_version.
修复
- 将设备基线(
CapacitorUpdater.version)调整为安装的原生应用程序版本,或者 - 调整
min_update_version/频道策略。
相关文档:
disable_auto_update_under_native
标题:disable_auto_update_under_native原因
频道防止设备基线低于原生基线的下降
修复
- 上传一个版本大于或等于本机基线的捆绑包,或者
- 禁用“本机”降级保护该渠道。
相关文档:
cannot_update_via_private_channel
标题:无法通过私有渠道更新原因
选定的/默认渠道不允许设备自我分配。
修复
- 使用一个支持自我分配的不同渠道,或者
- 使渠道公共/启用自我分配。
相关文档:
unknown_version_build / semver_error
Section titled “unknown_version_build / semver_error”原因
设备基线版本缺失()或无效的 semver。unknown修复
设置
- 到一个有效的 semver,如
plugins.CapacitorUpdater.version同步并重建原生应用。1.2.3. - 相关文档:
Channels: Bundle Versioning and Channels
unsupported_plugin_version
Section titled “unsupported_plugin_version”原因
Updater 插件版本太旧,无法满足当前后端要求。
修复
- 升级
@capgo/capacitor-updater. - 运行
npx cap sync. - 重建并重新安装原生应用。
disabled_platform_ios / disabled_platform_android
Section titled “disabled_platform_ios / disabled_platform_android”原因
该频道已禁用该平台的更新。
修复
- 在频道中启用该平台的切换按钮。
disable_prod_build / disable_dev_build / disable_device / disable_emulator
禁用生产构建 / 禁用开发构建 / 禁用设备 / 禁用模拟器原因
当前渠道或运行时目标不被允许。
解决方案
- 将渠道选项()与您的测试目标对齐。
allow_prod,allow_dev,allow_device,allow_emulator密钥 ID 不匹配
key_id_mismatch
原因应用配置和捆绑加密流程中的设备密钥和捆绑加密密钥不相同。
解决方案
在应用配置和捆绑加密流程中使用相同的加密密钥/公共密钥。
- 无渠道 / null_channel_data
no_channel / null_channel_data
原因原因
未能为设备解析有效的渠道。
修复
- 设置云端的默认渠道,或者
- 在测试构建中设置
defaultChannel或者为设备分配渠道覆盖。 - 相关文档:
渠道
on_premise_app
原因后端返回HTTP 429
Related docs: __CAPGO_KEEP_0__ on_premise_app. 这三种情况下都会发生:
- 在 Capgo 中未找到 App ID — 设备发送的信息未注册,后端因此无法找到它的记录。
app_idApp 被标记为本地部署 - — App 存在,但配置为自主更新,因此 __CAPGO_KEEP_0__ 云端点拒绝为其服务。 — the app exists but is configured for self-hosted updates, so the Capgo cloud endpoint refuses to serve it.
- — App 的组织已失去活跃订阅。 常见错误
在 __CAPGO_KEEP_0__ 中的 App ID 中出现了拼写错误,或者与注册在 __CAPGO_KEEP_0__ 控制台中的 App ID 不符。后端无法区分“未知 App”和“本地部署 App”,因此返回相同的错误 __CAPGO_KEEP_1__.
texts plugins.CapacitorUpdater.appId App ID capacitor.config.ts) or a mismatch with the app ID registered in the Capgo dashboard. The backend cannot distinguish “unknown app” from “on-premise app”, so it returns the same error code.
修复
- 确认
app_id与Capgo控制台中显示的内容完全匹配(大小写敏感)。 - 如果应用程序尚未注册,请运行
npx @capgo/cli@latest app add. - 如果应用程序是本地部署的,请设置
plugins.CapacitorUpdater.updateUrl到您的自有更新端点而不是Capgo云URL。 - 如果组织计划已过期,请续订或升级计划。
快速诊断清单
快速诊断清单- 确认应用程序ID和渠道与构建正确。
- 确认
CapacitorUpdater.version与安装的原生应用程序版本匹配。 - 确认渠道策略 (
disable_auto_update) 符合预期的发布。 - 确认平台/构建目标切换允许此设备。
- 运行
npx @capgo/cli@latest app debug并阅读后端错误 code。