OCUnit测试现有的iOS项目。 “ld:找不到文件”

时间:2012-03-05 22:59:15

标签: objective-c ios xcode4 ocunit sentestingkit

我一直关注此博文:Adding unit tests to existing project.

但是我收到了这个错误:

  

ld:找不到文件:   构建/产品/调试-的iPhoneOS / MyApp.app / MyApp的   命令   /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang   退出代码1失败

我有我的测试目标属性,

  

Bundle Loader = $(BUILT_PRODUCTS_DIR)/MyApp.app/MyApp

     

测试主机= $(BUNDLE_LOADER)

(两者都等同于:build / Debug-iphoneos / MyApp.app / MyApp)

我猜测这些变量并没有指向与编译器相同的位置。 “build / Debug-iphoneos / ...”vs“Build / Products / Debug-iphoneos /..."

我猜错了,但无论哪种方式,有没有人知道是什么导致了这个错误或者我将如何修复这些环境变量?

感谢您的帮助,

萨姆

6 个答案:

答案 0 :(得分:18)

深入了解〜/ Library / Developer / Xcode / DerivedData,进入你的项目。从那里,按照Bundle Loader路径。看看实际上有什么。

现在查看您的Info.plist(或目标的信息设置)并查找“可执行文件”或CFBundleExecutable。如果是${EXECUTABLE_NAME},请检查目标的“产品名称”设置。

答案 1 :(得分:6)

我遇到了同样的问题 - 它没有意义,因为它用于可执行文件的路径实际存在。仔细看看编译命令后发现加载器路径上有一个额外的空间就是问题。

答案 2 :(得分:0)

在Build Settings中查找“搜索路径”。可能在“框架搜索路径”或“库搜索路径”等其他路径下存在不存在的路径

答案 3 :(得分:0)

创建项目后,您可能更改了应用程序的名称。因此,您的项目和应用程序的名称是不同的。在路径中,使用您在itunes商店中显示的应用程序名称,而不是项目名称。

答案 4 :(得分:0)

我之前遇到了同样的问题,我通过检查构建设置 - >解决了这个问题。我的单元测试目标的基础SDK,并根据您的项目类型(OSX或iOS)确保它是正确的。

答案 5 :(得分:0)

在您的podfile中,确保已将测试作为目标

包含在内

目标' YourAppNameTests'做 use_frameworks! pod' AFNetworking',' 2.6.0' pod' TYMProgressBarView' 端

这将自动添加Link Binary和Libraries Framework

enter image description here