我正在尝试通过命令行运行我的Xcode单元测试,所以我最终可以将它连接到Jenkins for CI。工作区包含2个项目:
CommonProject(用于多个应用的共享库)
MainProject
MainProject使用CommonProject中的库,因此存在依赖性。每个项目都有自己独立的xcodeproj文件。
所以我需要运行与MainProject相关的单元测试。我使用此命令从主项目目录中的终端运行单元测试:
xcodebuild test -scheme MainProject -configuration Debug -sdk iphonesimulator7.0 -destination OS=7.0,name="iPad"
我收到以下错误。
ld: warning: directory not found for option '-L/development/MainProject/../../../../Library/Developer/Xcode/DerivedData/MainProject-frbbgalqmolpaxcdmzssejnssluu/Build/Products/Debug-iphoneos'
ld: warning: directory not found for option '-F/development/MainProject/../../../../Library/Developer/Xcode/DerivedData/DTCoreText-fgbvjplplkeyyghcvrfbmvoetoiq/Build/Products/Debug-iphoneos'
ld: library not found for -lCommonProject
clang: error: linker command failed with exit code 1 (use -v to see invocation)
** TEST FAILED **
The following build commands failed:
Ld /Library/Developer/Xcode/DerivedData/MainProject-bxpugeyjdgrcfcgxxpttwlgmfrma/Build/Products/Debug-iphonesimulator/MainProject.app/MainProject normal i386
由于单元测试需要运行公共项目,因此它们可能无法找到所需的文件,因为它们位于单独的目录中。有没有人以前遇到过这个问题,或者有什么想法可以解决它?
答案 0 :(得分:1)
我以前使用过此问题,解决方法是确保生成的库文件与project.app
文件位于同一位置。鉴于此,您需要将CONFIGURATION_BUILD_DIR指向一个公共位置。您可以使用下面的参数来完成此任务。
xcodebuild test -scheme myScheme -configuration Debug -sdk iphonesimulator7.0
CONFIGURATION_BUILD_DIR=$(PWD)/build