Flutter 官方提供 flutter doctor -v 檢查開發工具鏈;這是開始前最直接的一項環境診斷。Flutter 安裝文件也把平台依賴與診斷納入安裝流程。結論是:Mac mini M4 可以搭建 Flutter 的 iOS 與 Android 開發環境,先安裝並啟用 Xcode,再設定 Flutter SDK 和 Android Studio,最後分開驗證兩端建置。標題所說的「同時編譯」,應理解為同一個 Flutter 專案支援編譯兩個平台;沒有另行設定自動化流程時,不代表 iOS 和 Android 會預設並行建置。
適合剛開始用 Mac mini M4 的 Flutter 開發者,或需要從 Mac 補上 iOS 建置能力的 Android 開發者。
如果你負責團隊建置環境,本文也可用來核對工具鏈、模擬器與發布驗收的差異。
先確認 Mac mini M4 適合你的 Flutter 雙端流程
Mac mini M4 的用途判斷重點不是機器能否開啟編輯器,而是你的工作是否能在同一台 Mac 上取得兩個平台所需的工具:iOS 建置依賴 Xcode;Android 建置則要有 Android SDK 與相應工具。Flutter 的官方 iOS 環境設定和 Android 工具鏈設定分別說明了這些平台依賴。
開始前,先確認以下條件:
- macOS 與工具版本:檢查目前 macOS 是否符合已安裝 Xcode、Android Studio 與 Flutter 工具鏈的要求。不要只看安裝程式能否啟動;以各自官方文件和本機診斷輸出為準。
- 硬碟空間:Xcode、iOS 模擬器、Android SDK 與模擬器映像檔都會占用空間。若硬碟餘量不足,可能在下載平台元件或建置時失敗。本文不指定固定容量,因為實際需求會隨已安裝元件與專案而變。
- 網路與下載權限:首次設定需要取得開發工具或平台元件。若下載中斷,先確認網路連線與系統權限,再檢查安裝狀態;不要因工具清單未完成就直接判定 Mac 不相容。
- 測試目標:先決定使用 iOS 模擬器、Android 模擬器,還是真機。模擬器可驗證基本執行流程;真機測試會涉及裝置連線與平台權限;發布建置還要另外檢查簽名與發行設定。
| 選項 | iOS 建置能力 | Android 建置能力 | 評分與適用情境 |
|---|---|---|---|
| Mac mini M4,安裝 Xcode 與 Android 工具鏈 | 可依 Xcode 與簽名設定建置 | 可依 Android SDK 設定建置 | 適合需要在本機處理雙端工作的個人與團隊 |
| 只有 Android 開發環境的電腦 | 缺少 Xcode 工具鏈 | 可在已設定 SDK 後建置 | 不適合單獨完成 iOS 建置驗收 |
| Mac 只裝 Flutter,未完成平台依賴 | 尚未具備可驗證的 iOS 工具鏈 | 尚未具備可驗證的 Android 工具鏈 | 不合格;先依診斷輸出補齊依賴 |
表中的評分是按「能否在同一環境完成兩平台工具鏈設定」作出的流程判斷,不是效能測試,也不代表每個專案都能直接發布。
按順序安裝 Xcode,先驗證 iOS 工具鏈
Xcode 提供 Flutter iOS 建置所需的 Apple 工具,也負責 iOS 模擬器與相關平台元件。先安裝 Xcode 並完成首次啟動,再安裝 Flutter,能避免 Flutter 診斷時把尚未設定的 Apple 工具誤認為已就緒。
- 從 Apple 提供的正式管道安裝 Xcode,開啟一次,依畫面完成授權與必要元件設定。Apple 說明了如何下載 Xcode 與安裝額外元件;若診斷指出缺少模擬器元件,回到 Xcode 依當前設定補裝。
- 開啟終端機,執行
xcode-select -p,確認命令列開發工具所指向的位置。若路徑不是你打算使用的 Xcode,先在 Xcode 設定中選取正確工具,再重新檢查。 - 若尚未接受 Xcode 授權,依 Flutter 官方 iOS 設定中的流程執行
sudo xcodebuild -license,閱讀並接受條款。這是系統授權設定,不會替你完成 Apple 開發者簽署設定。 - 執行
xcrun simctl list devices,檢視本機可用的 iOS 模擬器裝置。若清單缺少預期的平台或裝置,先檢查 Xcode 的平台元件是否已完成安裝。 - 後續再用 Flutter 診斷確認 iOS 工具鏈。要測試真機或發布時,分別檢查簽署條件;Apple 的註冊裝置與發佈至已註冊裝置說明指出,這類流程涉及已註冊裝置與簽署設定,不能以模擬器成功取代。
注意:模擬器啟動成功,只能證明相關模擬器元件可用。它不會替你建立真機簽名,也不能證明發布建置已通過。
接著安裝 Flutter SDK,檢查 Mac 開發環境
依照 Flutter 官方安裝指南取得 SDK,將 SDK 放在你有權限管理、路徑穩定的位置,再按官方說明把 flutter/bin 加入命令列搜尋路徑。完成後重新開啟終端機,執行:
flutter --version
flutter doctor -v
第一個命令確認目前終端機可以呼叫 Flutter;第二個命令會列出 Flutter 與各平台工具的診斷結果。不要只看到 Flutter 本身有版本輸出,就認定 iOS 和 Android 都已備妥。
按診斷結果逐項處理:
- 如果 iOS 一欄指出 Xcode 或 Command Line Tools 有問題,先回到 Xcode 完成首次啟動、授權或工具路徑設定。
- 如果 Android 一欄指出 SDK 或授權未完成,先安裝 Android Studio,再用它的 SDK 管理功能補齊元件。
- 如果出現找不到裝置,分別確認模擬器已啟動,或真機已連線並獲系統識別。
- 若診斷提示與你已安裝的元件不一致,檢查實際安裝路徑、所選工具版本與 Flutter 文件中的目前設定方式。不要自行假定某個未核實的版本組合必然相容。
再用 Android Studio 設定 Android SDK 與模擬器
下載並安裝 Android Studio 後,先啟動程式,再從 SDK Manager 確認 Android SDK、平台工具與專案需要的平台元件已安裝。Android Studio 的系統需求應以其官方安裝說明為準;不同工具版本和元件組合可能改變安裝需求,因此不要把網路上的舊版路徑或固定元件清單當作通用答案。
接著在 Android Studio 的外掛設定中安裝 Flutter 外掛,並依提示處理 Dart 外掛。安裝後重新啟動程式,透過其設定確認 Flutter SDK 路徑指向你剛才安裝的位置。若 Android Studio 建議安裝 SDK 元件,先確認實際安裝範圍,再由 SDK Manager 執行。
| 檢查項目 | 在哪裡確認 | 通過條件 | 常見失敗原因 |
|---|---|---|---|
| Flutter 外掛與 SDK 路徑 | Android Studio 的外掛及 Flutter 設定 | 外掛啟用,SDK 路徑指向本機 Flutter SDK | 路徑選到壓縮檔或錯誤資料夾 |
| Android SDK 與平台工具 | Android Studio 的 SDK Manager | 診斷不再回報缺少所需元件 | SDK 尚未安裝完成或路徑未被 Flutter 識別 |
| Android 授權 | 終端機中的 Flutter 診斷及授權流程 | 診斷不再要求接受授權 | 新裝元件後尚未重新接受條款 |
| 模擬器裝置 | Android Studio 的 Device Manager | 模擬器可啟動,Flutter 能列出裝置 | 映像檔未安裝、啟動失敗或工具版本不合 |
然後在終端機執行:
flutter doctor --android-licenses
flutter doctor -v
依畫面檢視並接受 Android SDK 授權,再重新跑診斷。若 SDK 路徑未識別,先從 Android Studio 查出實際安裝位置;若模擬器無法啟動,參照 Android Emulator 官方說明檢查裝置設定與工具狀態,不要先刪除整套 SDK 重裝。
用診斷結果區分模擬器、真機與發布驗收
完成安裝後,flutter doctor -v 是工具鏈檢查,不是完整的應用程式發布驗收。再執行 flutter devices,確認 Flutter 能看到目前可用的模擬器或已連線裝置。若清單沒有預期目標,先處理裝置或模擬器問題,再執行建置。
判讀結果時,分開看三個層次:
- 環境檢查:Flutter、Xcode、Android SDK 是否可被工具找到,以及是否仍有未處理的必要項目。
- 模擬器執行:程式能否安裝並在指定模擬器啟動。這能驗證一部分執行流程,但不涵蓋真機簽名與正式發布條件。
- 真機與發布:除了成功建置,還要確認 iOS 簽名、註冊裝置或發行設定;Android 發布則須按 Flutter Android 部署文件處理簽署與輸出。iOS 發布流程另見 Flutter iOS 部署文件。
下方 FAQ 將模擬器啟動、Xcode 後續設定、Android SDK 辨識及「同時編譯」的意思分開說明;不要把其中一項檢查結果當成完整交付驗收。
FAQ:完成雙端環境時常見的判斷
Mac mini M4 要怎樣準備 Flutter 環境並啟動 iOS 模擬器?
先完成 Xcode 安裝與首次啟動,再安裝 Flutter SDK、設定命令列路徑,最後用 flutter doctor -v 查看 iOS 依賴。若模擬器未出現,從 Xcode 的平台元件設定確認 iOS Simulator 已安裝,再用 flutter devices 檢查裝置清單。
安裝 Xcode 之後,還要設定哪些項目才能編譯 Flutter iOS?
首次開啟 Xcode 並完成授權及必要元件安裝後,確認命令列工具指向目前使用的 Xcode,再執行 Flutter 診斷。模擬器建置不等於真機簽署;真機測試與發布仍須按 Apple 的註冊裝置、簽名及發布流程處理。
Android Studio 裝好後,Flutter 專案找不到 Android SDK 怎麼辦?
先在 Android Studio 的 SDK Manager 確認 SDK、平台工具與需要的平台元件確實安裝,再檢視 Flutter 診斷所回報的 SDK 路徑。不要猜測預設目錄;以本機實際安裝位置修正設定,並接受 Android SDK 授權後重新檢查。
同一個 Flutter 專案可以在 Mac mini M4 同時編譯 iOS 和 Android 嗎?
同一份程式碼可以分別建置 iOS 與 Android,但這不代表一般命令會自動同時執行兩種建置。先逐平台完成建置與驗收;只有在 CI 流程明確建立兩個工作、各自選用正確工具鏈並隔離輸出時,才應稱為並行建置。
分別建置 iOS 與 Android,再判斷是否需要並行
先以專案根目錄作為工作位置,確認依賴已取得、Flutter 診斷沒有未處理的必要項目,並選好裝置或建置目標。接著分開執行平台命令,保留每次建置的完整輸出,出錯時較容易定位是哪一段工具鏈未就緒。
flutter build ios --simulator
flutter build appbundle
第一條命令用來建置 iOS 模擬器目標;第二條產生 Android App Bundle 類型的發布產物。命令成功只說明該次目標建置完成,仍要檢查產物、簽署需求與實際測試範圍。若要做 iOS 發布建置,依專案需求處理 Apple 簽名與發布設定;若要發布 Android,依 Flutter 的部署文件完成簽署流程。
「分別建置」是你先完成一個平台,再執行另一個平台;「並行建置」則要在 CI 或其他自動化流程中明確安排獨立工作。兩個工作都必須取得正確 SDK、簽署資料與專案依賴,並避免共用造成衝突的暫存輸出。若你的團隊尚未建立這些條件,先採用逐平台建置;它較容易讀懂錯誤,也不會把工具設定失敗誤判成並行流程問題。
遇到錯誤時,按依賴順序排查:先讀建置輸出指出的缺失工具,再看 flutter doctor -v;接著核對 Xcode 或 Android SDK 的實際路徑與授權;然後確認目標模擬器或真機可用;最後才檢查簽名、發布設定與專案本身。若 Flutter 安裝或工具識別仍有問題,可對照官方安裝排障文件,不要一次變更多個環境變數,否則難以確定修正是否生效。
若你正在評估沒有本機 Mac 時的建置安排,可先透過 VPSSpark 支援中心核對目前可查詢的服務資訊與支援範圍,再判斷是否符合你的工具鏈需求。
如果 Mac mini M4 已在你手邊,按本文流程逐項完成環境檢查,再分別留下 iOS 與 Android 建置結果,便可判斷它是否適合目前的本機開發方式。若你沒有可用於 iOS 建置的 Mac,或只在特定階段需要 Mac 環境,應先確認雲端 Mac 是否提供符合你工具鏈與交付方式的服務,再決定是否租用;可透過 VPSSpark 支援中心查詢目前可核實的服務資訊。對需要長期、穩定重負載或依賴實體裝置連接的工作,先評估自有 Mac 是否更合適,不要只因一次建置需求就假設雲端環境能取代所有本機條件。
用 VPSSpark 雲端 Mac,延續你的 Flutter 雙端開發流程
租用 Mac mini M4 雲端主機,透過遠端連線使用 macOS,彈性安排 iOS 建置、測試與日常開發。
可選 16GB/256GB 或 24GB/512GB 配置,並按日、週、月或季選擇合適的使用週期。