【问题标题】:Issue with iphone sdk 4.2.1iphone sdk 4.2.1 的问题
【发布时间】:2011-05-14 16:51:32
【问题描述】:

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

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

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

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

提前感谢,克里斯蒂安

【问题讨论】:

    标签: iphone xcode ios4


    【解决方案1】:

    我在 iPhone 3G 上安装了 4.2.1,在配备 10.6.6 的 MacBook Pro 上运行 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 能解决这个问题。

    【讨论】:

      【解决方案2】:

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

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

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

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

      T

      这不会禁用 NSLog。

      【讨论】:

        【解决方案3】:

        我得到了:

        警告:无法读取 /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.2.1 (8C148)/Symbols/usr/lib/info/dns.so 的符号(找不到文件)。

        4.2.1 版不包含“info/dns.so”。至少对我来说是这样。但是,它确实存在于 4.2 目录中,并由 /DeviceSupport/Latest 快捷方式指向。我只是将“info/dns.so”复制粘贴到调试器正在寻找它的位置,这似乎修复了警告。

        【讨论】:

        • 这也是我必须做的才能让它工作。感谢您的信息!
        • 谢谢,我复制了它,它解决了这个错误......但是 xcode 仍然有问题
        • 这对我有用。还必须这样做才能解决此错误:warning: Unable to read symbols for /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.2.1 (8C148)/Symbols/Developer/usr/lib/libXcodeDebuggerSupport.dylib
        • @Brennon Bortz:我遇到了同样的问题,除了我在我的 Mac 上的任何地方都找不到 libXcodeDebuggerSupport.dylib 的副本。
        • 我完全忘记了这篇文章。将近 8 个月后,同样的问题在 Xcode 4 中再次出现。我记得以前解决过它,但我不记得如何解决了。然后我发现了这个LOL!它就像一个魅力:-)
        【解决方案4】:

        我在 4.2.1 (8C148a) 中遇到了这个问题,我认为这是由手机和 XCode 中的不同 DeviceSupport 文件引起的。我尝试了很多事情,但最终通过删除此文件夹解决了它:

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

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

        【讨论】:

        • 这对我不起作用。我重命名了文件夹,然后插入了我的 iPhone4。在调试中运行,它仍然出现警告。
        • 你必须删除它。 Xcode 和符号化脚本将继续找到它(可能通过 Spotlight)。我使用了带有详细选项的符号化脚本,并注意到它在将其移动到桌面后引用了该文件夹。)
        • 我在 Xcode 4.3 中遇到了这个问题。我觉得只要提前退出Xcode,重命名就可以侥幸逃脱。
        • 每次我尝试这个,即使在重新启动 Xcode 并重新启动/重新启动之后,它也永远不会工作。 :\
        【解决方案5】:

        目前存在不匹配,4.2.1 的发布版本领先于 SDK 4.2 版本

        @Khrob 的评论为我解决了这个问题!

        【讨论】:

          【解决方案6】:

          我不认为 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 设备通信,而无需安装 Beta SDK;如果您的公司有一些人运行 Beta 版(用于测试目的)而其他人运行最新的“最终版”(用于发布目的),这将非常有用。

          【讨论】:

          • 谢谢,有帮助。我刚刚删除了最后一个给我带来冲突的文件夹并重新插入了我的 iPhone。它更新了损坏的符号。
          【解决方案7】:

          当您插入一个操作系统比 SDK 中的稍新的 iOS 设备 (iPad) 时,Xcode 的管理器窗口中应该会出现一个下载新符号的按钮。点击它并等待。

          【讨论】:

          • 我在插入 iPad 时收到了该消息,但在之后插入带有 4.2.1 的 iPhone 时却没有。现在我可以在我的 iPad 上调试,但在我的 iPhone 上收到设备支持警告和崩溃。
          • 崩溃是我的代码问题,但即使在删除 /4.2.1 (8C134)/ 并且组织者要求下载符号后,我仍然收到警告:无法读取 /Developer/Platforms/iPhoneOS.platform 的符号/DeviceSupport/4.2.1 (8C148)/Symbols/usr/lib/info/dns.so(找不到文件)。如果想出更多我会开始新的问题。
          • 这正是我仍然有的最后一个警告。我在某处读到它应该是无害的。 A也找不到任何问题。我们会看到。我刚刚向苹果发送了更新,但此警告仍然存在。
          • 此符号:/Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.2.1 (8C148)/Symbols/usr/lib/info/dns.so 不存在。
          【解决方案8】:

          当我的设备与我正在构建的版本不同时,我看到了类似的错误。你确定你不是 4.2 测试版吗?

          【讨论】:

          • 我检查过,但我得到了最新的 sdk,即“最终”。然后我通过iTunes更新了我的手机。但我现在正在重新安装 sdk
          猜你喜欢
          • 2011-06-18
          • 2011-05-04
          • 1970-01-01
          • 2012-02-09
          • 1970-01-01
          • 1970-01-01
          • 2011-07-04
          • 1970-01-01
          • 2011-08-20
          相关资源
          最近更新 更多