美文网首页
xcodebuild

xcodebuild

作者: Amanda_Lhy | 来源:发表于2018-04-26 14:22 被阅读0次

    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

          本文链接:https://www.haomeiwen.com/subject/mfgplftx.html