iOS持續(xù)化集成之Jenkins (二)

前言
在上一篇iOS持續(xù)化集成之Jenkins (一)
講述了 Jenkins 的環(huán)境搭建和所需插件的安裝明棍,這一篇我們將講述如何使用這些插件實(shí)現(xiàn) iOS 自動化打包并上傳到itunesconnect庐船、蒲公英逢唤,fir 等平臺

1稿辙、插件配置

1.1Keychains and Provisioning Profiles Management

keychains.png
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ā)者證書名稱(在鑰匙串中找到那個名字)

keychains.png

Provisioning Profiles Directory Path 填寫的內(nèi)容為
/Users/{一般是當(dāng)前的用戶名}/Library/MobileDevice/Provisioning Profiles
說簡單點(diǎn)就是xcode 描述文件的路經(jīng)
Provisioning Profiles.png

記得點(diǎn)save,不然就得在上傳填寫一次咯

1.4 xcode 配置

點(diǎn)擊系統(tǒng)管理-系統(tǒng)設(shè)置,下拉可以看到Xcode Builder


Xcode Builder.png

2匆瓜、Jenkins 項(xiàng)目構(gòu)建

2.1構(gòu)建任務(wù)

輸入項(xiàng)目名稱赢笨,選擇自由風(fēng)格點(diǎn)擊確定


新建任務(wù)一.png
新建任務(wù)二.png

2.2General配置

這一步是為了刪掉舊的東西,以免不必要的內(nèi)存占用


丟棄舊的構(gòu)建.png

接下來進(jìn)行參數(shù)化構(gòu)建過程
例:選項(xiàng)參數(shù)驮吱,選項(xiàng)框里填寫選項(xiàng)茧妒,每個選項(xiàng)換行填寫,作用是在下面構(gòu)建的過程變得比較靈活左冬,例如下圖桐筏,特別說明下取值為
${名稱},例如${Archive}

參數(shù)化構(gòu)建過程.png

這個時候我們先回到項(xiàng)目界面 build 一次拇砰,那么上面的選項(xiàng)配置就出來了


選項(xiàng)參數(shù).png

2.3源碼管理

SVN 為例
Repository URL這是Jenkins拉取代碼的路徑(精確到項(xiàng)目位置)梅忌,如果Credentials沒有狰腌,則點(diǎn)擊右邊的add,選擇 Jenkins牧氮,填上自己的svn賬號和密碼琼腔。
這里有點(diǎn)要注意 URL 的地址里的用戶名要與 svn 的賬號一致

源碼管理.png

svn信息填寫完畢后,點(diǎn)擊應(yīng)用保存蹋笼,然后回到項(xiàng)目主界面展姐,開始構(gòu)建,目的是確定 svn 正確
選項(xiàng)參數(shù).png

如果構(gòu)建成功剖毯,那么這個時候工作區(qū)間就會多了svn 的項(xiàng)目
如果構(gòu)建失敗,查看當(dāng)前構(gòu)建版本的控制臺輸入教馆,看錯誤原因逊谋,這里一般情況是你的svn信息填寫有誤,檢查一下
工作區(qū)生成.png

2.4 構(gòu)建環(huán)境

這里說明下土铺,剛開始勾選這兩項(xiàng)時胶滋,除了 Keychain 和 Provisioning Profile 是有值,其他都是空的悲敷,這個時候我們只需要保存和并構(gòu)建一次就會出現(xiàn)下圖的內(nèi)容了


keychains.png

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 輸出路徑就可以看到一些文件了病瞳,如圖


app.png

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 (三)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末屠尊,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子耕拷,更是在濱河造成了極大的恐慌讼昆,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件骚烧,死亡現(xiàn)場離奇詭異浸赫,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)赃绊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門既峡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人碧查,你說我怎么就攤上這事运敢。” “怎么了么夫?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵者冤,是天一觀的道長。 經(jīng)常有香客問我档痪,道長涉枫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任腐螟,我火速辦了婚禮愿汰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘乐纸。我一直安慰自己衬廷,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布汽绢。 她就那樣靜靜地躺著吗跋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上跌宛,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天酗宋,我揣著相機(jī)與錄音,去河邊找鬼疆拘。 笑死蜕猫,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的哎迄。 我是一名探鬼主播回右,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼漱挚!你這毒婦竟也來了翔烁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤棱烂,失蹤者是張志新(化名)和其女友劉穎租漂,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體颊糜,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年秃踩,在試婚紗的時候發(fā)現(xiàn)自己被綠了衬鱼。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡憔杨,死狀恐怖鸟赫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情消别,我是刑警寧澤抛蚤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站寻狂,受9級特大地震影響岁经,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蛇券,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一缀壤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧纠亚,春花似錦塘慕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春蛤织,著一層夾襖步出監(jiān)牢的瞬間赴叹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工瞳筏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留稚瘾,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓姚炕,卻偏偏與公主長得像摊欠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子柱宦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容