tdc*_*tdc 55 debugging xcode ios
我在使用 iPhone 11 Pro 或 iPad Pro 作为物理设备目标构建任何应用程序时遇到问题。带有 Hello World 的标准模板应用程序的新实例需要一些时间才能在手机上构建和安装,但随后该应用程序会在黑屏上冻结。控制台报告以下内容。
warning: libobjc.A.dylib is being read from process memory. This indicates that LLDB could not find the on-disk shared cache for this device. This will likely reduce debugging performance.
有趣的是,如果我停止在 Xcode 中构建,这会退出设备上的应用程序,然后在设备上手动启动应用程序,一切都会按预期工作,但当然不会记录日志。回到 Xcode 13.4,出现同样的问题,表明它是 iOS 16 beta 问题?
进一步的测试表明这是调试器的问题。如果我允许 Xcode 在我的一台设备上构建并运行应用程序,它将启动,然后冻结在黑屏上。几分钟后,应用程序进入其主 ContentView,控制台似乎可以正常工作。
有什么想法吗?谢谢。
Sha*_*ali 97
对于那些后来遇到这个问题的人(或未来的我)——我也遇到了同样的问题。
完全删除设备支持文件夹并重新打开 Xcode 会强制其重新创建设备支持文件。
太长了;博士
rm -r ~/Library/Developer/Xcode/iOS\ DeviceSupport
Run Code Online (Sandbox Code Playgroud)
然后重新打开Xcode。
cho*_*fie 34
合并当前投票最高的答案和其他问题的解决方案中的步骤仅对我有用:
\nrm -r ~/Library/Developer/Xcode/iOS\\ DeviceSupportJim*_*ham 15
更多背景:
lldb 使用 gdb-remote 协议从设备读取内存。这样做的好处是成为一个得到广泛支持的协议,但它的速度并不是非常快。因此,如果 lldb 具有加载到本地主机上的程序中的二进制文件的副本,可以直接检查它们,那么它会工作得更好。
Xcode 就是实现这一目标的工具。当您插入设备并启动 Xcode 时,如果 Xcode 以前从未见过操作系统,它会一口气复制系统二进制文件并将它们放入~/Library/Developer/Xcode/{DeviceType} DeviceSupport/SystemVersion. 如果此过程由于某种原因失败,则 lldb 将不得不回退到从设备读取符号信息,这很慢 - 这就是警告所警告的内容。
如果删除当前版本的 DeviceSupport 目录,下次尝试调试时,Xcode 将再次复制二进制文件。如果您遇到的错误是暂时的,那么问题应该可以解决。如果没有,最好向 Apple Feedback 提交报告,以找出实际问题所在。