前言
在上一篇iOS持續(xù)化集成之Jenkins (一)
講述了 Jenkins 的環(huán)境搭建和所需插件的安裝明棍,這一篇我們將講述如何使用這些插件實(shí)現(xiàn) iOS 自動化打包并上傳到itunesconnect庐船、蒲公英逢唤,fir 等平臺
1稿辙、插件配置
1.1Keychains and Provisioning Profiles Management
1.2準(zhǔn)備文件
鑰匙串文件(位置在~/Library/Keychains/login.keychain-db
)
打包的描述文件(位置在~/Library/MobileDevice/Provisioning Profiles/
)
到達(dá)文件位置看你自己喜好,終端也可以趟畏,文件管理器也可與,為了方便可以將文件先復(fù)制到桌面,說明一下怨绣,鑰匙串文件需要刪除-db
才能被Jenkins使用,描述文件名稱無所謂拷获,找到你項(xiàng)目需要用的復(fù)制出來即可篮撑,
1.3上傳文件
password 輸入電腦密碼
Code Signing Identity 填寫開發(fā)者證書名稱(在鑰匙串中找到那個名字)
Provisioning Profiles Directory Path 填寫的內(nèi)容為
/Users/{一般是當(dāng)前的用戶名}/Library/MobileDevice/Provisioning Profiles
說簡單點(diǎn)就是xcode 描述文件的路經(jīng)
記得點(diǎn)save,不然就得在上傳填寫一次咯
1.4 xcode 配置
點(diǎn)擊系統(tǒng)管理-系統(tǒng)設(shè)置,下拉可以看到Xcode Builder
2匆瓜、Jenkins 項(xiàng)目構(gòu)建
2.1構(gòu)建任務(wù)
輸入項(xiàng)目名稱赢笨,選擇自由風(fēng)格點(diǎn)擊確定
2.2General配置
這一步是為了刪掉舊的東西,以免不必要的內(nèi)存占用
接下來進(jìn)行參數(shù)化構(gòu)建過程
例:選項(xiàng)參數(shù)驮吱,選項(xiàng)框里填寫選項(xiàng)茧妒,每個選項(xiàng)換行填寫,作用是在下面構(gòu)建的過程變得比較靈活左冬,例如下圖桐筏,特別說明下取值為
${名稱}
,例如${Archive}
這個時候我們先回到項(xiàng)目界面 build 一次拇砰,那么上面的選項(xiàng)配置就出來了
2.3源碼管理
SVN 為例
Repository URL這是Jenkins拉取代碼的路徑(精確到項(xiàng)目位置)梅忌,如果Credentials沒有狰腌,則點(diǎn)擊右邊的add,選擇 Jenkins牧氮,填上自己的svn賬號和密碼琼腔。
這里有點(diǎn)要注意 URL 的地址里的用戶名要與 svn 的賬號一致
svn信息填寫完畢后,點(diǎn)擊應(yīng)用保存蹋笼,然后回到項(xiàng)目主界面展姐,開始構(gòu)建,目的是確定 svn 正確
如果構(gòu)建成功剖毯,那么這個時候工作區(qū)間就會多了svn 的項(xiàng)目
如果構(gòu)建失敗,查看當(dāng)前構(gòu)建版本的控制臺輸入教馆,看錯誤原因逊谋,這里一般情況是你的svn信息填寫有誤,檢查一下
2.4 構(gòu)建環(huán)境
這里說明下土铺,剛開始勾選這兩項(xiàng)時胶滋,除了 Keychain 和 Provisioning Profile 是有值,其他都是空的悲敷,這個時候我們只需要保存和并構(gòu)建一次就會出現(xiàn)下圖的內(nèi)容了
2.5 xcode 構(gòu)建
構(gòu)建->增加構(gòu)建步驟->xcode
點(diǎn)擊 settings究恤,這一步就不貼圖了,主要就是填寫幾個參數(shù),我說明和解釋下
2.5.1 General build settings
'Development Team' (選擇打包證書)
'Target'(如果有多個工程target 需要填后德,否則忽略)
'Clean before build' (勾選部宿,等于xcode clean)
'Configuration' (編譯模式 'Release' 或者 'Debug')
'Xcode Schema File' (項(xiàng)目名字)
'Generate Archive' (勾選,Archive是否保留)
'Pack application, build and sign .ipa?' (勾選瓢湃,否者下面幾個參數(shù)是沒有的)
'Export method' (打包方式理张,遺憾的是不能用上面的可選參數(shù),只能填寫 'development', 'ad-hoc', 'enterprise' or 'app-store')
'.ipa filename pattern' (打包后的ipa 名字绵患,這個隨意填寫雾叭,一般寫項(xiàng)目名)
'Output directory' (ipa 輸出路徑,隨意配置落蝙,比如你可以放在桌面'/Users/{一般是當(dāng)前的用戶名}/Desktop/APP')
2.5.2 Code signing & OS X keychain options
'Automatic Signing'(懶得搞就直接選自動配置)
'Read from Xcode Project'(xcode 已經(jīng)配置好了织狐,那就選這個讀取)
'Manual signing'(這個就是手動選擇描述文件)
看需要自己選吧
2.5.3 Advanced Xcode build options
'Xcode Workspace File'(如果是pod 的管理第三庫項(xiàng)目的項(xiàng)目筏勒,填.xcworkspace 的名字移迫,把后綴格式刪掉)
'Xcode Workspace File'(如果不是pod 的管理第三庫項(xiàng)目的項(xiàng)目,填. xcodeproj 的名字奏寨,把后綴格式刪掉)
到這里xcode 配置就完成了起意,這個時候我們?nèi)?gòu)建一次,構(gòu)建成功后 在剛剛 填寫ipa 輸出路徑就可以看到一些文件了病瞳,如圖
2.6 發(fā)布到App Store 揽咕、 蒲公英
2.6.1 App Store
因?yàn)閖enkins xcode 插件沒有支持上傳App Store,所以我們需要使用shell 腳本悲酷,增加構(gòu)建步驟選擇shell,填上以下內(nèi)容
then
#上傳appStore
altool="/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Versions/A/Support/altool"
"${altool}" --validate-app -f "ipa的路徑" -u 開發(fā)者賬號 -p 賬號密碼 -t ios --output-format xml
"${altool}" --upload-app -f "ipa的路徑" -u 開發(fā)者賬號 -p 賬號密碼 -t ios --output-format xml
fi
這里特別說明下亲善,因?yàn)樘O果賬號有雙重認(rèn)證设易,所以這里填寫的密碼要去蘋果賬戶管理中心里的安全中生成APP專用密碼
另外這里有可能會要到altool file not found
,給 altool 建立軟鏈接就可以了 打開終端執(zhí)行
ln -s /Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/itms /usr/local/itms
2.6.2 蒲公英
直接看蒲公英官網(wǎng)文檔,里面有詳細(xì)說明使用方法
到這里Jenkins 配合插件實(shí)現(xiàn)自動化就完成了
最后我覺得這種方式自動化還不夠自由蛹头,比如我上面配置的
可選參數(shù)
沒有用上顿肺,還有上傳蒲公英沒有帶上日志等等一系列不爽的地方,所以我覺得插件形式的自動化還不夠爽渣蜗,于是我又研究了Jenkins+shell+python
的方式實(shí)現(xiàn)iOS持續(xù)化集成自動化iOS持續(xù)化集成之Jenkins (三)