iOS持續(xù)集成-Jenkins-自動化切換企業(yè)證書

前言

在利用Jenkins進行iOS持續(xù)集成的時候衰伯,有時候需要用開發(fā)證書打包、有時候需要企業(yè)證書打包积蔚。
我們在平時開發(fā)中一般都采用開發(fā)證書意鲸,會在git 中和代碼一起push同步,,因此平時用開發(fā)證書打包的時候尽爆,不用進行修改,直接使用git拉下來的證書和bundle ID怎顾。而在需要企業(yè)證書打包的時候需要切換到企業(yè)證書,而在持續(xù)集成中講究自動化漱贱,所以一個方案能夠?qū)崿F(xiàn)在構建之前進行自動化切換切換到企業(yè)證書槐雾,而不是手動更換證書。
在網(wǎng)上查詢了一些相關經(jīng)驗幅狮,并沒有找到相關可適用的實現(xiàn)方案募强,因此我根據(jù)自己的想法實現(xiàn)了這個自動化方案。

正文

首先我們需要在Jenkins兩個項目Job崇摄,一個用于開發(fā)證書打包擎值,一個用于企業(yè)證書打包。
負責開發(fā)證書打包的項目job只需要用git上的開發(fā)證書和相關配置即可(當然要保證git 上的配置是正確的)
而負責企業(yè)證書打包的項目job就需要在構建之前進行證書切換和相關配置修改的步驟逐抑。
切換證書更改是在project.pbxproj文件中鸠儿,因此我們主要是通過更改project.pbxproj來切換證書。
而實現(xiàn)自動化修改證書厕氨、配置有兩個方案:

方案一 :

備份一份企業(yè)證書打包時的project.pbxproj文件进每,在Jenkins構建之前,覆蓋掉更新下來的工程代碼中的project.pbxproj文件命斧,這樣便切換了相關證書配置田晚。

具體步驟:
1、備份project.pbxproj

首先更新代碼冯丙,然后在XCode上手動修改bunle ID肉瓦,證書等,然后進行一次手動Archive胃惜,保證Archive成功后泞莉,打開工程目錄,選中后綴為.xcodeproj的工程文件船殉,右擊, 選擇“顯示包內(nèi)容”鲫趁,找到project.pbxproj,將其復制利虫,找一個工程外的文件夾備份起來挨厚。

2堡僻、構建前修改project.pbxproj

如圖,在Jenkins的“構建”步驟中加入【Execute Shell】疫剃,一定要在【XCode】之前钉疫。
cp命令將備份的project.pbxproj覆蓋工程中的project.pbxproj
這樣就完成了證書修改巢价。

該方案的優(yōu)點是操作簡單快捷牲阁,而缺點也很明顯,適用性不強壤躲,當project.pbxproj的相關配置發(fā)生變化時就必須重新再手動整理一下project.pbxproj

方案二:

通過【Execute Shell】運行腳本直接更改project.pbxproj文件內(nèi)容城菊,來更好證書配置。

具體步驟:
1碉克、使用Git 查詢project.pbxproj更改內(nèi)容

跟方案一一樣凌唬,先更新代碼,手動修改切換到企業(yè)證書配置漏麦,接著通過git diff查詢project.pbxproj更改的內(nèi)容客税。

2、完成修改配置的Python腳本

編寫一份Python腳本撕贞,用于完成project.pbxproj修改霎挟。
Python 腳本如下:

#!/usr/bin/python
# -*- coding: UTF-8 -*- 

import os
import sys

def changeStr(filePath,old_str,new_str) :
    backup_path = "%s.backup" % filePath

    file = open(filePath, "r")
    new_file = open(backup_path, "w")
    for line in file :
        if old_str in line :
            print("-:   " + line)
            line = line.replace(old_str,new_str)
            print("+:   " + line)
        new_file.write(line)

    os.remove(filePath)
    os.rename(backup_path,filePath)


# ***********  修改證書配置 **********
pbxprojPath = "`project.pbxproj的路徑"
#DevelopmentTeam
changeStr(pbxprojPath,"DevelopmentTeam = 修改前的內(nèi)容","DevelopmentTeam = 修改后的內(nèi)容")
#CODE_SIGN_IDENTITY
changeStr(pbxprojPath,"\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"修改前的內(nèi)容(CH5GWHU3G5)\"","\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \" 修改后的內(nèi)容\"")
...
#這里不一一列舉了,只要通過changeStr方法修改git diff查詢到的所有更改內(nèi)容
3麻掸、執(zhí)行腳本

在【構建】的【Xcode】步驟加入【Execute shell】,執(zhí)行
python 腳本路徑 project.pbxproj所在文件夾的路徑


這樣每次構建的時候都能夠自動修改XCode上的證書配置赐纱。

后語

要注意Jenkins 上的XCode證書配置也要選擇正確的企業(yè)證書脊奋。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市疙描,隨后出現(xiàn)的幾起案子诚隙,更是在濱河造成了極大的恐慌,老刑警劉巖起胰,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件久又,死亡現(xiàn)場離奇詭異,居然都是意外死亡效五,警方通過查閱死者的電腦和手機地消,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來畏妖,“玉大人脉执,你說我怎么就攤上這事〗浣伲” “怎么了半夷?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵婆廊,是天一觀的道長。 經(jīng)常有香客問我巫橄,道長淘邻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任湘换,我火速辦了婚禮宾舅,結果婚禮上,老公的妹妹穿的比我還像新娘枚尼。我一直安慰自己贴浙,他們只是感情好,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布署恍。 她就那樣靜靜地躺著崎溃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪盯质。 梳的紋絲不亂的頭發(fā)上袁串,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天,我揣著相機與錄音呼巷,去河邊找鬼囱修。 笑死,一個胖子當著我的面吹牛王悍,可吹牛的內(nèi)容都是我干的破镰。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼压储,長吁一口氣:“原來是場噩夢啊……” “哼鲜漩!你這毒婦竟也來了?” 一聲冷哼從身側響起集惋,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤孕似,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后刮刑,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體喉祭,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年雷绢,在試婚紗的時候發(fā)現(xiàn)自己被綠了泛烙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡习寸,死狀恐怖胶惰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情霞溪,我是刑警寧澤孵滞,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布中捆,位于F島的核電站,受9級特大地震影響坊饶,放射性物質(zhì)發(fā)生泄漏泄伪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一匿级、第九天 我趴在偏房一處隱蔽的房頂上張望蟋滴。 院中可真熱鬧,春花似錦痘绎、人聲如沸津函。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽尔苦。三九已至,卻和暖如春行施,著一層夾襖步出監(jiān)牢的瞬間允坚,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工蛾号, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留稠项,地道東北人。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓鲜结,卻偏偏與公主長得像展运,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子精刷,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345

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