我有一个 Xcode 4 项目,一个带有 Spotlight、Core Data 和单元测试的 Cocoa 应用程序。该应用程序使用我编写的名为 TBPluginManager 的自定义框架来加载包。我最初在 Xcode 3 中编写了该框架,但是当我在 Xcode 4 中使用它时,GDB 一直在提示,所以我在 Xcode 4 中重新创建了该框架。这让 GDB 很高兴,直到我尝试运行内置的单元测试并得到:
[Switching to process 3840 thread 0x0] dyld: Library not loaded: > Library/Frameworks/TBPluginManager.framework/Versions/A/TBPluginManager Referenced from: /Users/elise/Library/Developer/Xcode/DerivedData/BookManager-cooglmktssmptpatjuetculukiqd/Build/Products/Release/BookManager.app/Contents/MacOS/BookManager
Reason: image not found sharedlibrary apply-load-rules all No memory available to program now: unsafe to call malloc
现在我可以理解为什么单元测试找不到框架,因为它不是位于 Library/Frameworks/TBPluginManager.framework 而是位于/Library/Frameworks/TBPluginManager.framework。但是我如何将其告诉单元测试包呢?我尝试设置框架、标题和库搜索路径build设置,但无济于事。
顺便说一句,我已经回到 GHUnit,但我也想让它正常工作。
后续:尽管格雷迪·普莱尔(Grady Player)获得一个帐户只是为了告诉我我是个白痴,这让我很烦恼,但他或她可能是对的。我可爱、可靠的框架正在生成警告和错误,就像它们已经过时一样,因此我已将问题移交给 Apple 开发人员技术支持。如果有什么有趣的事情发生,我会把它发布在这里。否则,我将删除该问题。
最佳答案
确保安装在/Library/Frameworks/TBPluginManager.framework 的框架有效,并且与您尝试链接到的架构相同。如果您不确定再次重新编译框架,请将其放入自定义位置并在框架搜索路径中设置该自定义位置。
关于cocoa - 如何解决 Xcode 4 单元测试中的 "dyld: Library not loaded:"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5810182/