跳过内容

日志

日志和日志洞察

日志和日志洞察

应用 日志 tab opens 日志洞察 默认情况下。使用洞察来优先分类、版本和设备,时间范围为1、3、7或30天。切换到 日志 上下文: Capgo Builder / 原生云构建产品页面。角色: 短 UI 标签或导航项。见于: 页面 native-build.astro。消息键 `native_build_v2_trust_logs_lbl` (Native Build V2 Trust Logs Lbl)。

子标签,当您需要以下设备事件、过滤器和时间戳时。

理解应用程序日志

The raw Logs subtab provides a detailed history of update events and diagnostic information for your application. It is useful for confirming the device-level evidence behind an Insight, troubleshooting an update path, and understanding how devices interact with Capgo. Open an app, choose 原始日志子标签提供了应用程序更新事件和诊断信息的详细历史记录。它有助于确认设备级别的洞察证据、排查更新路径以及了解设备如何与 __CAPGO_KEEP_0__ 交互。打开一个应用程序,选择日志 上下文: Capgo Builder / 原生云构建产品页面。角色: 短 UI 标签或导航项。见于: 页面 native-build.astro。消息键 `native_build_v2_trust_logs_lbl` (Native Build V2 Trust Logs Lbl)。 ,然后选择的子标签。

原始日志标签概述,显示主界面
原始日志标签

原始日志界面包括:

  1. 日志子标签 ——用于控制单个日志行的导航控件。
  2. 刷新按钮 ——使用最新数据刷新日志列表。
  3. 时间范围和操作过滤器 ——通过时间和操作来缩小事件流。

每行显示:

  • 时间戳 (UTC)
  • 设备 ID
  • 动作 code (发生了什么)
  • 版本名称 (包或) builtin)

点击一行以跳转到该设备详细页面查看其完整历史记录。

按时间范围过滤

标题:按时间范围过滤

您可以使用日期选择器在特定时间段内过滤日志:

用于过滤日志的日期选择器
按时间范围过滤
  1. 快速预设 - 选择常见时间范围:1小时、3小时、6小时或12小时
  2. 开始时间 - 为时间范围设置自定义开始时间
  3. 结束时间 - 为时间范围设置自定义结束时间
  4. 日历 - 使用日历视图选择特定日期

点击“选择”以应用所选日期范围,或者“取消”以关闭日历选择器。

根据动作类型进行过滤

标题:根据动作类型进行过滤

动作下拉菜单允许您通过特定事件类型来过滤日志:

动作过滤下拉菜单,用于根据事件类型过滤日志
操作过滤器

可用的操作过滤器包括:

  • 设备心跳 - 设备周期性健康检查
  • 版本删除请求 - 当一个捆绑包版本被删除时
  • 重置为默认版本 - 当设备恢复到内置捆绑包时
  • 版本安装成功 - 成功捆绑包安装
  • 新版本发送到设备 - 当Capgo向设备发送更新时
  • 版本安装失败 - 当捆绑安装失败

在顶部的搜索框中快速找到特定动作类型。您可以选择多个动作以显示匹配任何选定类型的日志。

示例日志片段(假数据)

标题:示例日志片段(假数据)
时间(UTC)设备ID动作版本它告诉您什么
2025-01-14 10:00:01A1B2C3get2.4.1设备询问 Capgo 是否有可用的更新
2025-01-14 10:00:03A1B2C3download_manifest_start2.4.1清单下载启动了; SDK 即将下载文件
2025-01-14 10:00:07A1B2C3download_402.4.1下载包完成40%
2025-01-14 10:00:12A1B2C3download_zip_complete2.4.1已完成zip下载
2025-01-14 10:00:13A1B2C3set2.4.1已安装包并标记为下一次运行
2025-01-14 10:05:00B9C8D7disableAutoUpdateToMajor1.9.0频道策略阻止了跳转到2.x
2025-01-14 10:05:05B9C8D7rateLimited内置设备达到请求限制;SDK将在重启前暂停

