1. 程式人生 > >IOS使用jenkins進行持續整合2

IOS使用jenkins進行持續整合2

上一篇,自己嘗試進行持續整合,研究的不深入,這兩天,為公司搭建持續整合環境,以及內部發布系統,瞭解的更多了,所以分享出來。

這篇主要介紹一些其他東西,不重複介紹上一篇的內容。

如果使用jenkins進行ios持續整合,需要xcode外掛支援,所以先下載xcode外掛,而且後期還要用到ftp服務,也安裝ftp的外掛。

jenkins中可以自己建立特定的檢視分組,all檢視點選+號就能建立新檢視,建立好後,在左側的編輯檢視選項,則會進入詳情頁,可以選擇放入此檢視的任務;相對於任務,我覺得最好依據程式碼svn地址,一般程式碼是分版本儲存在不同位置,所以我們的任務也指向的一個版本,我是任務區分的版本號,例如 xxx_iphone_dev_2.5.0.


下面講述IOS任務中的一些配置

1.一般勾選丟棄舊的構建,這樣會清理build資料夾。

2.原始碼管理,一般使用Subverison,

Respository url,這是設定你的程式碼的svn地址,控制好訪問到哪一個資料夾。

Local module directory (optional),這是讓你自己設定程式碼儲存到本地工作區的自定義目錄,如果不寫,則程式碼直接放在當前工作區目錄下;如果自定義目錄,則會在工作區建立這個目錄結構,

然後程式碼儲存到這個目錄下。

原始碼管理,允許你下載多個地址的程式碼,點選add more locations...。

具體看圖,一看就明白。


不同的程式碼下載到不同的目錄,實際檔案結構如下圖。

一般,程式碼checkout策略,update就行。


3.觸發器沒加呢,可以設定每天幾點觸發構建,這個比較好,看自己需要。

4.增加xcode構建步驟

這裡需要注意你的xcode工程的型別,和svn地址。

一般如果你的工程是單一的project,則好說,像下面,寫個工程內的target,


打ipa包,寫入ipa包名稱,不用加.ipa,jenkins自動加上,輸出目錄,這裡需要說下,jenkins中有很多地方都要匹配正確目錄結構,大家可以看jenkins任務執行的日誌看哪裡出錯,更可以看

實際的物理檔案,/Users/xxx/.jenkins/workspace/job名稱/。(.開頭的一般是隱藏檔案,一般mac使用者都會讓系統顯示隱藏檔案)。

5.簽名

簽名的得寫全名稱,下面的描述檔案那個不用填,否則報錯,前提是你的程式的target需要設定好工程能識別的簽名證書,注意需要正常識別,不存在的描述檔案配置可不行。


6.xcode高階配置

由於我們的工程是一個workspace而不是單一的project,所以直接簡單配置target是不管用的。


這裡需要注意,你使用的當前執行jenkins的mac電腦,需要執行下程式,進而產生當前電腦使用者的scheme,然後上傳到svn,這時再下載的時候,才會存在該使用者的scheme,否則svn程式碼原來不帶該使用者的scheme,就不能build成功,報錯說當前的workspace不存在xxx scheme。

xcode scheme file填寫程式的scheme。

SDK填寫你當前xcode命令列連線的xcode app的支援的sdk,假如你沒注意過命令列,

haiwangdeMac-mini:VANCL hai$ xcodebuild -version

Xcode 6.0

Build version 6A313

這個說明我的使用的是xcode6.0.

haiwangdeMac-mini:VANCL hai$ xcodebuild -showsdks

OS X SDKs:

OS X 10.9                     -sdk macosx10.9

iOS SDKs:

iOS 8.0                       -sdk iphoneos8.0

iOS Simulator SDKs:

Simulator - iOS 5.0           -sdk iphonesimulator5.0

Simulator - iOS 6.0           -sdk iphonesimulator6.0

Simulator - iOS 7.1           -sdk iphonesimulator7.1

Simulator - iOS 8.0           -sdk iphonesimulator8.0

這個說明當前xcode支援的sdks。如果你命令列連線的xcode5,又SDK填入的iphoneos8.0,則會報錯沒有此sdk.

haiwangdeMac-mini:VANCL hai$ xcode-select -p

/Applications/Xcode 6.0.app/Contents/Developer

上個命令說明你的命令列連線的哪裡。

Usage: xcode-select [options]

Print or change the path to the active developer directory. This directory

controls which tools are used for the Xcode command line tools (for example, 

xcodebuild) as well as the BSD development commands (such as cc and make).

Options:

  -h, --help                  print this help message and exit

  -p, --print-path            print the path of the active developer directory

  -s <path>, --switch <path>  set the path for the active developer directory

  -v, --version               print the xcode-select version

  -r, --reset                 reset to the default command line tools path

