跳过内容

调试

理解云日志:

标题:理解云日志:

如果您收到云拒绝 code 并需要具体的修复步骤,请参阅 常见更新问题.

Capgo 日志可以包含事件的元数据。在仪表盘中,使用动作过滤器过滤以下列的蛇形动作 code 列表,并点击元数据单元格以复制完整的 JSONayload。元数据对于崩溃和 WebView 事件特别有用,因为它可以包含上下文信息,如错误消息、源 URL、行和列、进程状态、内存压力或平台特定原因。旧日志仍然可以显示遗留的 camelCase 别名(括号内)。

code描述
无效 IP (__CAPGO_KEEP_0__)用户位于Google数据中心,更新时间小于4小时。这个是为了防止Google机器人设备被计入您的帐户。
__CAPGO_KEEP_1__ (__CAPGO_KEEP_1__之前 __CAPGO_KEEP_2__)表示您已达到计划限制,设备将不会接收更新,直到您升级或下个月。
__CAPGO_KEEP_3__ (设备已有最新可用的版本。)__CAPGO_KEEP_4__
原生版本不符合预期的语义版本格式。InvalidIp
禁用的平台:iOS (disablePlatformIos)设备位于iOS平台,但在渠道设置中已禁用。
禁用的平台:Android (disablePlatformAndroid)设备位于Android平台,但在渠道设置中已禁用。
禁用自动更新 (disableAutoUpdate)自动更新已禁用,由兼容性政策所致。元数据包括 auto_update 匹配规则,如 major, minor, patch, metadatanone.
禁用在原生环境下的自动更新 (__CAPGO_KEEP_0__)设备版本为 (1.2.3),但该设备版本下有一个更新 (1.2.2),但该更新在渠道设置中已被禁用。
__CAPGO_KEEP_0__ (__CAPGO_KEEP_0__)设备是开发版,但在渠道设置中已被禁用。
__CAPGO_KEEP_0__ (__CAPGO_KEEP_0__)设备是模拟器,但在渠道设置中已被禁用。
__CAPGO_KEEP_0__ (__CAPGO_KEEP_0__)生成有效的签名 URL 失败,无法下载 bundle。这通常是因为 bundle URL 生成失败或返回无效 URL,而没有可用的 manifest 作为备份。
无法通过私有频道更新 (无法通过私有频道更新)设备尝试自行与私有频道建立关联,但频道设置不允许设备自行关联(allow_device_self_set 频道配置错误
频道配置错误 (频道设置为通过版本号禁用自动更新()),但 bundle 的disable_auto_update: 'version_number'元数据禁用自动更新 min_update_version 禁用元数据自动更新
禁用元数据自动更新 (禁用元数据自动更新)根据版本号元数据,自动更新已被禁用。该频道要求设备的版本至少为 min_update_version但是设备的当前版本低于此阈值。
disable_auto_update_to_major (disableAutoUpdateToMajor)频道设置 disable_auto_update: 'major' 防止更新增加主版本号,例如阻止 1.x.x 从更新到 2.x.x.
disable_auto_update_to_minor (disableAutoUpdateToMinor)频道设置 disable_auto_update: 'minor' 防止更新增加次版本号,例如阻止 1.2.x 从更新到 1.3.x.
disable_auto_update_to_patch (disableAutoUpdateToPatch)频道设置 disable_auto_update: 'patch' 此设置防止更新升级补丁版本号,或者仅允许在同一主版本号.次版本号范围内进行补丁级别更新。
missing_bundle (missingBundle)分配给此频道的包没有可下载的内容。这意味着包没有 external_url没有 r2_path它不是内置版本,并且没有可下载的清单条目。
no_channel (NoChannelOrOverride)设备没有为此应用程序配置默认频道,并且没有特定的频道重写。至少需要一个才能让更新工作。
速率限制 (rateLimited)设备因过多请求而被速率限制。
密钥ID不匹配 (keyMismatch)设备的加密公钥与用来加密捆绑包的公钥不符。元数据包括 device_key_id, bundle_key_id, 和 version 帮助识别不匹配。
code描述
ping内部测试动作,用于验证统计系统是否正常工作。
get已将下载新版本的信息发送到设备。
delete已在设备上删除一个捆绑包。
set已在设备上设置一个捆绑包。
set_fail捆绑包设置失败。
reset设备已重置为初始状态。 builtin 打包。
下载 XX已下载新打包 - 进度由 XX% (10% 增量) 指示。
下载完成新打包下载完成。
下载更新清单开始设备开始下载更新清单。
下载更新清单完成设备完成下载更新清单。
下载打包存档开始设备开始下载打包存档。
下载打包存档完成设备完成下载了捆绑包存档。
__CAPGO_KEEP_0__下载的清单项失败;统计数据载荷表明 version_name __CAPGO_KEEP_0__ version:fileName 以 pinpoint 资产。
__CAPGO_KEEP_0__清单文件校验和验证失败。
__CAPGO_KEEP_0__清单文件使用 Brotli 解压失败。
__CAPGO_KEEP_0__新捆绑包下载失败。
__CAPGO_KEEP_0__新包已安装但未能成功调用 notifyAppReady.
checksum_fail新包未能验证校验和。这可能是由于以下原因: 1) 校验和类型不匹配: 最新版本的CLI和插件(版本5.10.0+,6.25.0+或7+)使用SHA256校验和,而旧版本的插件使用CRC32。如果您看到校验和失败,请检查校验和是否为CRC32(较短的哈希值)而不是SHA256。这通常表明包已上传旧版本的CLI。请在Capgo控制台中验证包版本 - 自版本5.10.0/6.25.0/7创建的包应使用SHA256。如果您看到CRC32校验和,请确保您已安装最新的插件版本(CLI检查您的本地插件版本以确定要上传的校验和类型),然后升级您的CLI并重新上传包。 2) 加密密钥不匹配(在插件版本8.3.0或5/6/7.38.0以下): 在旧版本的插件中,如果设备的公钥与用于加密包的密钥不匹配,解密将会失败并导致校验和失败。如果您正在使用加密并看到 checksum_fail请验证您的应用的 capacitor.config.json 与上传包的私钥是否匹配。升级到插件版本8.3.0+(或5/6/7.38.0+)将使服务器返回一个合适的 keyMismatch 错误,使诊断此问题更容易。
windows_path_fail压缩包中包含非法的Windows路径
canonical_path_fail文件路径不规范
directory_path_fail压缩文件路径错误
unzip_fail解压失败
low_mem_fail下载失败,设备内存不足
app_moved_to_background应用程序进入后台
app_moved_to_foreground应用程序进入前台
app_crash应用程序在 JavaScript 或 Capacitor层检测到崩溃。元数据可以包含消息、堆栈、源代码和活动捆绑上下文。
app_crash_native本机层报告了平台崩溃。元数据可以包含平台、原因、堆栈和可用进程详细信息。
app_anrAndroid 报告了应用程序未响应事件。元数据可以包含 ANR 原因、线程或可用跟踪摘要。
app_killed_low_memory由于低内存压力,应用程序进程被杀死。元数据可以包含可用内存和平台信号。
app_killed_excessive_resource_usage由于资源使用过多,操作系统杀死了应用程序。元数据可以包含资源类型或平台原因。
app_initialization_failure应用程序启动流程或更新器在正常运行时间准备就绪之前失败。元数据可以包含失败步骤和错误消息。
app_memory_warningiOS已报告内存警告。可包含活动包和可用的内存上下文。
webview_javascript_errorWebView报告未捕获的JavaScript错误。可包含错误消息、源URL、行号、列号和堆栈信息。
webview_unhandled_rejectionWebView报告未处理的Promise拒绝。可包含拒绝原因、源URL和堆栈信息。
webview_resource_errorWebView资源加载失败。可包含URL、状态code、资源类型和错误消息。
webview_security_policy_violationWebView报告内容安全策略违规。可包含被阻止的URI、指令和文档URL。
webview_unclean_restart应用程序检测到之前的WebView会话未正常关闭。这可以帮助识别更新后可能出现的死循环。
Android WebView 渲染进程已退出Android 报告 WebView 渲染进程已退出。元数据可能包含渲染器是否崩溃以及渲染器优先级。
iOS WebView 内容进程已终止iOS 报告 WebView 内容进程已终止。可用的元数据可能包含活动包和页面 URL。
下载的包未能解密getChannel
获取设备当前的频道 (setChannel)成功设置设备的频道
__CAPGO_KEEP_0__ (__CAPGO_KEEP_0__)__CAPGO_KEEP_0__
卸载应用程序已卸载或Capgo数据已清除。
被服务器阻止的URL您的capacitor配置中存在Server.url,这使得Capacitor以远程URL而不是本地文件为服务,而我们的更新程序则是以本地文件为服务。Server.url被Capacitor的开发者认为在生产环境中是坏的做法,并可能导致许多问题和插件无法正常工作。