示例日志场景

标题:示例日志场景

为了帮助您了解日志的含义,我们提供了示例序列,展示了真实设备更新的旅程:

成功更新流程

标题:成功更新流程

这是您的日志中健康更新的样子:

时间设备ID动作版本说明
10:00:01a1b2c3d4get1.2.0设备检查更新并接收到版本 1.2.0 的信息
10:00:02a1b2c3d4download_101.2.0下载开始,10% 完成
10:00:03a1b2c3d4download_501.2.0下载中,50%
10:00:05a1b2c3d4download_complete1.2.0下载成功
10:00:06a1b2c3d4set1.2.0包安装并激活

设备已是最新

设备已是最新

当设备检查但已经有最新版本时:

时间设备ID操作版本这意味着什么
14:30:00e5f6g7h8noNew1.2.0设备已经处于最新版本,更新不需要

更新失败并回滚

标题:更新失败并回滚

当更新失败并设备回滚时:

时间设备ID操作版本什么意思
11:15:00i9j0k1l2get1.3.0设备接收到更新信息
11:15:02i9j0k1l2download_complete1.3.0下载完成
11:15:03i9j0k1l2set1.3.0设置了捆绑包
11:15:10i9j0k1l2update_fail1.3.0应用程序崩溃或 notifyAppReady() 未被调用 - 回滚触发
11:15:11i9j0k1l2reset内置设备回滚到内置版本

需要操作: 检查您的应用程序是否调用 notifyAppReady() 成功初始化后。请参见 插件文档 获取更多详细信息。

下载失败

下载失败部分

当网络问题阻止下载时:

时间设备ID动作版本说明
09:45:00m3n4o5p6get1.2.0设备接收到更新信息
09:45:01m3n4o5p6download_301.2.0下载开始但…
09:45:15m3n4o5p6download_fail1.2.0下载失败(网络超时、连接丢失等)

需要操作: 设备将在下次应用启动时自动重试。除非频繁发生此问题,否则无需执行任何操作。

计划限制已达到

计划限制已达到

当您的帐户达到设备限制时:

时间设备ID操作版本说明
16:00:00q7r8s9t0needPlanUpgrade-该设备将不会接收更新,直到您升级或账单周期重置

需要执行操作: 升级您的计划 或等待下一个账单周期

频道配置阻止更新

频道配置阻止更新

当频道设置阻止更新时:

时间设备ID操作版本说明
12:00:00u1v2w3x4disableAutoUpdateToMajor2.0.0设备在v1.x上无法自动更新到v2.x(重大版本跳转被阻止)
12:05:00y5z6a7b8disableEmulator1.2.0检测到模拟器,频道阻止模拟器
12:10:00c9d0e1f2disableDevBuild1.2.0检测到开发版,频道阻止开发版

需要采取行动: 这些都是有意的保护措施。如果您想允许这些更新,修改您的 频道设置.

日志代码(Capgo 后端枚举)

标题:日志代码(Capgo 后端枚举)

这些代码来自 stats_action 枚举由控制台API(capgo/src/types/supabase.types.ts)使用。如果您在UI中看到一个新的code,它是由SDK或后端发出的,并且已验证为此列表中的项。

快乐路径&生命周期

Code(s)含义
get设备请求 Capgo 当前渠道清单
download_manifest_start, download_manifest_complete开始/完成清单下载(对于delta或多文件包)
download_zip_start, download_zip_complete开始/完成zip压缩包下载
download_10download_90下载进度里程碑
download_0下载进度首次标记(0%)
download_complete下载完成
set准备下次启动
reset设备切回内置包
delete从本地存储中删除包
uninstall应用卸载检测
app_moved_to_foreground, app_moved_to_backgroundSDK记录的应用程序生命周期事件
ping设备的健康/心跳检查
setChannel, getChannel通过SDK调用覆盖或获取频道

新政策阻塞/速率限制快速修复

