【问题标题】:App crashes with 4.2 iPhone simulator 'set start-with-shell off'应用程序因 4.2 iPhone 模拟器“set start-with-shell off”而崩溃
【发布时间】:2011-05-15 08:42:36
【问题描述】:

我正在编写在 4.0/4.1 iPhone 模拟器上完美运行的应用程序,但不是 4.2。

我收到这样的警告:

检测到尝试调用 iPhone 上不存在的系统库中的符号: fcntl$UNIX2003 从映像 TestApp 中的函数 get_socket_nonblocking 调用。 如果您在 gdb 中运行模拟器二进制文件时遇到此问题,请确保您首先'set start-with-shell off'

如何在 Xcode 上设置“set start-with-shell off”?我试图将此行添加到 .gdbinit 但没有运气。

使用 4.0/4.1 SDK iPhone 模拟器会打印有关尝试调用调试窗口中 iPhone 上不存在的符号的警告,但应用程序不会崩溃。使用 4.2 应用程序崩溃。如何防止 4.2 崩溃?

谢谢

【问题讨论】:

  • 您是否尝试过在实际设备上构建和运行?
  • 我遇到了同样的错误信息。你提交错误报告了吗?如果有,参考编号是多少?

标签: iphone objective-c ios-4.2


【解决方案1】:

$2003 后缀是编译器在某些情况下生成的,您可以在 compat 的手册条目中找到完整的文档

man compat

我为此苦苦挣扎了一段时间,最后通过设置修复它

-mmacosx-version-min=10.3

10.4 之前的任何版本都可以完成这项工作。

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    在此 cleanAll 构建之前

    在 xcode 中转到项目 > 设置活动可执行文件 > appname - Iphone 4.0 模拟器

    然后打开模拟器然后转到硬件>版本> 4.0.2

    然后双击 urapptarget 并在构建选项卡中更改“ios 部署目标 = 4.0”

    现在在模拟器中运行它就可以工作了

    【讨论】:

      【解决方案3】:

      如果您使用本机库,则应使用 iOS4 重新编译它们(仅限 i386 版本,因为它适用于设备)。

      【讨论】:

        【解决方案4】:

        我遇到了类似的错误:

        Detected an attempt to call a symbol in system libraries that is not present on the iPhone: pthread_rwlock_init$UNIX2003 called from function ...

        我可以通过取消选中项目的“条带链接产品”部署构建设置来修复,即STRIP_INSTALLED_PRODUCT = NO

        不要忘记在重建之前进行全面清理。

        您可能只想为模拟器执行此操作。填写错误报告仍然是个好主意。

        【讨论】:

        • 好的。其他人也报告了这个......如果你检查它是否有效?
        【解决方案5】:

        我也没有成功将行添加到 ~/.gdbinit。冒着明显的风险:如果您在 XCode 中将模拟器版本设置为 4.1,您将避免该问题。这就是我现在所做的——只要我不需要测试仅在 4.2 上可用的 API 就可以了——我们不需要(我们仍然以 iOS 3.0 为目标)。

        【讨论】:

          【解决方案6】:

          在为早期操作系统构建的 libCURL 版本中,我遇到了类似的问题。解决方案是在 iOS 4.2 下重建库以消除 $UNIX2003 符号装饰。 (我在http://www.creativealgorithms.com/blog/content/building-libcurl-ios-42写了完整的细节。)

          【讨论】:

            【解决方案7】:

            通过http://bugreporter.apple.com/提交错误

            Xcode 中的调试器会像在命令行中读取 gdb 一样读取 ~/.gdbinit。尝试将该行添加到 ~/.gdbinit。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2011-03-20
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-02-21
              • 2010-09-07
              相关资源
              最近更新 更多