設定Team Services的Cordova Build與Xcode Build

設定Team Services的Cordova Build與Xcode Build

前一篇「雲端VSTS透過地端MAC建置iOS專案-以Cordova專案為例」我們建立雲端 Visual Studio Team Services(VSTS) 與地端 MAC 的 Agent 的連接,但要觸發地端 MAC 的 Build 行為,還需要在 VSTS 裡去定義 Build 的步驟與行為,然後 Agent 會依照我們在 VSTS 定義的步驟一一執行。而 Cordova 專案在 iOS 上有二種 Build 的方法,一種是 Cordova Build,另一種是 Xcode Build。

安裝Cordova Build擴充程式

想要在 VSTS 裡去定義 Cordova Build,必須先安裝 VSTS 的擴充程式,請先在 VSTS 登入的瀏覽器去開啟 Cordova Build 網頁進行安裝。這樣 Cordova Build 會才出現在"add build step..."的步驟裡。

定義VSTS - Cordova Build

Empty build definition

首先新增一個 Empty 的 build definition。

Select Repository source

設定 build 所要拉取的 Repository,是否要進行CI (Continuous integration),重點在下方選擇你所要使用的 agent,這邊選擇地端的 Default agent。

add build step

接下來,先使用Add build step增加 Cordova Build 所需的步驟。

Cordova Build
Copy Publish Artifact

加入Cordova BuildCopy Publish Artifact: bin二個步驟。

Cordova Build

Cordova Build - iOS參數
  • Platform: ios
  • Configuration: $(Configuration)
  • Override Signing Using: File Contents
  • P12 Certificate File: dev.p12
  • P12 Password: $(P12_PWD)
  • Provisioning Profile File: dev.mobileprovision
  • Remove Profile After Build: 勾選

Copy Publish Artifact: bin

Copy Publish Artifact - iOS參數
  • Contents: *
  • Artifact Name: bin
  • Artifact Type: File share
  • Path: Server

要進行 Cordova Build 還有一件事要注意,就是 Cordova 專案的 platforms 目錄要 include 進專案內,還有目錄下有二個 .pch 檔案,在 Git 模式下會被排除,也要確認有加入。

正確在地端的 MAC 進行 Cordova Build 之後,就能透過 Xcode 進行發行至 Apple 設置的動作。

注意:還有其他參數請參考下面的設定。

定義VSTS - Xcode Build

Cordova 專案還能進行 Xcode Build 的設定,與 Cordova Build 合併也能獨立使用。

Add build step 加入 Xcode build 與 Copy Publish Artifact 二個步驟。

Xcode build

Xcode Build 參數設定
  • Actions: build
  • Configuration: $(Configuration)
  • SDK: $(SDK)
  • Workspace Path: **/*.xcodeproj/*.xcworkspace
  • Scheme: 通常是專案名稱
  • Create App Package: 勾選
  • Override Using: File Contents
  • Provisioning Profile File: dev.mobileprovision
  • Remove Profile After Build: 勾選
  • Output Directory: output/$(SDK)/$(Configuration)

Copy Publish Artifact: ipa

Copy Publish Artifact: ipa
  • Contents: *.ipa
  • Artifact Name: ipa
  • Artifact Type: Server

Xcode build 會編譯出一支 .ipa 檔案,它可以透過 iTunes 來進行 App 的安裝。

Options, Repository, Variables, Triggers, General

Build 主要在定義主步驟,其他還有許多共用參數也時一一設置好,這樣上面定義好的步驟在執行時才會正確執行。

Options

共用參數 - Options
  • Multi-configuration: 勾選
  • Multipliers: Platform
  • Continue on Error: 勾選

Repository

共用參數 - Repository

應該一開始就設定好了,不用動。

Variables

共用參數 - Variables
  • Platform: ios
  • SDK: iphoneos
  • Configuration: Debug

記得後面的 Allow at Queue Time 要勾選才是在建置期間使用哦!

系統預定義的 Variables 可以參考:https://www.visualstudio.com/docs/build/define/variables

Triggers

共用參數 - Triggers - CI or Scheduled

這裡選擇是以 CI 或 Scheduled 方式觸發此條件。

General

共用參數 - General

Demands 的地方注意 npm 與 xcode 兩個值,它會在觸發前檢查 MAC 環境是否已安裝這兩個套件。

日誌

Build Result List

當 Build 的條件被觸發,每次建置後都會有記錄可查詢,例如下面,我們點擊 Build 34:

Build result Details

「紅色X」代表出現錯誤的步驟,Issues 也有基本的 Log 可看,點擊錯誤步驟,還把詳細 Log 顯示出來:

Build result Log

我們才有辦法依 Log 的訊息來調整步驟或參數內容。

小結

設定VSTS-Build是個非常try~error的過程,它能設定的東西很多又細,文件很多就只是帶過,比如說,Xcode的設定,可能他覺得你應該懂Xcode,所以有問題除了看 Log 來排除外,也要多花時間去瞭解像Xcode和Cordova等相關的指令與參數,然後對照 VSTS - Build 的參數欄位去進行測試與修正。

沒有留言:

張貼留言

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。