日志
理解应用程序日志
Section titled “理解应用程序日志”日志页面提供了应用程序更新事件和诊断信息的详细历史记录。这对于监控更新过程、解决问题以及了解设备如何与 Capgo 交互至关重要。您可以通过点击您的应用然后点击”日志”标签(在一些较旧的屏幕截图或文档中以前称为”更新”)来访问它。
从那里您应该看到类似这样的页面,显示日志条目列表:

日志页面界面包括:
- 日志标签 - 访问日志视图的导航标签
- 重新加载按钮 - 用最新数据刷新日志列表
- 时间范围和操作过滤器 - 按日期范围和操作类型过滤日志(参见下面的部分)
每行显示:
- 时间戳(UTC)
- 设备 ID
- 操作代码(发生了什么)
- 版本名称(bundle 或
builtin)
点击一行可跳转到设备详细页面查看完整历史记录。
按日期范围过滤
Section titled “按日期范围过滤”您可以使用日期选择器按特定时间段过滤日志:

- 快速预设 - 选择常用时间范围:最近 1 小时、3 小时、6 小时或 12 小时
- 开始时间 - 设置范围的自定义开始时间
- 结束时间 - 设置范围的自定义结束时间
- 日历 - 使用日历视图选择特定日期
点击”选择”应用您选择的日期范围,或点击”取消”关闭选择器。
按操作类型过滤
Section titled “按操作类型过滤”操作下拉菜单允许您按特定事件类型过滤日志:

