问题与iphone sdk 4.2.1

时间:2010-11-23 19:57:49

标签: iphone xcode ios4

可能是一个愚蠢的问题。在调试模式下在设备上运行我的项目时,我收到很多警告,其中包含以下字符串:

  

警告:无法读取符号   /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.2.1   (8C148a)/符号/系统/图书馆/ PrivateFrameworks /

我认为这是由于“4.2.1”和“(8C148a)”之间的空间。我怎么能摆脱它?它必须是Xcode中的某个设置。

我在模拟器上没有这些警告。

提前感谢,Christian

8 个答案:

答案 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时得到提示,但我收到了大量“无法读取符号”的消息。

首先,什么对我不起作用:

  • 使用名称“4.2.1(8C148)”
  • 创建指向“4.2(8C134)”的符号链接
  • 在目录'4.2.1(8C148)'中创建符号链接,就像'4.2(8C134)'到../../ Developer / SDKs / iPhoneOS4.2.sdk

以上两个都导致了几个库的“UUID不匹配”错误。 GDB会启动但似乎挂起。

最后,目前正在为我工​​作的是什么:

  • %cd /Developer/Platforms/iPhoneOS.platform/DeviceSupport
  • %mkdir'4.2.1(8C148)'#如果不存在
  • %cd'4.2.1(8C148)'
  • %cp ../ 4.2 \ \(8C134 \)/ DeveloperDiskImage.dmg *。
  • %cp -r ../../Developer/SDKs/iPhoneOS4.2.sdk符号
  • 尝试为应用程序运行调试会话并观察控制台。对于有关UUID不匹配的每个警告,请删除日志消息中指示的文件(我有AudioToolbox,CoreMedia和其他一些)
  • 停止GDB并再试一次,希望成功

至少对于我正在开发的应用程序,现在一切正常。希望Xcode 4.0能够清除它。