xcodebuild

xcodebuild是一个命令行工具,可以用来对Xcode工程或工作区进行编译、查找、分析、测试等各种操作。

workspace 是最大的集合,其可以包含多个 projet,同时可以管理不同的 project 之间的关系。workspace 是以 xcworkspace 的文件形式存在的。workspace 的存在是为了解决原来仅有 project 的时候不同的 project 之间的引用和调用困难的问题

project是Xcode对一些代码文件、资源、配置信息的一个管理仓库,可以用来编译产出一个或多个产品。Project包含了多个targets,project有一个被所有targets公用的build setting。

targets 表示如何产出一个具体产品,决定了如何对文件进行编译(编译那几个文件,使用什么编译脚本)(通过自己的build setting 和从project继承的build setting)

configuration 可以对project和targets中

scheme(方案)它不同于上面四个,表示一个组合方案表示那些targets使用什么 build configuration与 executable configuration 。An Xcode scheme defines a collection of targets to build, a configuration to use when building, and a collection of tests to execute.可以针对编译,运行,单元测试,动态分析,静态代码分析以及打包进行一些配置

命令参数

xcodebuild [-project projectname] [-target targetname...] [-configuration configurationname] [-sdk [sdkfullpath | sdkname]] [buildaction...] [setting=value...] [-userdefault=value...] 

 xcodebuild [-project projectname] -scheme schemename [-destination destinationspecifier] [-destination-timeout value] [-configuration configurationname] [-sdk [sdkfullpath | sdkname]] [buildaction...] [setting=value...] [-userdefault=value...] 

 xcodebuild -workspace workspacename -scheme schemename [-destination destinationspecifier] [-destination-timeout value] [-configuration configurationname] [-sdk [sdkfullpath | sdkname]] [buildaction...] [setting=value...] [-userdefault=value...] 

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

 xcodebuild -showsdks 

 xcodebuild -list [-project projectname | -workspace workspacename]

 xcodebuild -exportArchive -exportFormat format -archivePath xcarchivepath -exportPath destinationpath [-exportProvisioningProfile profilename] [-exportSigningIdentity identityname] [-exportInstallerIdentity identityname]

命令介绍

xcodebuild 构建Xcode project中的一个或多个targets, 也可以构建Xcode workspace或Xcode project的一个scheme。 

要构建一个Xcode project, 在你的工程目录下运行xcodebuild. 如果这个目录下有多个project文件则可以使用-project参数用来区分你要编译哪个project. 默认情况下,xcodebuild 构建project中列出的第一个target, 并且使用默认的build configuration. targets在project中的顺序是project的一个属性对所有的使用者来说这个顺序是相同的。 

要构建一个Xcode workspace, 必须要使用参数-workspace 和 -scheme 指定构建。 scheme 控制了需要编译那些targets以及这个targets如何被编译。不过也可以通过 xcodebuild的其他参数来从新指定scheme的一些属性.

使用:

需要了解的是,archive 工程后,实际上我们是把整个工程编译,然后签名,变成了一个后缀名为 xcarchive 的文件。通过调用以下命令,我们将整个工程编译,签名,然后将生成的 xcarchive 文件放到工程根路径下的 build 文件夹里。

xcodebuild -scheme XXX  -archivePath build/YYY.xcarchive archive

参数说明:XXX 就是工程的 scheme 的名字,在 Xcode 中可以看到,YYY你可以自己随意起个名字

如果工程使用了 Cocoapods 来管理第三方库,那么命令的执行方式上有所不同,因为 Cocoapods 会把工程变成一个 workspace。将 workspace 工程 archive 的命令如下。

1xcodebuild -workspace  -scheme  -archivePath build/.xcarchive archive

这个命令和上面的命令区别就在于需要指定 workspace 的文件名。

上面这两个命令适用于不同类型的工程: workspace 或者非 workspace。执行中读取的配置都是在工程的 Target 或者 Scheme 中设置好的配置。

(scheme基本就是你的工程名,大家可以看一下参考文章,我就不单截图了)

先到这里吧,目前就试了一个功能,后续有新功能再加进来

动手搭建 iOS CI 环境之「了解 xcodebuild 命令」 - CocoaChina_让移动开发更简单

Xcode9 xcodebuild 命令行打包遇到的坑与解决方案 - CSDN博客

xcodebuild使用总结 - CSDN博客

iOS使用xcodebuild命令打包 - CSDN博客

了解 xcodebuild 命令 ,自动打包ipa - 汤冉阳 - 博客园

你可能感兴趣的:(xcodebuild)