新政策阻塞/速率限制快速修复
Code为什么会这样下一步该怎么做
invalidIpCapgo检测到类似机器人流量(Google/云基础设施IP)忽略真实用户;从真实设备和正常网络重试,或者稍后检查
needPlanUpgrade组织达到计划/设备限制在仪表板中升级计划或等待下一个billing周期
semver_errorNative app 版本在 config 中丢失或无效的 semver (x.y.z).设置 plugins.CapacitorUpdater.version 为有效的 semver, 然后在 SemVer 测试器 中验证并重建应用。 iOS 在渠道策略中被禁用。
disablePlatformIos如果这是意外的,请在该渠道中启用 iOS 并重新发布路由。如果您故意在此跟踪中阻止 iOS,保持禁用状态并将 iOS 构建移到一个单独的渠道。Android 在渠道策略中被禁用。
disablePlatformAndroid如果这是意外的,请在该渠道中启用 Android 并重新发布路由。如果您故意在此跟踪中阻止 Android,保持禁用状态并将 Android 构建移到一个单独的渠道。渠道自动更新模式阻止此更新风格。
disableAutoUpdate更改渠道自动更新策略(主/次/修订/元数据/无)以允许您的意图发布。渠道设置为阻止更新,更新版本小于设备基线。
disableAutoUpdateUnderNative__CAPGO_KEEP_0__推送一个在本机基线以上或等于的版本,或者禁用本机保护。
disableAutoUpdateMetadata渠道需要 min_update_version 元数据和应用程序较旧。设置 min_update_version 为目标捆绑包或发布从新本机版本。
disableAutoUpdateToMajor该渠道阻止主版本跳转。保持主版本在同一渠道策略中,或者允许主版本跳转。
disableAutoUpdateToMinor该渠道阻止次版本跳转。保持次版本在同一渠道策略中,或者允许次版本跳转。
disableAutoUpdateToPatch该渠道阻止此流程的补丁级别跳转。对齐您的发布节奏,或者在此通道策略中打开补丁级别跳转。
disableEmulator此渠道不允许模拟器更新。如果这是意外的,请在测试频道中启用模拟器更新,在那里您验证模拟器。如果这是有意的,请在模拟器频道上阻止此频道并使用另一个频道进行模拟器构建。
disableDevBuild此频道的开发版已被阻止。如果这是意外的,请允许开发版更新或将设备移动到启用开发版的频道。如果这是有意的,请将此频道锁定为仅发布版本。
disableProdBuild在生产模式下构建的设备称为 /updates,而您的频道阻止了它。如果这是意外的,请在该频道中允许生产更新并重新发布。如果这是有意的,请保留限制并将生产版本发送到正确的频道/构建。
cannotGetBundleCapgo 未能为所选捆绑包构建有效的下载 URL。重新上传捆绑包或重新生成清单并检查 R2/public 捆绑包设置。
cannotUpdateViaPrivateChannel应用程序尝试将自己切换到不允许自我赋值的私有频道。请在频道上启用 allow_device_self_set 或切换到公共/允许频道。
channelMisconfigured频道自动更新规则缺少所需数据(version_number 没有 min_update_version).填充缺失的配置以适应该规则或切换到更简单的自动更新模式。
missingBundle无下载负载(缺失 external_url/r2_path 和没有清单)。重建/重新上传版本并验证捆绑包有真实文件内容。
NoChannelOrOverride没有匹配该设备的频道(没有云默认 + 没有配置回退 + 没有覆盖)。在控制台中设置频道默认值或保留测试 defaultChannel 在该构建中。
rateLimited在短时间内调用太多更新/频道调用(通常是渲染循环 setChannel/getChannel).停止在渲染中调用。只在用户操作时调用。使用 defaultChannelcapacitor.config.
keyMismatch应用和捆绑包加密密钥ID不同(device_key_id vs bundle_key_id).在控制台中,比较设备和包裹密钥ID。如果它们不同,请使用相同的密钥和匹配的CLI/插件版本发布;密钥编码可能在版本之间有所不同。
disableDevice因为这个频道设置为阻止真实设备,这个真实手机/平板被阻止了。如果是意外的,请在这个频道中打开真实设备更新。如果是有意的,请保持它被阻止,路由真实设备到另一个频道。
disablePlatformElectron在这个频道中,Electron被阻止。如果这是意外的,请在这个频道中启用Electron并重新发布路由。如果是有意的,请保持它被阻止,并将Electron用户路由到一个专门的频道。
customIdBlocked发送了一个自定义设备ID,但这个应用程序不接受自定义ID。关闭自定义ID发送或仅在您的工作流程要求它时启用自定义ID。
blocked_by_server_url这个应用程序已 server.url 配置了,所以Capacitor会提供远程URL而不是本地文件。清除 server.url 用于生产构建并保持更新负载本地。
backend_refusal更新器已 v4, 后端不再接受。升级插件/CLI 到 v5 (+推荐 v8), 使用 Capacitor v5+, 然后重建并重新发布包元数据。
配置或策略块
Code(s)更新被阻止的原因
disableAutoUpdate, disableAutoUpdateToMajor, disableAutoUpdateToMinor, disableAutoUpdateToPatch, disableAutoUpdateMetadata, disableAutoUpdateUnderNative渠道策略禁止此 版本号跳跃
disablePlatformIos, disablePlatformAndroid平台在渠道上被禁用
disableDevBuild, disableEmulator开发版或模拟器不允许
disableProdBuild, disableDevice, disablePlatformElectron此频道下生产版、真实设备或Electron被阻止
customIdBlocked自定义设备ID不被允许
cannotUpdateViaPrivateChannel, NoChannelOrOverride, channelMisconfigured频道选择或覆盖失败
missingBundle, cannotGetBundle包Capgo无法提供的清单
needPlanUpgrade组织已达到计划/设备限制

