想想當(dāng)初天天來到公司,每天需要做一件事就是打開Xcode打包ipa,上傳到fir。日復(fù)一日月復(fù)一月年復(fù)一年的做著同樣的事情,作為有志成為優(yōu)秀工程師的我來說,這是必須要解決的問題,所以決定自動化解決問題。
xcodebuild 是蘋果發(fā)布自動構(gòu)建的工具。它在一個Xcode項(xiàng)目下能構(gòu)建一個或者多個targets ,也能在一個workspace或者Xcode項(xiàng)目上構(gòu)建scheme,總的來說,用它沒錯就是了。
Tips:在終端輸入man xcodebuild,可以看到Description里面有介紹用法。
也可以看官方文檔
當(dāng)你想構(gòu)建一個Xcode項(xiàng)目,在項(xiàng)目目錄下運(yùn)行xcodebuild
就可以了(目錄下面包含著projectname.xcodeproj
文件就行),如果目錄下有多個項(xiàng)目,你需要用參數(shù)-project
指定一個項(xiàng)目。默認(rèn)xcodebuild
命令會構(gòu)建你第一個target的。當(dāng)然你也可以用-targetname
指定。
如果要構(gòu)建workspace,你必須指定-workspace
和-scheme
參數(shù)。
當(dāng)然你可以以用就比如-version、-showsdks、-list等一些命令來獲取一些項(xiàng)目相關(guān)的參數(shù)。
在shell里面 [ ]表示這個參數(shù)是可選的,< > 表示參數(shù)是必須的
話不多說,先上個命令:
xcodebuild [-project projectname] [-target targetname ...] [-configuration configurationname] [-sdk [sdkfullpath | sdkname]] [buildaction ...] [setting=value ...] [-userdefault=value ...]
xcodebuild -list
獲取 xcodebuild -list
獲取xcodebuild -showsdks
得到,我一般都是默認(rèn)buildaction 這個指的是構(gòu)建的動作,一般有build
,analyze
,archive
,test
,install
,clean
,默認(rèn)當(dāng)然是build
了
還有其他的一些參數(shù)比較少用到
來看看xcodebuild -list
吧
Information about project "ThreeDTouchTest":
Targets: ThreeDTouchTest ThreeDTouchTestTests ThreeDTouchTestUITests Build Configurations: Debug Release If no build configuration is specified and -scheme is not passed then "Release" is used. Schemes: ThreeDTouchTest
你們想要的Target有了,Schemes也有了,Configurations也有了,來看看xcodebuild -showsdks
OS X SDKs: OS X 10.11 -sdk macosx10.11iOS SDKs: iOS 9.2 -sdk iphoneos9.2iOS Simulator SDKs: Simulator - iOS 9.2 -sdk iphonesimulator9.2tvOS SDKs: tvOS 9.1 -sdk appletvos9.1tvOS Simulator SDKs: Simulator - tvOS 9.1 -sdk appletvsimulator9.1watchOS SDKs: watchOS 2.1 -sdk watchos2.1watchOS Simulator SDKs: Simulator - watchOS 2.1 -sdk watchsimulator2.1
構(gòu)建吧,兄臺們,還等什么?接著來看看構(gòu)建workspace命令是怎么樣的
xcodebuild -workspace workspacename -scheme schemename [-destination destinationspecifier] [-destination-timeout value] [-configuration configurationname] [-sdk [sdkfullpath | sdkname]] [buildaction ...] [setting=value ...] [-userdefault=value ...]
基本都一樣,只不過這里的workspacename跟schemename必須要指定。
命令運(yùn)行成功后,一般會在你的項(xiàng)目目錄下生成build文件夾,你可以在里面看到你的生成的包,還有dSYM文件。(好像對workspace構(gòu)建后不會在項(xiàng)目目錄下生成build文件夾,那你可以在你的命令后面添加SYMROOT=buildDir
指定一個build文件夾)。
對了,還有這個命令可以查看項(xiàng)目設(shè)置:
xcodebuild -target <target> -configuration <configuration> -showBuildSettings
生成文件使用的是xrun命令:
xcrun -sdk iphoneos -v PackageApplication ./build/Release-iphoneos/xxx.app -o ~/Desktop/xxx.ipa
打包成功后,會在桌面找到你的ipa。
是不是很簡單呢?
這個就更簡單了,敬請參照:Fir的命令行客戶端
作為開發(fā)人員,肯定不可能天天跟著測試人員跑。自動化是非常有必要的,所以會點(diǎn)腳本,肯定不會吃虧。
最后推薦一個好東西:自動構(gòu)建打包,不是我寫的,有這么好的輪子怎么會自已再寫一個呢?
參考文檔
聯(lián)系客服