debugging Xcode 14测试版-LLDB的构建问题

z6psavjg  于 2022-11-14  发布在  其他
关注(0)|答案(4)|浏览(429)

我在构建任何将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测试版的问题?
进一步的测试表明,这是调试器的问题。如果我允许Xcode在我的一台设备上构建并运行一个应用程序,它将启动,然后在黑屏上冻结。几分钟后,应用程序将进入其主ContentView,控制台似乎可以正常工作。
有什么想法吗?谢谢。

xdnvmnnf

xdnvmnnf1#

对于那些后来遇到这个问题的人(或者未来的我)--我也有同样的问题。
完全移除Device Support文件夹并重新打开Xcode会强制它重新创建设备支持文件。
医生

rm -r ~/Library/Developer/Xcode/iOS\ DeviceSupport

然后重新打开Xcode。

ztyzrc3y

ztyzrc3y2#

更多背景信息:
lldb使用gdb-remote协议从设备中阅读内存。这是一个被广泛支持的协议,但它的速度并不快。因此,如果lldb在本地主机上有加载到程序中的二进制文件的副本,它可以直接检查它们,那么lldb的工作效果会更好。
Xcode就是实现这一点的工具。当你插入一个设备并启动Xcode时,如果操作系统是Xcode以前从未见过的,它会一次性复制系统二进制文件,并将它们放入~/Library/Developer/Xcode/{DeviceType} DeviceSupport/SystemVersion。如果这个过程由于某种原因失败,lldb将不得不退回到从设备阅读符号信息,这是缓慢的--这就是警告所警告的。
如果您删除了DeviceSupport目录的当前版本,下次您尝试调试时,Xcode将再次复制二进制文件。如果您遇到的错误是暂时的,那么应该可以修复问题。如果不是,最好通过Apple反馈提交报告,以找出实际问题所在。

z0qdvdin

z0qdvdin3#

如果您正在使用2个xcode应用程序,请尝试删除1个旧的可能会修复它

6uxekuva

6uxekuva4#

只要打开Xcode,它会要求你安装一些必需的附加组件。就是这样。
更新Xcode或Mac OS后会发生此问题。

相关问题