捆绑状态

捆绑状态
  • SUCCESS:捆绑安装完成
  • ERROR:捆绑安装或下载失败
  • PENDING:下载完成,待发布
  • DELETED:捆绑已删除,但仍用于统计
  • DOWNLOADING:当前下载捆绑

为Capgo云用户提供了一个调试命令。

终端窗口
npx @capgo/cli@latest app debug

这将允许您检查应用中发生的所有事件,并在更新未发生时找到解决方案。

在Xcode中找到您的日志

Android:

Android:

在 Android Studio 中找到您的日志

日志说明

日志说明
  • Failed to download from => 相同 下载失败
  • notifyAppReady was not called, roll back current bundle => 与上述相同 更新失败

在您的设备中找到下载的包

在您的设备中找到下载的包

iOS

iOS

在 iOS 上调试时,您需要将应用程序下载到您的计算机上,方法如下:

Xcode 内置了用于检查 iOS 设备上开发者安装的应用程序文件系统的功能。 Xcode 窗口菜单显示 Devices 和 Simulators 选项

要实现此功能:

  • 将您的设备连接到 Mac,然后在 Xcode 菜单栏中选择窗口 > 设备。
  • 在左侧的 Devices 部分中选择您的设备。
  • 这将显示该设备上的开发者安装的应用程序列表。
  • 选择要检查的应用程序,然后选择屏幕底部附近的 3 个点图标。
  • 在此处,您可以通过选择下载应用程序文件系统快照来查看当前文件系统。

Xcode 设备面板显示应用程序容器下载选项

选择 Download Container… 将下载并导出应用程序文件系统快照的 .xcappdata 文件供您浏览。

下载了 xcappdata 文件并显示包内容上下文菜单

右键单击此文件并选择“显示包内容”以打开文件夹。

打开 App Data 文件夹,您应该现在看到几个文件夹,如 Documents、Library、tmp 等。

iOS 应用容器文件夹结构显示 Documents 和 Library 文件夹

然后您会在 2 个文件夹中找到一个版本:

library/NoCloud/ionic_built_snapshots 在应用重启后是必要的

documents/versions 用于热重载

要在 Android 上调试,您需要从 Android Studio 访问设备:

  • 单击“视图”> “工具窗口”> “设备文件浏览器”或单击工具窗口栏上的“设备文件浏览器”按钮以打开“设备文件浏览器”。
  • 从下拉列表中选择一个设备。
  • 打开路径 data/data/APP_NAME/ 在这里 APP_NAME是您的应用ID。

Android Studio设备文件浏览器显示应用数据目录

然后找到 versions 文件夹以查看所有版本