構建iOS持續整合平台(一)自動化構建和依賴管理

來源:互聯網
上載者:User

2000年Matin Fowler發表文章Continuous Integration【1】;2007年,Paul Duvall, Steve Matyas 和 Andrew Glover合著的《Continuous Integration:Improving Software Quality and Reducing Risk》 【2】出版發行,該書獲得了2008年的圖靈大獎。持續整合理念經過10多年的發展,已經成為了 業界的標準。在Java, Ruby的世界已經誕生了非常成熟的持續整合工具和實踐,而對於iOS領域來說, 因為技術本身相對比較年輕和蘋果與生俱來的封閉思想,在持續整合方面的發展相對滯後一些,但是, 隨著越來越多的iOS開發人員的湧入,以及各個互連網巨頭加大對iOS開發的投入,誕生了一大批非常好用 的持續整合工具和服務,本文的目的就是介紹一下如何有效利用這些類庫,服務快速構建一個iOS開發 環境下的持續整合平台。

自動化構建

在MartinFowler的文章[1]中關於自動化的構建定 義如下:

Anyone should be able to bring in a virgin machine, check the sources out of the repository, issue a single command, and have a running system on their machine.

因此,自動化構建的的首要前提是有一個支援自動化構建的命令列 工具,可以讓開發人員可以通過一個簡單的命令運行當前項目。

命令列工具

自動化構 建的命令列工具比持續整合的概念要誕生得早很多,幾十年前,Unix世界就已經有了Make,而Java世界 有Ant,Maven,以及當前最流行的Gradle,.Net世界則有Nant和MSBuild。作為以GUI和命令列操作結合 的完美性著稱的蘋果公司來說,當然也不會忘記為自己的封閉的iOS系統提供開發環境下命令列編譯工具 :xcodebuild【3】

xcodebuild

在介紹xcodebuild之前,需要先弄清楚一些在XCode環 境下的一些概念【4】:

Workspace:簡單來說,Workspace就是一個容器,在該容器中可以存放多個你建立的Xcode Project , 以及其他的項目中需要使用到的檔案。使用Workspace的好處有,1),擴充項目的可視域,即可以在多 個項目之間跳轉,重構,一個項目可以使用另一個項目的輸出。Workspace會負責各個Project之間提供 各種相互依賴的關係;2),多重專案之間共用Build目錄。

Project:指一個項目,該項目會負責管理產生一個或者多個軟體產品的全部檔案和配置,一個 Project可以包含多個Target。

Target:一個Target是指在一個Project中構建的一個產品,它包含了構建該產品的所有檔案,以及 如何構建該產品的配置。

Scheme:一個定義好構建過程的Target成為一個Scheme。可在Scheme中定義的Target的構建過程有: Build/Run/Test/Profile/Analyze/Archive

BuildSetting:配置產品的Build設定,比方說,使用哪個Architectures?使用哪個版本的SDK?。 在Xcode Project中,有Project層級的Build Setting,也有Target層級的Build Setting。Build一個產 品時一定是針對某個Target的,因此,XCode中總是優先選擇Target的Build Setting,如果Target沒有 配置,則會使用Project的Build Setting。

弄清楚上面的這些概念之後,xcodebuild就很好理解了,官網上對其作用的描述如下:

xcodebuild builds one or more targets contained in an Xcode project, or builds a scheme contained in an Xcode workspace or Xcode project.

xcodebuild就是用了構建產品的命令列工具,其用法可以歸結為3個部分:

可構建的對象

構建行為

一些其他的輔助命令

可以構建的對象有,預設情況下會運行project下的第一個target:

workspace:必須和“-scheme”一起使用,構建該workspace下的一個scheme。

project:當根目錄下有多個Project的時候,必須使用“-project”指定project,然後會運行

target:構建某個Target

scheme:和“-workspace”一起使用,指定構建的scheme。

……

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.