08
常見問題
沒有 Mac,可以先做 Flutter iOS App 的哪些部分?
可以先撰寫 Dart、設計共用介面與實作跨平台邏輯,也可在現有環境完成其支援的平台工作。需要停止並轉換環境的界線,是 iOS 專屬建置、Xcode 模擬器或實體裝置測試,以及簽名和發布;這些工作不能單靠 Flutter 程式碼已完成來判定。
Flutter iOS 建置為何需要 macOS 和 Xcode?
Flutter 官方 iOS 發布指南要求使用 macOS 裝置完成其建置與發布流程,iOS 工具鏈則透過 Xcode 工作。這不代表每一行 Dart 都必須在 Mac 上寫;它代表專案進入 iOS 建置、測試或發布階段時,必須安排可執行相應工具鏈的環境。
怎樣判斷 CI 是否足以取代遠端 Mac?
先查候選 CI 的官方文件,再以含正式插件、簽名與發布設定的專案測試。若建置可重複、錯誤記錄足以排查、產物能交付,且流程涵蓋團隊需要的上傳工作,就可繼續使用 CI。若仍需操作 Xcode 或模擬器,應保留可控制的 macOS 環境。
Flutter 原生插件遇到問題時,何時需要互動式 Xcode?
若錯誤可由固定指令重現,且 CI 日誌能指出問題,未必需要人工操作 Xcode。若需要檢查插件的原生 iOS 設定、Apple 框架相依、Xcode 工程或模擬器行為,互動式環境能提供自動化記錄以外的檢查方式。要以專案使用的插件和錯誤類型判斷,不能把單一插件的需求推廣到所有專案。
沒有自有 Mac,能否完成簽名及 App Store 提交?
可評估支援該專案流程的 CI 或遠端 Mac,但先驗證簽名資料如何配置與保管、誰有帳號權限,以及產物如何上傳和取回。上傳建置版本後仍須查看 App Store Connect 的狀態;建置成功或完成上傳,都不能直接視為審核已通過。