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) 設定#
- 準備運行機器的
Certificate Signing Request(CSR),建立 Distribution Certificate - 針對Flutter專案建立
Identifiers,例如 com.xxx.yyy - 登記要參與專案測試的
Devices。Device Id 可以使用 Xcode 接上裝置後,開啟 Devices and Simulators 視窗查看 - 建立
Profiles,選擇 Distribution 的 Ad Hoc,選擇對應 App ID 及參與測試Devices - 需要下載
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"
給予 gitlab-runner 執行權限
sudo chmod +x /usr/local/bin/gitlab-runner
Gitlab Runner 設定#
Settings → CICD,取得註冊 Runner 所需資料
- URL:https://gitlab.com/
- Token
將 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
其他文章#
- 如何在Flutter使用 Makefile 節省你的時間?
- Easily understand StatefulWidget LifeCycle of Flutter
- “freezed” makes model class strong and easily
- 提高Flutter性能的小技巧!(一)
- 提高Flutter性能的小技巧!(二)
- 提高Flutter性能的小技巧!(三)
- What are Async and Isolates in Flutter?
- LoadBalancer is optimization for Isolates in Flutter
- Flutter 3 有什麼新東西?
- Riverpod 輕鬆學,原來這麼好用!
- Riverpod 輕鬆學(二),一些進階用法!
關於我#
- GitHub: chyiiiiiiiiiiii
- Instagram: flutterluvr.yii
- Linkedin: yiichenhi
- Youtube: Yii
- Youtube: 一起饅頭(美食頻道)
- Email: ab20803@gmail.com
贊助#
謝謝你花費時間看完,非常感謝!
如果覺得文章不錯的話可以贊助,讓我有更多動力和熱情分享學習紀錄和生活!請我喝一杯咖啡吧~
最後#
希望有幫助到你/妳,歡迎追蹤我,方便瀏覽最新的文章~
本文原刊登於 Medium。