持續(xù)集成jenkins環(huán)境部署中遇到的那些坑

新聞ios

  1. Keychain和證書(shū)的坑:jenkins安裝之后會(huì)自動(dòng)生成一個(gè)jenkins賬號(hào).但是我們當(dāng)時(shí)是在ios賬號(hào)下工作,必須把keychain和證書(shū)拷貝到j(luò)enkins的文件夾下,才能有權(quán)限讀取.

  2. Schema:當(dāng)時(shí)一直報(bào)錯(cuò)說(shuō)沒(méi)有schema文件,后來(lái)在xcode中,把我們需要的schema文件勾選中就解決了.

  3. 打包仍然不成功,查問(wèn)題發(fā)現(xiàn)是xcode的版本和ios系統(tǒng)沒(méi)有更新.于是更新了一下ios和xcode版本.這一下不要緊,jenkins的主目錄從系統(tǒng)共享下的jenkins文件夾變成了ios賬號(hào)下的.jenkins文件夾. 所以進(jìn)去之后發(fā)現(xiàn)所有的配置全部清零了.但當(dāng)時(shí)并不知道是因?yàn)閖enkins的主目錄更換了. 所以又重新配了一遍所有的環(huán)境和證書(shū).

  4. 然后這時(shí)ssh校驗(yàn)又通過(guò)不了了.跟以前的配置一摸一樣完全沒(méi)有改動(dòng),但怎么都報(bào)錯(cuò).在terminal中用ssh -T 去連接卻是通的.這時(shí)候又崩潰了.根據(jù)報(bào)錯(cuò)查了很多資料,但是很多情況都會(huì)報(bào)這種錯(cuò)誤,根本沒(méi)法定位到問(wèn)題.最后也是在一個(gè)英文的犄角旮旯的網(wǎng)站上看到說(shuō),如果mac的系統(tǒng)更新了,jenkins必須退出重啟服務(wù),ssh才能連上.重啟之后果然好了...

  5. archive成功了,但生成包不成功.在jenkins控制臺(tái)輸出的日志中,直接原樣copy命令在terminal中可以打包成功.最后也是找了很多很多資料,嘗試了很多修改,都快要放棄了,打算執(zhí)行命令行打包了.然后想到在jenkins中xcode的插件一直被人詬病說(shuō)不穩(wěn)定,于是上插件那里看了一下,發(fā)現(xiàn)正好有xcode插件的新版本需要更新.于是更新了一下.更新完之后打包成功…應(yīng)該是因?yàn)閤code剛更新了一個(gè)版本,但我的插件沒(méi)有更新,所以用插件打包導(dǎo)致失敗.

其實(shí)ios的坑遠(yuǎn)不止這些,從一開(kāi)始打包就是一直各種報(bào)錯(cuò),不通過(guò),這些雷都一一踩過(guò)來(lái)了.并且今后的打包也一定會(huì)存在各種各樣因?yàn)閕os系統(tǒng)更新和xcode版本產(chǎn)生的問(wèn)題.所以,坑無(wú)止境.

