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'结束
这将自动添加链接二进制与库框架