iOS 追踪 `CUICatalog: Invalid asset name supplied: ''` 错误的操作指南

530 阅读2分钟

追踪 CUICatalog: Invalid asset name supplied: '' 错误的操作指南

在开发 iOS 应用时,有时会遇到 CUICatalog: Invalid asset name supplied: '' 错误,这是因为某些视图或控制器尝试加载一个不存在的资源。为了解决这个问题,可以按照以下步骤操作,逐步缩小问题范围并定位到无效的资源引用。

1. 设置符号断点

image.png

在 Xcode 中设置一个符号断点,帮助我们在问题发生时暂停代码执行,检查相关变量和调用堆栈。

  • 打开 Xcode 并导航到 断点导航器 (快捷键 Cmd+8)。

  • 点击左下角的 + 按钮,选择 符号断点

  • 在弹出的对话框中,输入可能与资源加载相关的符号,比如 +[UIImage imageNamed:inBundle:withConfiguration:]

  • 为了在每次调用该方法时查看信息,可以添加一个调试命令:

    po $x2
    

    $x2 是指调用堆栈中第二个参数,通常表示传递的资源名称。

  • 设置 auto continue(自动继续执行),这样程序不会每次都停止,直到你找到问题点。

2. 检查控制台日志

当错误发生时,查看控制台中的日志输出。Xcode 的控制台可能提供额外的信息,比如哪个视图或哪个控制器在尝试加载资源时出错。

  • 当断点被命中时,查看打印出来的 $x2 值,它可能会显示空的资源名称或某个无效的资源。
  • 通过这个信息,你可以推断出哪个视图或控制器触发了无效资源加载。

3. 逐步缩小范围

如果以上步骤中你没有立即找到问题的源头,可以尝试以下方法逐步缩小范围:

  • 在怀疑有问题的页面或视图控制器中,关闭 auto continue 选项。这样一旦命中断点,代码会暂停,你可以手动继续调试。
  • 尝试逐个页面或组件启用断点,并通过逐步排除法确定哪个页面或哪个组件引用了无效的资源。

总结

通过设置符号断点、检查控制台日志、逐步缩小调试范围,你可以更精确地定位到资源加载出错的地方,找到导致 CUICatalog: Invalid asset name supplied: '' 错误的源头。