使用xcode-select -s <path>  可以重新設定命令列連線的地址,設定你連線到那個xcode版本上。 xcode workspace file  指定你的workspace在哪裡,多個svn地址的時候需要為每個xcode構建配置不同的workspace。也許是2.5.0/xxx,也許是3.0.0/xxx. build output directory 輸出目錄,你的任務構建的成果就出現在這個目錄結構中,你的程式的app啊還有打成的ipa包啊plist檔案等等。 在xcode構建中,你可以建立多個xcode構建過程,進而打不同的程式包。 6.構建後操作--郵件 一般都會設定郵件接收build失敗的報告。這個需要說下系統管理--這裡設定很多東西。 恩,同時也說說其他的。 有個執行者數量,設定同時執行多少個jobs。 Default view 預設檢視。 Jenkins Location 需要配置jenkins url,這臺機器的jenkins服務地址,http://10.8.53.131:8080/。 系統管理員郵件地址,填 vancl_ios_jenkins <[email protected]>
Subversion 一般選擇1.7. 郵件通知,需要設定SMTP伺服器。

注意下面有個選框,通過傳送測試郵件測試配置,你可以設定一個郵件接收方測試郵件是否能夠傳送成功。

7.ftp上傳服務

上一篇有個軟體 lion weak吧,開放電腦的ftp功能。

在系統設定中設定ftp引數


我是傳到本地。

然後是釋出成果到ftp伺服器。

我是直接傳送到我的tomcat目錄的釋出系統的下面。



這裡需要注意,一般選擇flatten files,這樣的話,你上傳的Source路徑下的目錄結構就不會一起上傳到Destination中,只會上傳相應的檔案;如果沒有勾選,則會在Destination的目錄結構下

又建立了Source的目錄結構,很不爽。

這裡再說下支援手機內直接下載安裝的東西。


打ipa包的時候可以直接生成plist檔案,它的plist的url填寫成你的服務的地址,這個地址加上檔名就組成了可下載ipa包的http服務地址url。這個plist url中jenkins會自動後面加上ipa檔名。

下圖是任務執行成功,並ftp上傳到tomcat目錄下的ipa以及對應的plist,開啟plist可以看到它的軟體值是指向對應的ipa包的。


8.這些包和檔案都上傳成功後,則設定下tomcat。

新建一個簡單的web服務即可,首頁的index.html改改。

增加下載連結

<a href="./static/vancl_iphone_app/3.1.0/VANCL-Online-3.1.0.ipa">VANCL-Online-3.1.0.ipa</a>
和直接安裝的連結
<a href="itms-services://?action=download-manifest&url=http://10.8.53.131:8088/static/vancl_iphone_app/3.1.0/VANCL-Online-3.1.0.plist">install</a>
由於ios7.0以後需要伺服器的https支援,這個直接下載安裝沒多弄呢。

可用keytool建立證書,然後放到tomcat 下,修改server.xml,但是我弄好後還是不能下載。

使用http,7.0的安裝會提示證書無效;使用https則提示無法連線到ip地址,貌似好像得需要權威的證書,以後看看放到公司的伺服器上去。

index.html修改好後,就可啟動tomcat訪問這個服務了,暫時就這些了。


相關推薦

IOS使用jenkins進行持續整合2

上一篇,自己嘗試進行持續整合,研究的不深入,這兩天,為公司搭建持續整合環境,以及內部發布系統,瞭解的更多了,所以分享出來。 這篇主要介紹一些其他東西,不重複介紹上一篇的內容。 如果使用jenkins進行ios持續整合,需要xcode外掛支援,所以先下載xcode外掛,而且後

Travis CI對Python Django專案進行持續整合

Travis CI簡介 Travis CI 是目前新興的開源持續整合(Continuous Integration)構建專案,採用yaml格式,簡潔清新獨樹一幟。目前大多數的github專案都已經移入到Travis CI的構建佇列中,據說Travis CI每天執

Gradle進階:5:結合Jenkins進行持續整合

結合Jenkins進行gradle的持續構建有多種方式,可以在Jenkins的容器種直接安裝gradle並直接使用,也可以通過jenkins的gradle外掛進行使用,也可以通過呼叫gradle的映象來進行使用。這篇文章以jenkins的gradle外掛使用方式為例,介紹如何在jenk

Go工具& GitLab-讓你如何輕鬆進行持續整合

譯者注:在Pantomath,我們使用GitLab進行所有開發工作。本文介紹如何使用這些工具來減輕開發壓力。 在Pantomath,我們使用GitLab進行所有開發工作。 本文的目的不是介紹GitLab及其所有功能,而是介紹如何使用這些工具來減輕我們的壓力

如何使用Jenkins進行持續整合測試

上篇,將Jenkins的持續整合測試環境搭建成功了,接下來,開始我們的建立任務和執行構建。 (一)建立任務 1.建立任務 點選首頁“建立一個新任務”的連結,如下: 2.選擇 Jenkins 任務型別 Jenkins 提供了四種類型的任務:

Python Web專案中使用Jenkins進行持續整合CI

轉載原文:http://www.hustlzp.com/post/2014/08/jenkins 在一個專案的開發過程中,往往會有一些需要反覆執行的操作,比如編譯、測試、部署。具體於Flask專案,我一般使用nose執行單元測試、fabric進行部署、pylint執行程式碼質量檢測等。這些頻繁需要執行

在Python Web專案中使用Jenkins進行持續整合

