【问题标题】:Xcode 7.0 XCTest dyld: could not load inserted library IDEBundleInjectionXcode 7.0 XCTest dyld:无法加载插入的库 IDEBundleInjection
【发布时间】:2015-12-01 01:42:36
【问题描述】:

我正在我的 iOS 项目上运行单元测试,当它运行时,它崩溃并吐出:

dyld: could not load inserted library '/private/var/mobile/Containers/Data/Application/1CAB64C8-D730-427B-8E9E-BD5E152ACFD6/tmp/IDEBundleInjection.framework/IDEBundleInjection' because no suitable image found.  Did find:
/private/var/mobile/Containers/Data/Application/1CAB64C8-D730-427B-8E9E-BD5E152ACFD6/tmp/IDEBundleInjection.framework/IDEBundleInjection: mmap() error 1 at address=0x00436000, size=0x00004000 segment=__TEXT in Segment::map() mapping /private/var/mobile/Containers/Data/Application/1CAB64C8-D730-427B-8E9E-BD5E152ACFD6/tmp/IDEBundleInjection.framework/IDEBundleInjection

我正在使用 XCode 7.0 并在运行 iOS 8.3 的 iPod 上进行测试。我已经删除了派生数据并重新启动了 XCode,但它仍然没有工作。

【问题讨论】:

  • 这是否发生在 iOS 9.0 设备/模拟器上?这可能是由于在不兼容的 iOS 版本上使用 Xcode 7 测试版造成的。
  • 我在设备本身上运行单元测试,因为我的一些框架仅支持 arm7。我使用的设备是运行 8.3 的 iPod。
  • 我在 iPhone 5 (iOS 9.1) 上遇到了同样的问题,但如果我使用模拟器,它可以正常工作
  • 我也有同样的问题...它在模拟器上运行良好但在设备上运行良好,您有解决方案吗?

标签: ios xcode xctest xcode7 dyld


【解决方案1】:

我设法通过在 build settings->code signing identity 中指定我的开发人员证书来解决此问题。

【讨论】:

    【解决方案2】:

    我通过创建一个新的 UnitTest 目标、复制所有内容并删除旧目标来解决此问题。

    【讨论】:

    • 如果您有更好的答案,请随时发布,我会选择您的。此帖子已被多次投票,因此即使不是最佳答案,人们也希望得到答案。
    • 抱歉,这不是批评。我自己投了赞成票。这只是对事实的讽刺性陈述。
    • 这仅在重启设备后对我有效(Xcode8 中的 iOS10 设备)
    【解决方案3】:

    我通过选择正确的目标,然后从设置中选择正确的代码签名身份来解决此问题。它被设置为非默认值 - 将 Debug 设置条目更改为“IOS Developer”。

    【讨论】:

      【解决方案4】:

      我需要在 Project->App Target->General 下设置团队。它被设置为“无”,而不是有效的团队。

      【讨论】:

        【解决方案5】:

        在 General Panel 中,不要将团队留给“无”

        同时:在Build Setting->Code Signing->Code Signing Identity中选择code sign

        【讨论】:

          【解决方案6】:

          在我的情况下,配置文件没有任何问题,这取决于项目中的架构,不包括 arm64。一旦将 arm64 添加到测试目标和宿主应用程序目标,测试就可以正常运行(在 Xcode 7.2 上)。错误是:

          dyld: could not load inserted library '/private/var/mobile/Containers/Data/Application/A94F5AD3-2A5F-415D-B127-0F45DEC7A659/tmp/IDEBundleInjection.framework/IDEBundleInjection' because no suitable image found.  Did find:
          /private/var/mobile/Containers/Data/Application/A94F5AD3-2A5F-415D-B127-0F45DEC7A659/tmp/IDEBundleInjection.framework/IDEBundleInjection: mmap() error 22 at address=0x00501000, size=0x00005960 segment=__LINKEDIT in Segment::map() mapping /private/var/mobile/Containers/Data/Application/A94F5AD3-2A5F-415D-B127-0F45DEC7A659/tmp/IDEBundleInjection.framework/IDEBundleInjection
          

          【讨论】:

          • 你是如何添加arm64的?
          • 在应用程序目标和测试目标的“构建设置”中,将arm64 添加到“架构”和“有效架构”中。
          【解决方案7】:

          我将 XCode 构建设置中的基本 SDK 设置为比手机更新的 iOS 版本,因此我必须升级手机上的操作系统。

          【讨论】:

            【解决方案8】:

            我通过重启 iOS 设备解决了这个问题。

            【讨论】:

              【解决方案9】:

              我遇到了同样的问题,不得不重新启动我的设备。我正在使用带有 Xcode 8.0 的 iOS 10(在 swift 3.0 中开发)

              【讨论】:

              • 这里相同;设备重启工作正常。重新启动 Xcode 以及良好的措施。 iOS 10.2.1、Xcode 8.2.1、Swift 3.0 项目。
              猜你喜欢
              • 2016-10-30
              • 2017-04-18
              • 2015-02-25
              • 2013-12-18
              • 2018-12-05
              • 1970-01-01
              • 1970-01-01
              • 2014-12-04
              相关资源
              最近更新 更多