【问题标题】:How do I solve a "dyld: Library not loaded:" error in Xcode 4 unit tests?如何解决 Xcode 4 单元测试中的“dyld:未加载库:”错误?
【发布时间】:2011-04-27 20:31:04
【问题描述】:

我有一个 Xcode 4 项目,一个带有 Spotlight、Core Data 和单元测试的 Cocoa 应用程序。该应用程序使用我编写的名为 TBPluginManager 的自定义框架来加载包。我最初在 Xcode 3 中编写了框架,但是当我在 Xcode 4 中使用它时,GDB 一直在抱怨,所以我在 Xcode 4 中重新创建了框架。这让 GDB 很高兴,直到我尝试运行内置的单元测试并得到:

[切换到进程3840线程0x0] dyld:库未加载:> Library/Frameworks/TBPluginManager.framework/Versions/A/TBPluginManager 引用自:/Users/elise/Library/Developer/Xcode/DerivedData/BookManager-cooglmktssmptpatjuetculukiqd/Build/Products/Release/BookManager.app/Contents/MacOS/BookManager

原因:找不到图片 共享库应用加载规则全部 现在没有可用于编程的内存:调用 malloc 不安全

现在我可以理解为什么单元测试找不到框架了,因为它不在 Library/Frameworks/TBPluginManager.framework 中,而是在 /Library/Frameworks/TBPluginManager.framework 中。但是我如何告诉单元测试包呢?我尝试设置框架、标题和库搜索路径构建设置,但无济于事。

顺便说一句,我已经回到 GHUnit,但我也想让它工作。

跟进:虽然 Grady Player 有一个帐户只是为了告诉我我是个白痴,这让我很烦恼,但这可能只是他或她是对的。我可爱、可靠的框架正在生成警告和错误,就像它们过时一样,所以我已将问题交给 Apple 开发人员技术支持。如果有什么有趣的东西出来,我会在这里发布。否则,我将删除问题。

【问题讨论】:

    标签: cocoa unit-testing xcode4 dyld


    【解决方案1】:

    确保安装在 /Library/Frameworks/TBPluginManager.framework 的框架是有效的,并且与您尝试将其链接到的架构相同。如果您对重新编译框架有疑问,请将其放在自定义位置并在框架搜索路径中设置该自定义位置。

    【讨论】:

    • 我非常确定框架就在它所在的位置并且工作正常。除了我在问题中提到的 BookManager 应用程序之外,其他几个应用程序也使用该框架并且已经使用了一年多。
    猜你喜欢
    • 2018-05-17
    • 1970-01-01
    • 2018-11-07
    • 1970-01-01
    • 1970-01-01
    • 2011-09-23
    • 2017-04-18
    • 2015-02-25
    相关资源
    最近更新 更多