描述
build Xcode projects and workspace

xcodebuild可以编译打包Xcode项目内的一个或多个targets,或Xcode工作区或项目内的一个scheme。

要编译打包Xcode项目,需要在项目目录下执行xcodebuild命令(如目录包含name.xcodeproj文件)。如果目录下有多个项目文件,则需要使用“-project”来指定需要编译打包的项目。xcodebuild编译打包命令默认使用基本编译配置来编译项目内列出的*个target。

编译打包Xcode workspace,必须设置“-workspace”和“-scheme”参数来定义编译信息

xcodebuild [-project name.xcodeproj] [[-target targetname] … | alltargets] [-configuration configurationname] [-sdk [sdkfullpath | sdkname]] [action …] [buildsetting=value …] [-userdefault=value …]

xcodebuild [-project name.xcodeproj] -scheme schemename [[-destination destinationspecifier] …] [-destination-timeout value] [-configuration configurationname] [-sdk [sdkfullpath | sdkname]] [action …] [buildsetting=value …] [-userdefault=value …]

xcodebuild [-workspace name.xcworkspace] -scheme schemename [[-destination destinationspecifier] …] [-destination-timeout value] [-configuration configurationname] [-sdk [sdkfullpath | sdkname]] [action …] [buildsetting=value …] [-userdefault=value …]

xcodebuild -version [-sdk [sdkfullpath | sdkname]] [infoitem]

xcodebuild -showsdks

xcodebuild -showBuildSettings [-project name.xcodeproj | [-workspace name.xcodespace -scheme schemename]]

xcodebuild -list [-project name.xcodeproj | -workspace name.xcodespace]

xcodebuild -exportArchive -archivePath xcarchivepath -exportPath destinationpath -exportOptionPlist path

xcodebuild -erportLocalizations -project name.xcodeproj -localizationPath path [[-exportLanguage language] …]

xcodebuild -importLocalizations -project name.xcodeproj -localizationPath path

Options
1. -project name.xcodeproj
编译项目name.xcodeproj。如果目录中有多个项目文件,则此参数必须。

2. -target targetname
编译项目中指定的target。

3. -alltarget
编译项目中所有target

4. -workspace name.xcodespace
编译项目name.xcodespace

5. -scheme schemename
编译项目指定scheme的项目。如果是编译workspace的话,此参数必须。

6. -destination destinationspecifier
使用destinationspecifier来指定特定的目标设备。默认选择的是和对应scheme兼容的目标设备。

7. -destination-timeout timeout
找寻指定目标设备信息的超时时间,默认为30s。

8. -configuration configurationname
编译每个target时指定的configuration

9. -arch architerture
编译每个target时指定的architecture(系统架构)

10. -sdk [sdkfullpath | sdkname]
编译项目(project)或工作区(workspace)是所使用的SDK版本。参数为SDK的*对路径或SDK的名称。

11. -showsdks
列出Xcode识别的可用的SDK信息,其中包含可用在“-sdk”命令中规范的SDK名称。此命令不会执行build命令。

12. -showBuildSettings
列出一个项目(project)或者(一个工作区(workspace)和scheme)中的编译设置信息。此命令不会执行build命令。后面可跟参数“-project”或(“-workspace”和“-scheme”)

13. -list
列出一个项目(project)或一个工作区(workspace)中scheme的target和configuration信息。此命令不会执行build命令。后面可跟参数“-project”或“-workspace”

14. -enableAddressSanitizer [YES | NO]
15. -enableCodeCoverage [YES | NO]
16. -derivedDataPath path
17. -resultBundlePath path
18. -exportArchive
19. -archivePath xcarchivepath
20. -exportPath destinationpath
21. -exportOptionsPlist path
22. -exportLocalizations
23. -importLocalizations
24. -localizationPath
25. -exportLanuage language
26. action …

Specify
build
analyze
archive
test
installsrc
install
clean

27. -xcodefig filename
28. -dry-run -n
29. -skipUnavailableActions
30. buildsetting=value
31. -userdefault=value
32. -tooolchain [identifier | name]
33. -verbose
详情模式

34. -version
35. -license
36. -usage
37. Destinations

OS X
iOS
iOS Simulator
watchOS
tvOS
tvOS Simulator

38. Exporting Archives
39. Environment Variavles
40. Exit Codes
Example
xcodebuild clean install
清除build文件夹的内容,接着编译及安装Xcode项目中*个target。
xcodebuild -project MyProject.xcodeproj -target Target1 -target Target2 -configuration Debug
编译项目MyProject.xcodeproj中的target1和target2,编译过程是Debug模式。
xcodebuild -target My