XCodeBuild 使用

一. xcodebuild简介

在介绍xcodebuild之前,需要先弄清楚一些在XCode环境下的一些概念: 
- Workspace:简单来说,Workspace就是一个容器,在该容器中可以存放多个你创建的Xcode Project, 以及其他的项目中需要使用到的文件。 
使用Workspace的好处有: 
(1)扩展项目的可视域,即可以在多个项目之间跳转,重构,一个项目可以使用另一个项目的输出。Workspace会负责各个Project之间提供各种相互依赖的关系; 
(2)多个项目之间共享Build目录。 
- Project:指一个项目,该项目会负责管理生成一个或者多个软件产品的全部文件和配置,一个Project可以包含多个Target。 
- Target:一个Target是指在一个Project中构建的一个产品,它包含了构建该产品的所有文件,以及如何构建该产品的配置。 
- Scheme:一个定义好构建过程的Target成为一个Scheme。可在Scheme中定义的Target的构建过程有:Build/Run/Test/Profile/Analyze/Archive 
- BuildSetting:配置产品的Build设置,比方说,使用哪个Architectures?使用哪个版本的SDK?在Xcode Project中,有Project级别的Build Setting,也有Target级别的Build Setting。Build一个产品时一定是针对某个Target的,因此,XCode中总是优先选择Target的Build Setting,如果Target没有配置,则会使用Project的Build Setting。 
弄清楚上面的这些概念之后,xcodebuild就很好理解了,官网上对其作用的描述如下: 
xcodebuild builds one or more targets contained in an Xcode project, or builds a scheme contained in an Xcode workspace or Xcode project. 
xcodebuild就是用了构建产品的命令行工具,其用法可以归结为3个部分: 
• 可构建的对象 
• 构建行为 
• 一些其他的辅助命令 
可以构建的对象有,默认情况下会运行project下的第一个target: 
• workspace:必须和“-scheme”一起使用,构建该workspace下的一个scheme。 
• project:当根目录下有多个Project的时候,必须使用“-project”指定project,然后会运行 
• target:构建某个Target 
• scheme:和“-workspace”一起使用,指定构建的scheme。 
构建行为包括: 
• clean:清除build目录下的 
• build: 构建 
• test: 测试某个scheme,必须和”-scheme”一起使用 
• archive:打包,必须和“-scheme”一起使用 
辅助命令包括: 
• -sdk:指定构建使用的SDK 
• -list:列出当前项目下所有的Target和scheme。 
• -version:版本信息

二. xcodebuild基本命令使用

2.1查看xcode的版本号和build版本

$xcodebuild –version 
显示内容: 
Xcode 9.0 
Build version 9M137d

2.2显示当前系统的sdk及其版本

$xcodebuild -showsdks 
显示内容: 
iOS SDKs: 
iOS 11.0 -sdk iphoneos11.0 
iOS Simulator SDKs: 
Simulator - iOS 11.0 -sdk iphonesimulator11.0 
macOS SDKs: 
macOS 10.13 -sdk macosx10.13 
tvOS SDKs: 
tvOS 11.0 -sdk appletvos11.0 
tvOS Simulator SDKs: 
Simulator - tvOS 11.0 -sdk appletvsimulator11.0 
watchOS SDKs: 
watchOS 4.0 -sdk watchos4.0 
watchOS Simulator SDKs: 
Simulator - watchOS 4.0 -sdk watchsimulator4.0\

2.3显示工程项目信息

先cd到工程目录下(有*.xcodeproj的目录,比如CMBUnitAutoTestProject3.xcodeproj),然后输入命令: 

$ xcodebuild –list 

显示内容: 
Information about project “CMBUnitAutoTestProject”: 
Targets: 
CMBUnitAutoTestProject 
CMBUnitAutoTestProjectTests 
CMBOCHamcrestTest 
CMBOHHttpStubsTest 
Build Configurations: 
Debug 
Release 
If no build configuration is specified and -scheme is not passed then “Release” is used. 
Schemes: 
CMBFoundation 
CMBUnitAutoTestProject 
CMBFoundationUniversal 
注:如果未指定Configurations,默认为release

**********************************************************************************************************

xcodebuild执行打包,jenkins上配置签名:

cd ${WORKSPACE};sh ;
security unlock-keychain -p "1" /Users/suning/Library/Keychains/login.keychain-db;
xcodebuild -target PPSports;
xcrun -sdk iphoneos PackageApplication -v build/Release-iphoneos/PPSports.app -o ${WORKSPACE}/build/aaa.ipa



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值