下载/完整性/安装失败

Code(s)含义
download_fail包下载失败(网络或响应错误)
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解密失败(加密包)
update_fail包已安装但应用程序从未调用 notifyAppReady(); 回滚触发
download_zip_* 没有后续 set下载完成但安装阶段从未完成

运行时/平台事件

标题:运行时/平台事件
Code(s)含义
app_crash, app_crash_nativeJavaScript或本机运行时层面的崩溃事件。元数据通常包括堆栈、源代码和活动版本信息。
app_anrAndroid报告了一个Application Not Responding。
app_killed_low_memory, app_killed_excessive_resource_usage由于内存或资源限制,应用进程被终止。
app_initialization_failure, app_memory_warning应用启动过程中或在正常运行前,内存压力被观察到,启动被中断。
webview_javascript_error, webview_unhandled_rejection, webview_resource_error, webview_security_policy_violation, webview_unclean_restart, webview_render_process_gone, webview_content_process_terminatedWebView 生命周期和 JS/渲染错误。请在 JS 和原生层中安装 Sentry,捕获堆栈跟踪、会话/设备上下文和 URL/状态,以便更快地修复问题。
os_version_changed, native_app_version_changed操作系统或原生应用版本发生变化;这有助于将平台级别的发布效果与 Web 包行为区分开来。

➡️ 需要更深入的code指导?请参阅 Code 日志参考和调试指南.

获取更多关于日志的详细信息

标题:获取更多关于日志的详细信息

如果您点击特定日志条目,它通常会将您带到 设备的页面。这使您可以看到该设备的完整历史记录,这对于诊断设备特定问题或了解其更新旅程非常有帮助。

继续查看日志

继续从日志中前进

如果您正在使用 日志 to plan dashboard and API operations, connect it with API概览 了解API概览中的实施细节 简介 了解简介中的实施细节 API密钥 了解API密钥中的实施细节 设备 了解设备中的实施细节 功能包 功能包的实现细节。