在一個專案的開發過程中,往往會有一些需要反覆執行的操作,比如編譯、測試、部署。具體於Flask專案,我一般使用nose執行單元測試、fabric進行部署、pylint執行程式碼質量檢測等。這些頻繁需要執行的步驟,是非常枯燥的,那何不交給機器來自動執行呢?最近,我參與的一個

使用Jenkins進行持續整合(一)-安裝篇

進行持續整合最流行的工具是Jenkins和CruiseControl,CC比較老牌,但現在Jenkins更流行,所以選用Jenkins。 Jenkins前身是Hudson,改名的原因僅僅是擺脫Oracle的操控(我一直非常討厭oracle這個公司),所以《Maven實戰》書

Jenkins + Ant + Java + TestNg + ReportNg + Appium 進行持續整合

1、Appium 來進行APP端自動化測試,比如說針對民信貸APP端的登陸—— 投資無憂理財 -  無憂理財 等等業務場景 來進行自動化測試, 其詳細的指令碼後期會做說明,該篇只是簡單將其專案結構粘貼出,其中Follow 類中將所需測的業務進行了串連,詳細程式碼如下圖

使用Jenkins進行持續整合與釋出

我們基於Jenkins的CI/CD流程如下所示。 流程說明 應用構建和釋出流程說明。 使用者向Gitlab提交程式碼,程式碼中必須包含Dockerfile 將程式碼提交到遠端倉庫 使用者在釋出應用時需要填寫git倉庫地址和分支、服務型別、服務名稱、資

asp.netcore+jenkins+docker+svn+centos7.2 持續整合,每天凌晨獲取最新程式碼打包釋出

執行環境: centos7.2伺服器或則虛擬機器 可以是騰訊雲也可以是內網伺服器,(如果是內網伺服器需要用frp做內網穿透,這樣才可以通過外網訪問該伺服器) svnserver 來託管程式碼 一.安裝jenkins執行環境 1. 檢視yum庫中的Java安

.net core 2.x - docker-linux容器-持續整合(jenkins)

  1.準備工作      先說明哈,以下操作都是在windows中:      a).需要下載安裝 jenkins 的windows版本      b).需要下載安裝 docker for windows,安裝之後使用的 linux容器,如果不知道的,可以看上一篇      c).我們這裡的演示使

Jenkins 2.156 每週更新版釋出,可擴充套件的持續整合引擎

   Jenkins 2.156 釋出了,這個系列不是 LTS 版本,它每週都會發佈一個新版本,為使用者和外掛開發者提供錯誤修復和新功能。 本次更新內容如下  User account creation by administrators did not sho

持續整合之jenkins實踐教程:基礎篇(6): 在jenkins的容器中進行映象的構建

作為持續整合的利器Jenkins已經得到了廣泛地應用,僅僅作為一個工具,Jenkins已然有了自己的生態圈,支援其的plugin更是超過1300+。在實際中如何使用以及如何更好地使用jenkins,一直是大家在實踐並討論的。本系列文章將會從如何使用jenki

jenkins整合tomcat進行持續deploy

jenkins的最後一個環節就是將構建好的內容釋出到專案所處的容器中,只有釋出到容器的內容,才能供外界環境進行訪問以及使用! jenkins需要環境:      需要安裝deploy to container Plugin(最新版的jenkins預設是已安裝的) 在

TeamCity 2.1 釋出,功能強大的持續整合工具

   TeamCity 2.1 釋出了,TeamCity 是一款功能強大的持續整合工具,覆蓋伺服器端和客戶端。它提供一系列特性可以讓團隊快速實現持續整合:IDE 工具整合、各種訊息通知、各種報表、專案的管理、分散式編譯等等。 這是一個 bug 修復版本,主要更新內容包括:

DevOps基礎-5.2-持續交付:持續整合實踐

       在我們的上一篇文章中,我們討論了三種不同程度的連續交付軟體。我們討論了持續整合,持續交付和持續部署。你希望將這些視為彼此之間的構建塊。它們中的每一個都依賴於正確實施和採用的前一步驟(持續整合->持續部署->持續交付)。為了開始這個視訊,讓我們回到Je

如何將GitHub上的專案用jenkins進行持續整合構建部署

最近公司新來的架構師把公司的專案用jenkins持續構建部署,第一次接觸這種自動構建工具的我內心十分的動,再也不用我來把專案打包部署了,簡直嗨的不行!於是到網上收集了一些資料,自己琢磨了一陣子,現在把自己琢磨出來的東西分享記錄一下,有錯誤的地方歡迎大家指正。

Jenkins+Maven進行Java專案持續整合

最近配置了Jenkins伺服器,記錄下基本過程。(當然還遇到了若干小問題,兵來將擋水來土掩就是了) Jenkins安裝 安裝Tomcat 從Jenkins官網下載jenkins.war檔案。官網地址:http://jenkins-ci.org/,注意選擇最新版本的Long-

CI-持續整合2)-軟體工業“流水線”技術實現

# coding:utf-8 """ jenkins相關的工具函式及配置 """ from dtlib.dtlog import dlog import jenkins __author__ = 'harmo' jenkins_url = 'http://jenkins.xxxx