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
總結
以上是生活随笔為你收集整理的XCodeBuild 使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iPhone小技巧:如何用Siri发布微
- 下一篇: 插件FlipCam:快速切换前置和后置摄