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

我一直在关注这个博客文章: 添加unit testing到现有的项目。

但是我得到这个错误:

ld:找不到文件:Build / Products / Debug-iphoneos / MyApp.app / MyApp Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang失败,退出代码为1

我有我的testing目标属性,

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

testing主机= $(BUNDLE_LOADER)

(这两个等同于:构build/ Debug-iphoneos / MyApp.app / MyApp)

我疯狂的猜测是,这些variables不是指向编译器相同的位置。 “build / Debug-iphoneos / …”vs“Build / Products / Debug-iphoneos / …”

我可能完全错误的猜测,但无论哪种方式,有没有人知道是什么原因导致这个错误,或者我将如何修复这些环境variables?

谢谢你的帮助,

山姆

挖掘〜/ Library / Developer / Xcode / DerivedData,放到你的项目中。 从那里,按照Bundle Loaderpath。 看看实际上有什么

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

我遇到了同样的问题 – 它没有任何意义,因为它使用的可执行文件的path确实存在。 仔细看看编译命令,发现加载程序path上有一个额外的空间是问题所在。

在“生成设置”中查找“searchpath”。 可能在“框架searchpath”或其他path(如“库searchpath”)下有不存在的path

创build项目后,您可能会更改应用程序的名称。 所以你的项目和应用程序的名称是不同的。 在path中,使用您的应用程序名称,因为它会出现在iTunes Store而不是您的项目名称。

我之前有同样的问题,我通过检查我的unit testing目标的“生成设置” – >“基本SDK”来解决这个问题,并根据您的项目types(OSX或iOS)确保它是正确的。

在您的pod文件中,确保您已将testing作为目标

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

这将自动添加链接二进制与库框架

在这里输入图像说明