代码之家  ›  专栏  ›  技术社区  ›  Christian Loncle

iPhoneSDK4.2.1的问题

  •  23
  • Christian Loncle  · 技术社区  · 15 年前

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

    警告:无法读取的符号 /开发者/平台/iPhoneOS.platform/DeviceSupport/4.2.1 (8C148a)/符号/系统/库/私有框架/

    我认为这是由于“4.2.1”和(8C148a)之间的空间造成的。我怎样才能摆脱它呢?它一定是Xcode中的某个设置。

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

    提前谢谢你,克里斯蒂安

    8 回复  |  直到 15 年前
        1
  •  27
  •   akaru    15 年前

    我在4.2.1(8C148a)中遇到了这个问题,我认为这是由于电话和XCode中的设备支持文件不同造成的。我尝试了很多方法,但最终通过删除此文件夹解决了问题:

    /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.2.1(8C148a)/

    在这之后,我插入了我的iOS设备,并被要求从设备连接和恢复符号文件,它再次正常工作。

        2
  •  38
  •   GnarlyDog    15 年前

    我得到了:

    警告:无法读取/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”复制到调试器正在查找的位置,这似乎可以修复警告。

        3
  •  2
  •   hotpaw2    15 年前

    当你在一个iOS设备(iPad)上插入一个比SDK稍新的操作系统时,Xcode的管理器窗口中会出现一个下载新符号的按钮。打它然后等。

        4
  •  1
  •   Mark Adams    15 年前

    我见过这样的错误,当我的设备不在同一个版本上,我正在建设的。你确定你没有参加4.2测试吗?

        5
  •  1
  •   tc.    15 年前

    我不认为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在不安装beta SDK的情况下与beta设备对话;如果您的公司有一些人运行beta(用于测试目的)和其他人使用最新的“final”(用于发布目的),则此技巧非常有用。

        6
  •  0
  •   Luke    15 年前

    目前有一个不匹配的地方,4.2.1的发布版本领先于SDK 4.2

    @不过,赫罗布的评论帮我修正了!

        7
  •  0
  •   Moose    15 年前

    在他们提供可靠的SDK之前,一个很酷的解决方法是:

    1-选择可执行文件(在项目浏览器的“可执行文件”中),

    2-获取信息并关闭“Break on Debugger()和DebugStr()”*

    为2011年干杯,并致以最良好的祝愿。

    T型

    这不会禁用NSLog。

        8
  •  0
  •   Brad Howes    15 年前

    我在iPhone 3G上有4.2.1,在MacBook Pro 10.6上有Xcode 3.2.5。在完全安装了Xcode之后,我在插入iPhone后得到了下载4.2.1的符号的提示。在转移之后,我再也不会在连接iPhone时得到提示,但我收到了很多“无法读取符号”的消息。

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

    • 正在创建名为“4.2.1(8C148)”的“4.2(8C134)”的符号链接
    • 在目录“4.2.1(8C148)”中创建指向../../Developer/SDKs/iPhoneOS4.2.sdk的符号链接,就像在“4.2(8C134)”中一样

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

    最后,我目前的工作是:

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

    至少对于我正在开发的应用程序来说,现在一切正常。希望Xcode 4.0能解决这个问题。