新聞android

  1. 因?yàn)閍ndroid和ios的代碼在同一個(gè)gitlab下部署的,訪問(wèn)賬號(hào)一個(gè)是lian哥的,一個(gè)是liao妹子的.所以本機(jī)必須配兩個(gè)ssh,創(chuàng)建config文件指定訪問(wèn)關(guān)系.

  2. 裝環(huán)境的時(shí)候,我直接按照網(wǎng)上說(shuō)的下載了android的sdk和gradle的最新版本.但是后來(lái)開(kāi)發(fā)說(shuō)他們安卓的代碼必須用gradle3.3打包才可以.他們有指定了gradle的版本,其他版本是打不過(guò)的.于是就用了gradlew build命令去打包,這個(gè)命令會(huì)自動(dòng)去下載gradle3.3版本,和依賴(lài)包.但是也是一直打包失敗.以為是gradle版本的問(wèn)題,因?yàn)橹芭淞谁h(huán)境變量,指定了gradle的文件夾,所以決定把4.9的版本刪除掉.但是刪除之后,每次一build,就會(huì)在ios賬號(hào)下生成.gradle文件夾,然后去下載一些4.9的東西.也是把4.9的東西能刪的都刪了,環(huán)境變量也刪了,結(jié)果一 -v 每次出來(lái)都是4.9的版本信息.最后開(kāi)發(fā)說(shuō)這個(gè)應(yīng)該是不影響3.3的下載和打包的.于是在打包時(shí)加了—info和--debug來(lái)查看打包的具體情況,發(fā)現(xiàn)是在下載某個(gè)依賴(lài)包時(shí),總是循環(huán)一個(gè)建立連接,鎖定,解除鎖定的步驟.一直循環(huán)就是無(wú)法下載成功.找不到問(wèn)題所在.開(kāi)發(fā)說(shuō),他的linux機(jī)器沒(méi)問(wèn)題.但后來(lái)他發(fā)現(xiàn)那臺(tái)機(jī)器打某一個(gè)分支的時(shí)候,跟我報(bào)了一樣的錯(cuò).該分支打包時(shí)的project從master的10個(gè)變成了12個(gè),它需要下載新的依賴(lài)包.于是分析應(yīng)該是下載時(shí),建立連接不成功,網(wǎng)絡(luò)問(wèn)題.這時(shí)又來(lái)一個(gè)坑中之坑.因?yàn)檫@個(gè)報(bào)錯(cuò)之前一條日志,說(shuō)的是開(kāi)始建立ssl連接,于是我們以為是端口限制.之前滕菲跟我說(shuō)過(guò)咱們公司封掉了所有ssh的22端口.而當(dāng)時(shí)另一個(gè)開(kāi)發(fā)說(shuō)可能是封了ssl的443端口.于是我又去找運(yùn)維問(wèn)這件事,并附上了報(bào)錯(cuò)的截圖.運(yùn)維說(shuō),是的,公司封掉了這兩個(gè)端口,你可以自己改一下.然后又在網(wǎng)上找資料修改這兩個(gè)默認(rèn)端口號(hào).改完之后,錯(cuò)誤依舊.于是我想,是不是這臺(tái)機(jī)器的問(wèn)題.因?yàn)殚_(kāi)發(fā)的linux可以打master.于是我又分別在我的筆記本和臺(tái)式機(jī)上進(jìn)行了build.發(fā)現(xiàn)是同樣的報(bào)錯(cuò).排除了機(jī)器本身問(wèn)題.然后我對(duì)自己說(shuō),能做的都做了啊,現(xiàn)在的問(wèn)題已經(jīng)不是我能解決的了,先放下避免浪費(fèi)時(shí)間.結(jié)果轉(zhuǎn)天開(kāi)發(fā)就跟我說(shuō)他之前失敗的分支可以打成功了.于是我上去試了一下,之前下載依賴(lài)包那里果然過(guò)去了.嗯,就是咱們公司網(wǎng)絡(luò)問(wèn)題.樓下的鍋.

  3. 本著好奇害死貓的精神,最后讓我找到了gradle的主目錄.原來(lái)這個(gè)蘋(píng)果系統(tǒng)是搭建在unix系統(tǒng)下的,在蘋(píng)果系統(tǒng)以外unix的某個(gè)文件夾下安裝著gradle4.9.
    下面這個(gè)命令可以顯示本機(jī)的gradle的安裝路徑
    brew info gradle
    但這我事先并不知道,而是在多次嘗試中碰巧發(fā)現(xiàn)了這個(gè)命令執(zhí)行后在某個(gè)位置輸出了gradle的路徑.
    馬上干掉它! 然后再-v一下,好了.現(xiàn)在是3.3版本了.

視頻android

  1. 視頻安卓版本打包也有一個(gè)坑.就是ssh的連接.因?yàn)橛辛酥耙粋€(gè)機(jī)器實(shí)現(xiàn)生成多個(gè)ssh匹配不同賬號(hào)的經(jīng)驗(yàn),于是直接上了config文件把配置加進(jìn)去了.然后發(fā)現(xiàn),連接失敗.這個(gè)連接失敗的報(bào)錯(cuò)啊,跟之前ssh的問(wèn)題一樣,錯(cuò)誤很簡(jiǎn)單,就是聯(lián)不通,但是錯(cuò)誤產(chǎn)生的原因是多種多樣的,你很難在網(wǎng)上找到屬于你的那個(gè)答案.在看了很多個(gè)回答和做了很多種嘗試之后,依然是連接不上的.這個(gè)時(shí)候,先排除ssh key的問(wèn)題.因?yàn)橐曨l的代碼是他們自己搭的在一個(gè)gerrit的平臺(tái)上,跟github不沖突,所以我直接把ssh配成了之前本機(jī)最原始的ssh,然后把config文件改了一個(gè)亂七八糟的名字.這個(gè)時(shí)候ssh應(yīng)該是不會(huì)去訪問(wèn)這個(gè)config文件了,然后驚喜的發(fā)現(xiàn)這一次連接成功了.那么就一定是config文件配的有問(wèn)題.但是又并不知道問(wèn)題在哪里.也是多方查找config文件的模版,終于讓我找到一個(gè)人說(shuō),如果有端口號(hào)的話需要配置Port參數(shù).是的,視頻的git地址是帶端口號(hào)的.這個(gè)端口號(hào)在host參數(shù)上直接在域名后面掛上冒號(hào)端口號(hào),可能是不識(shí)別的.于是果斷加上Port參數(shù).然后就,真的成功了…所以,當(dāng)本機(jī)需要指定多個(gè)ssh時(shí),在config文件中,如果訪問(wèn)地址有指定的端口號(hào),需要增加Port參數(shù),否則會(huì)訪問(wèn)失敗.

