yii.
← Writing
Flutter 技術 · · 6 min read

Flutter CICD 使用 Gitlab Runner 和 App Center 實作 part.1

這篇寫於 2022 年。工具和 API 變化很快,部分步驟可能已經不適用。

原來 CICD 這麼有幫助,快來學習吧~

上次的 Flutter CICD 我們使用了 CodeMagic 和 Firebase 實現,透過別人的平台服務幫我們做事。而這次我們要使用自己的機器處理 CICD 流程,如果要做什麼額外工作或其他操作,使用這個方式靈活度更好,就是透過 Gitlab Runner 在自己的機器或電腦上運行,搭配微軟的 App Center 進行實作。

一樣照著做,簡單完成你要的 Flutter CICD,那我們開始吧!


本文範例運行的環境為MacOS,如果是其他環境的開發者,在自行微調或下載對應檔案。

需要的元素#

  • Apple Developer Center → 設定應用與設備
  • Gitlab Runner → 運行本地機器與執行 CICD 流程
  • App Center CLI → 透過指令跟 App Center 互動
  • App Center → 雲端發布平台,新增雙平台應用

Apple Developer Center(ADC) 設定#

  1. 準備運行機器的 Certificate Signing Request(CSR),建立 Distribution Certificate
  2. 針對Flutter專案建立 Identifiers,例如 com.xxx.yyy
  3. 登記要參與專案測試的 Devices。Device Id 可以使用 Xcode 接上裝置後,開啟 Devices and Simulators 視窗查看
  4. 建立 Profiles,選擇 Distribution 的 Ad Hoc,選擇對應 App ID 及參與測試Devices
  5. 需要下載 Certificate 與 Profiles ,在 Mac 上連點後進行安裝。此時我們的電腦機器才能存取 App,做相關操作,例如:部署

Gitlab Runner 安裝#

Installation of Intel Chip

sudo curl --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64"

Installation of M1 Apple Chip

sudo curl --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-arm64"

Install GitLab Runner on macOS | GitLabGitLab Runner can be installed and updated on macOS. Two methods for installing GitLab Runner on macOS are available…docs.gitlab.com

給予 gitlab-runner 執行權限

sudo chmod +x /usr/local/bin/gitlab-runner

Gitlab Runner 設定#

Settings → CICD,取得註冊 Runner 所需資料

將 Enable shared runners for this project 關閉,我們在本機跑不需要額外機器。反之,如果你需要虛擬機器的 Runner 運行 CICD,就可以將它打開,不過會收費,需要信用卡資料。

註冊本機 Runner#

// 1. 
gitlab-runner register  
// 2. 
gitlab-runner register --url https://gitlab.com/ --registration-token <token>

查看 Runner 清單,可以檢查是否註冊成功#

gitlab-runner list

iOS ExportOptions.plist 準備#

不需要手動創建檔案和整理內容,可以執行 Archives 選擇 Ad-hoc 或Enterprise 匯出相關檔案,其中會有準備好的 ExportOptions.plist。

  • BUNDLE_IDENTIFIER,APP的Bundle Id
  • PROVISIONING_PROFILE_NAME,簽署 iOS 應用程序的配置文件
  • method,應用程序的分發方式,擁有4種,development、ad-hoc、enterprise、appstore
  • teamID,Apple 分配的會員ID

接著將檔案放置到Flutter專案的ios目錄,部署會需要用到。

App Center 設定#

新增API token#

  • 打開 Settings 頁面,點擊 New API token
  • 選擇 Full Access
  • 注意:Token 是重要資訊,請將它記錄到安全的地方

新增 App#

需要 Android 和 iOS 兩個 App,他們是分開的

新增群組#

透過Email新增成員,可以在部署時選擇通知群組,只有裡面的成員才會收到相關通知,並允許下載 APP

Gitlab CICD Variables 設定#

開啟 Repository Settings → CI/CD → Variables,將剛剛取得的 App Center Api Token 添加到環境變數,自定義 Key 為 APPCENTER_API_TOKEN,後續 Gitlab Runner 會用到

到這邊休息一下~ 進度已經50%了,如果準備好的話就進入下一篇吧!

Flutter CICD 使用 Gitlab Runner 和 App Center 實作 part.2原來 CICD 這麼有幫助,快來學習吧~yii · writing


其他文章#

關於我#

贊助#

謝謝你花費時間看完,非常感謝!

如果覺得文章不錯的話可以贊助,讓我有更多動力和熱情分享學習紀錄和生活!請我喝一杯咖啡吧~

https://www.buymeacoffee.com/yiichenhi

最後#

希望有幫助到你/妳,歡迎追蹤我,方便瀏覽最新的文章~

本文原刊登於 Medium。