可能是一个愚蠢的问题。在调试模式下在设备上运行我的项目时,我收到很多警告,其中包含以下字符串:
警告:无法读取符号 /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.2.1 (8C148a)/符号/系统/图书馆/ PrivateFrameworks /
我认为这是由于“4.2.1”和“(8C148a)”之间的空间。我怎么能摆脱它?它必须是Xcode中的某个设置。
我在模拟器上没有这些警告。
提前感谢,Christian
答案 0 :(得分:38)
我得到了:
警告:无法读取/Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.2.1(8C148)/Symbols/usr/lib/info/dns.so(找不到文件)的符号。
版本4.2.1不包含'info / dns.so'。至少对我来说就是这种情况。但是,它确实存在于4.2目录中,并由/ DeviceSupport / 最新快捷方式指向。我只是将'info / dns.so'复制粘贴到调试器正在寻找的位置,这似乎可以修复警告。
答案 1 :(得分:27)
我遇到了4.2.1(8C148a)的这个问题,我认为这是由手机和XCode上的不同DeviceSupport文件引起的。我尝试了很多东西,但最终通过删除这个文件夹来解决它:
/Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.2.1(8C148a)/
在此之后,我插入了我的iOS设备,并被要求连接并恢复设备中的符号文件,并且它再次正常工作。
答案 2 :(得分:2)
如果您使用比SDK中的操作系统稍微更新的操作系统插入iOS设备(iPad),则应在Xcode的管理器窗口中显示下载新符号的按钮。打它并等待。
答案 3 :(得分:1)
当我的设备与我正在构建的版本不同时,我看到了类似的错误。你确定你没有使用4.2测试版吗?
答案 4 :(得分:1)
我不认为8C148a是“最终的”;最终版本号似乎永远不会以字母结尾(我的手机报告的是“4.2.1(8C148)”)。我还没有调试应用程序(我无聊等待它提取符号然后回家)。
4.2 GM是8C134,所以你肯定在运行更新的软件,但是某些地方的东西会让编译错误。
但我离题了。
/Developer/Platforms/iPhoneOS.platform/DeviceSupport中有哪些目录?如果“4.2.1(8C148a)”不存在但“4.2.1”不存在,你可能会在终端做这样的事情:
cd /Developer/Platforms/iPhoneOS.platform/DeviceSupport
ln -s "4.2.1" "4.2.1 (8C134a)"
等效地,如果存在“4.2.1(8C148)”,则执行以下操作:
ln -s "4.2.1 (8C148)" "4.2.1 (8C148a)"
您通常可以使用此技巧让Xcode在不安装测试版SDK的情况下与测试设备通信;如果您的公司有一些人运行测试版(用于测试目的)而其他人使用最新的“最终版”(用于发布目的),这将非常有用。
答案 5 :(得分:0)
目前存在不匹配问题,4.2.1的发布版本领先于SDK版本4.2
@ Khrob的评论为我解决了这个问题!
答案 6 :(得分:0)
在他们提供可靠的SDK之前,一个很酷的解决方法是:
1 - 选择可执行文件(项目浏览器中的'可执行文件'),
2 - 获取信息并关闭“Break on Debugger()和DebugStr()”*
干杯,祝贺2011年。
Ť
这不会禁用NSLog。
答案 7 :(得分:0)
我在iPhone 3G上运行4.2.1,在MacBook Pro运行10.6.6运行Xcode 3.2.5。在彻底安装Xcode之后,我在插入iPhone后得到了下载4.2.1符号的提示。转移后,我不会在连接iPhone时得到提示,但我收到了大量“无法读取符号”的消息。
首先,什么对我不起作用:
以上两个都导致了几个库的“UUID不匹配”错误。 GDB会启动但似乎挂起。
最后,目前正在为我工作的是什么:
至少对于我正在开发的应用程序,现在一切正常。希望Xcode 4.0能够清除它。