其他:

  1. 剛裝上jenkins之后,發(fā)現(xiàn)連網(wǎng)線的機(jī)器可以正常訪問(wèn),但無(wú)線網(wǎng)的筆記本都無(wú)法訪問(wèn).各種猜測(cè)和嘗試之后都不好使,于是決定改一下端口號(hào).網(wǎng)上能搜到的普遍的改端口號(hào)的方法對(duì)這臺(tái)服務(wù)器都無(wú)效.改了很多次,最后找了一個(gè)不一樣的方法,強(qiáng)制在啟動(dòng)時(shí)修改端口號(hào),成功.并且改了端口號(hào)之后,無(wú)線網(wǎng)的機(jī)器也真的能訪問(wèn)了...
    Jenkins默認(rèn)的端口號(hào)是8080,修改方法:
    1. 打開(kāi)終端蜕乡,cd 到Jenkins的安裝目錄(即jenkins.war所在目錄)顶掉,如:D:\Program Files (x86)\Jenkins
    2. 執(zhí)行命令:“java -jar jenkins.war --ajp13Port=-1 --httpPort=8081”
    其中8081就是新的端口號(hào),也可以設(shè)置為其他的端口陪踩。

  2. 用ios-deploy 安裝包

https://segmentfault.com/a/1190000010205616

https://www.npmjs.com/package/ios-deploy

https://testerhome.com/topics/12672

最后用了這個(gè)命令成功:

先獲取duid:

ios-deploy -c

然后先uninstall已安裝的app,再執(zhí)行安裝:

ios-deploy --id XXX -r --bundle_id ifengNews -b /Users/iOS/.jenkins/....../ifengnews.ipa

查看連接設(shè)備

Instruments -s devices

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市悉抵,隨后出現(xiàn)的幾起案子肩狂,更是在濱河造成了極大的恐慌,老刑警劉巖姥饰,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件傻谁,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡列粪,警方通過(guò)查閱死者的電腦和手機(jī)审磁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)岂座,“玉大人力图,你說(shuō)我怎么就攤上這事〔舯疲” “怎么了吃媒?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)吕喘。 經(jīng)常有香客問(wèn)我赘那,道長(zhǎng),這世上最難降的妖魔是什么氯质? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任募舟,我火速辦了婚禮,結(jié)果婚禮上闻察,老公的妹妹穿的比我還像新娘拱礁。我一直安慰自己,他們只是感情好辕漂,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布呢灶。 她就那樣靜靜地躺著,像睡著了一般钉嘹。 火紅的嫁衣襯著肌膚如雪鸯乃。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,146評(píng)論 1 297
  • 那天跋涣,我揣著相機(jī)與錄音缨睡,去河邊找鬼鸟悴。 笑死,一個(gè)胖子當(dāng)著我的面吹牛奖年,可吹牛的內(nèi)容都是我干的细诸。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼陋守,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼揍堰!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起嗅义,我...
    開(kāi)封第一講書(shū)人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎隐砸,沒(méi)想到半個(gè)月后之碗,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡季希,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年褪那,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片式塌。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡博敬,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出峰尝,到底是詐尸還是另有隱情偏窝,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布武学,位于F島的核電站祭往,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏火窒。R本人自食惡果不足惜硼补,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望熏矿。 院中可真熱鬧已骇,春花似錦、人聲如沸票编。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)慧域。三九已至乱豆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吊趾,已是汗流浹背宛裕。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工瑟啃, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人揩尸。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓蛹屿,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親岩榆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子错负,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

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