在 Xcode 8 中运行单元测试会导致错误"could not load inserted library '.../IDEBundleInjection' because image not



我在Xcode 8测试我的iOS 10应用程序时突然遇到了错误。

dyld: could not load inserted library
'__PLATFORMS__/iPhoneOS.platform/Developer/Library/PrivateFrameworks/IDEBundleInjection.framework/IDEBundleInjection' 
because image not found

应用程序之前的测试运行成功。然后我删除了与项目一起创建的UI Test Case类骨架,所以这可能导致了问题(不知何故)。我已经重新创建了这个类,但问题仍然存在。

错误信息究竟是什么,我该如何克服这个问题,即成功地再次运行应用程序的单元测试。

UPDATE必须有另一个根案例,因为如果我在Xcode中创建另一个(空)单视图应用程序项目并运行其单元测试,会发生相同的错误。

此错误仅在设备上运行单元测试时发生,在模拟器上不发生。

UPDATE苹果对类似报告的响应表明错误与代码签名有关。应用程序本身在同一设备上运行良好,所以在我的情况下怎么会有代码签名问题呢?

依次尝试:

  1. 尝试创建一个新的UnitTest目标,复制所有内容,并删除旧的。

  2. 在常规选项卡面板中,不要将团队设置为"None"。选择你的团队。并从"设置"中选择正确的代码签名标识。

  3. 在Debug设置项中,它被设置为非默认值-更改为"IOS Developer"。
  4. 禁用"Enable guard Malloc"从诊断到运行设备中的应用

  5. 这可能是因为Xcode挂载错误的DeveloperImage。如果你打开Settings-> Developer,你会看到"Enable UIAutomation"和其他的都不见了。修复:

    (A)移动"/Applications/Xcode8.app/Contents/Developer/Platforms/iPhoneOS"下的所有文件夹。除"10.0 (12A4297e)"外,platform/DeviceSupport到安全的地方(B)重启手机(C)将手机连接到xCode 8(D)在DeviceSupport

    中恢复文件夹

    这是唯一帮助我的事。

  6. 这是旧的,但它可能会帮助你:在目标的General选项卡中,有一个Embedded Binaries字段。当你在那里添加框架时,崩溃就解决了。

参考:https://devforums.apple.com/message/991384#991384在苹果开发者论坛。

祝你好运!

在Xcode测试基础设施中有一个重启机制,可以检测测试期间的崩溃,并尝试重新启动测试以完成任何剩余的测试。在测试崩溃后,该机制如何设置DYLD_INSERT_LIBRARIES可能存在问题-请在https://bugreport.apple.com上提交报告,并在可能的情况下附加您的项目。

相关内容

最新更新