使用 CodeMagic 和 Firebase 實現 Flutter CICD

Yii Chen
8 min readOct 29, 2022

--

簡單完成 Flutter CICD,專注開發吧

在任何應用的開發過程中,CICD通常扮演一個重要的角色跟階段,它能自動化幫你處理很多工作。在專案Push更新後,進行專案建置,並產出安裝檔,最後將應用部署到公開平台,提供大家下載和使用。這一連串的任務如果是手動執行的話當然是花非常多時間,而有了CICD工具的幫忙後,再也不需要擔心這些事情,讓我們開發者可以專注在最重要的開發上,想著如何讓產品更好、使用者更喜歡。

本文會使用Gitlab版控平台,搭配CodeMagic和Firebase App Distribution,實作簡單又完整的CICD,有效幫助各位開發者提升效率,開心寫Code吧!

Step01. 將 Flutter 專案上傳到 Gitlab

不需要做額外設定

Step02. 打開 CodeMagic 為 Flutter 設置 CICD

官網: https://codemagic.io/start/

  • 首先到後台,Add application
  • 選擇專案放置的版控平台,這邊使用 Gitlab
  • 選擇 Flutter project repository,並勾選 Flutter App (via Workflow Editor)

選擇需要部署的平台

  • 免費用戶可以勾選Android、iOS、Web
  • 付費用戶才能使用其他平台

選擇運行的機器

可以根據需求做選擇,額外還有5台版本

設定觸發時機

  • Trigger on push ➤ 當有新東西推上Repo,可以指定分支
  • Trigger on pull request update ➤ 當有新的PR被允許
  • Trigger on tag creation ➤ 當有新的標籤推上Repo,可以指定標籤,例如:build

設定環境變數

如果有重要資料要存取但不想寫在Repo裡面,可以放在CodeMagic,專案內透過錢符號取得資料,例如:$API_KEY

設置套件緩存

加速Build速度,縮短時間。根據需求決定是否需要

設置代碼分析

搭配Lint tool,維護專案高品質

  • dart_code_metrics可以幫忙檢查沒有用到的檔案、代碼,以及不需要的nullable內容
  • 熱門的Lint tool,例如:flutter_lintslintdart_code_metrics

設置測試

包含單元測試、整合測試,可惜沒有Widget Test

設置建置內容

  • 包含個環境的版本,選擇與你的專案相符即可
  • 選擇Android匯出的格式,一般來說APK安裝比較方便
  • 選擇Release模式,部署產品版本,檔案小性能好

設置自定義script

也可以在過程中,做任何想做的事

設置部署資訊

📍Android code signing簽署。Keystore可以在AndroidStudio裡面建立,也可以透過指令生成

Keystore可以在AndroidStudio裡面建立,也可以透過指令生成

📍iOS code signing 簽署

  • Automatic 自動簽署
  • Manual 手動簽署

Code signing certificate 為.p12檔案,需要從Keychain裡面取得。將憑證和內容選取,點擊右鍵,並輸入項目,給予密碼

會需要這些檔案進行上傳

📍Firebase App Distribution

  • Firebase token
  • 雙平台APP Id
  • 測試團隊、群組

需要為Flutter專案準備Firebase環境,依照步驟完成設定,取得相關資料

取得Firebase Token,登入後即可取得,透過Terminal指令登入

firebase login:ci

為Flutter專案新增Firebase設定,其中App Id會用到,需要記錄下來

在專案進行Firebase初始化,並載入相關設定

到Firebase Console,打開Firebase App Distribution,並點擊開始使用,否則CodeMagic在部署的時候會出錯哦

回到 CodeMagic 補上所有資訊,部署後通知指定群組的成員,他們就能開始測試囉

設置通知

在APP部署完成後進行通知,可以發送到綁定的Email,或是Slack頻道裡面,方便了解CICD的最新狀況

完成設定,觸發CICD工作

到這邊設定就都完成了,接下來可以手動開始執行部署,或是嘗試push新的東西到Repo,CodeMagic會開始工作,運行一個Build,也可以點擊查看相關資訊。

部署完成,每個APP安裝檔能直接點擊下載

這時候 CodeMagic Builds 會顯示新的工作紀錄,也可以到 Firebase App Distribution 查看部署資訊

信箱會收到CodeMagic部署完成的訊息,根據自己的手機平台進行對應安裝檔的下載。如果是還沒進入測試群組的用戶,需要進入後下載對應憑證,並在手機裡進行允許,這樣才能下載APP到手機哦。

恭喜,你的專案也有CICD了!

--

--

Yii Chen

Flutter Lover || Organizer FlutterTaipei || Writer, Speaker || wanna make Flutter strong in Taiwan. https://linktr.ee/yiichenhi