可用的操作过滤器包括:
- 设备心跳 - 设备的定期健康检查
- 请求删除版本 - 当 bundle 版本被删除时
- 重置为默认版本 - 当设备恢复到内置 bundle 时
- 版本安装成功 - bundle 安装成功
- 新版本已发送到设备 - 当 Capgo 向设备发送更新时
- 版本安装失败 - 当 bundle 安装失败时
使用顶部的搜索框快速查找特定的操作类型。您可以选择多个操作来显示与所选任何类型匹配的日志。
示例日志片段(虚假数据)
Section titled “示例日志片段(虚假数据)”| 时间 (UTC) | 设备 ID | 操作 | 版本 | 含义 |
|---|---|---|---|---|
| 2025-01-14 10:00:01 | A1B2C3 | get | 2.4.1 | 设备向 Capgo 询问是否有可用更新 |
| 2025-01-14 10:00:03 | A1B2C3 | download_manifest_start | 2.4.1 | 清单下载已启动;SDK 即将下载文件 |
| 2025-01-14 10:00:07 | A1B2C3 | download_40 | 2.4.1 | bundle 下载完成 40% |
| 2025-01-14 10:00:12 | A1B2C3 | download_zip_complete | 2.4.1 | zip 下载完成 |
| 2025-01-14 10:00:13 | A1B2C3 | set | 2.4.1 | bundle 已安装并标记为下次运行 |
| 2025-01-14 10:05:00 | B9C8D7 | disableAutoUpdateToMajor | 1.9.0 | 频道策略阻止了到 2.x 的跳跃 |
| 2025-01-14 10:05:05 | B9C8D7 | rateLimited | builtin | 设备达到请求限制;SDK 等待直到重启 |
示例日志场景
Section titled “示例日志场景”为帮助您理解日志所传达的信息,以下是展示真实设备更新历程的示例序列:
成功的更新流程
Section titled “成功的更新流程”这是日志中健康更新的样子:
| 时间 | 设备 ID | 操作 | 版本 | 含义 |
|---|---|---|---|---|
| 10:00:01 | a1b2c3d4 | get | 1.2.0 | 设备检查更新并收到版本 1.2.0 信息 |
| 10:00:02 | a1b2c3d4 | download_10 | 1.2.0 | 下载开始,完成 10% |
| 10:00:03 | a1b2c3d4 | download_50 | 1.2.0 | 下载 50% |
| 10:00:05 | a1b2c3d4 | download_complete | 1.2.0 | 下载成功完成 |
| 10:00:06 | a1b2c3d4 | set | 1.2.0 | bundle 已安装并激活 |
设备已是最新
Section titled “设备已是最新”当设备检查但已有最新版本时:
| 时间 | 设备 ID | 操作 | 版本 | 含义 |
|---|---|---|---|---|
| 14:30:00 | e5f6g7h8 | noNew | 1.2.0 | 设备已是最新版本,无需更新 |
带回滚的失败更新
Section titled “带回滚的失败更新”当更新失败并且设备回滚时:
| 时间 | 设备 ID | 操作 | 版本 | 含义 |
|---|---|---|---|---|
| 11:15:00 | i9j0k1l2 | get | 1.3.0 | 设备收到更新信息 |
| 11:15:02 | i9j0k1l2 | download_complete | 1.3.0 | 下载完成 |
| 11:15:03 | i9j0k1l2 | set | 1.3.0 | bundle 已设置 |
| 11:15:10 | i9j0k1l2 | update_fail | 1.3.0 | 应用崩溃或未调用 notifyAppReady() - 触发回滚 |
| 11:15:11 | i9j0k1l2 | reset | builtin | 设备恢复到内置版本 |
需要的操作:检查您的应用是否在成功初始化后调用 notifyAppReady()。详情参见插件文档。
当网络问题阻止下载时:
| 时间 | 设备 ID | 操作 | 版本 | 含义 |
|---|---|---|---|---|
| 09:45:00 | m3n4o5p6 | get | 1.2.0 | 设备收到更新信息 |
| 09:45:01 | m3n4o5p6 | download_30 | 1.2.0 | 下载开始但是… |
| 09:45:15 | m3n4o5p6 | download_fail | 1.2.0 | 下载失败(网络超时、连接丢失等) |
需要的操作:设备将在下次应用启动时自动重试。除非频繁发生,否则无需操作。
达到计划限制
Section titled “达到计划限制”当您的账户达到设备限制时:
| 时间 | 设备 ID | 操作 | 版本 | 含义 |
|---|---|---|---|---|
| 16:00:00 | q7r8s9t0 | needPlanUpgrade | - | 此设备在您升级或计费周期重置之前不会收到更新 |
需要的操作:升级您的计划或等待下一个计费周期。
频道配置阻止更新
Section titled “频道配置阻止更新”当频道设置阻止更新时:
| 时间 | 设备 ID | 操作 | 版本 | 含义 |
|---|---|---|---|---|
| 12:00:00 | u1v2w3x4 | disableAutoUpdateToMajor | 2.0.0 | v1.x 上的设备无法自动更新到 v2.x(主版本跳跃被阻止) |
| 12:05:00 | y5z6a7b8 | disableEmulator | 1.2.0 | 检测到模拟器,频道阻止模拟器 |
| 12:10:00 | c9d0e1f2 | disableDevBuild | 1.2.0 | 检测到开发构建,频道阻止开发构建 |
需要的操作:这些是有意的保护。如果您想允许这些更新,请修改您的频道设置。
日志代码(Capgo 后端枚举)
Section titled “日志代码(Capgo 后端枚举)”这些代码来自仪表板 API 使用的 stats_action 枚举(capgo/src/types/supabase.types.ts)。如果您在 UI 中看到新代码,它是由 SDK 或后端发出的,并已针对此列表进行验证。
正常路径和生命周期
| 代码 | 含义 |
|---|---|
get | 设备向 Capgo 请求当前频道清单 |
download_manifest_start, download_manifest_complete | 清单下载开始/完成(用于增量或多文件 bundle) |
download_zip_start, download_zip_complete | zip 归档下载开始/完成 |
download_10 … download_90 | 下载进度里程碑 |
download_complete | 整个 bundle 已下载 |
set | bundle 已准备好下次启动 |
reset | 设备恢复到内置 bundle |
delete | bundle 从本地存储中删除 |
uninstall | 检测到应用卸载 |
app_moved_to_foreground, app_moved_to_background | SDK 记录的应用生命周期事件 |
ping | 设备的健康/心跳检查 |
setChannel, getChannel | 通过 SDK 调用覆盖或获取频道 |
配置或策略阻止
| 代码 | 为什么更新被阻止 |
|---|---|
disableAutoUpdate, disableAutoUpdateToMajor, disableAutoUpdateToMinor, disableAutoUpdateToPatch, disableAutoUpdateMetadata, disableAutoUpdateUnderNative | 频道策略禁止此 semver 跳跃 |
disablePlatformIos, disablePlatformAndroid | 平台在频道上被禁用 |
disableDevBuild, disableEmulator | 不允许开发构建或模拟器 |
cannotUpdateViaPrivateChannel, NoChannelOrOverride, channelMisconfigured | 频道选择或覆盖失败 |
missingBundle, cannotGetBundle | 清单引用了 Capgo 无法提供的 bundle |
needPlanUpgrade | 组织达到其计划/设备限制 |
rateLimited | 请求过多;SDK 限制直到重启 |
blocked_by_server_url, backend_refusal, InvalidIp | 服务器端规则阻止了请求 |
下载/完整性/安装失败
| 代码 | 含义 |
|---|---|
download_fail | bundle 下载失败(网络或响应错误) |
download_manifest_file_fail, download_manifest_checksum_fail, download_manifest_brotli_fail | 清单文件无法检索或验证 |
checksum_fail, checksum_required | 完整性检查失败或缺少校验和 |
unzip_fail, directory_path_fail, canonical_path_fail, windows_path_fail | 文件系统或解压验证失败 |
decrypt_fail | 解密失败(加密的 bundle) |
update_fail | bundle 已安装但应用从未调用 notifyAppReady();触发回滚 |
download_zip_* 后没有 set | 下载完成但安装阶段从未完成 |
➡️ 需要每个代码的更深入指导?参见**完整日志代码参考和调试指南**。
获取有关日志的更多详细信息
Section titled “获取有关日志的更多详细信息”如果您点击特定的日志条目,它通常会将您带到设备页面。这允许您查看该特定设备的完整历史记录,这对于诊断特定于设备的问题或了解其更新历程非常有帮助。