在辦公室自建 Mac mini
建置頻率低、已有閒置 Mac 時更省錢
適合
- 偶爾才打包一次,手邊已有閒置 Mac。
- 有人負責管理電源、網路與系統更新。
- 程式碼或相依套件必須留在公司內網。
不適合
- 每天多次合併程式碼,夜間建置不能依賴辦公室供電。
- 網路經常不穩,設備重啟時總得有人到場處理。
- 希望將硬體維護從發佈工程的職責中移除。
專屬實體 Mac mini,不是虛擬機,也沒有計劃性停機。iOS 建置機設於新加坡、東京、首爾、香港與美國西部的 5 個機房,每台設備只供你的團隊使用。
tokyo-node-07 · Apple Silicon M4 Pro · 64GB 統一記憶體 · 2TB SSD
nightly 任務示例:UI 測試 2h05m。不同分支共用團隊的 CPU、記憶體與磁碟;並行數量仍須依實際專案測試安排。
全年運作,不受辦公室作息影響。以下為一般年份 365 天的服務排程示意,並非歷史可用率報告。
硬體仍可能發生異常。請保留獨立備份,並登入控制台提交支援單,以便協助排查與更換設備。
排程、耗時與在線狀態皆為產品示意,並非實測資料。實際可用狀態以控制台即時回報為準。
這些工具依照一般方式安裝在節點上,用法與自己的 Mac 相同。列出這些工具僅說明支援的運作方式,不代表合作或背書;工具版本、相依套件與 runner 更新仍由你的團隊管理。
三種方式都有團隊在使用。我們把適用與不適用情況一併列出,先看看哪種符合需求,再決定是否租用 iOS 建置機。
電源、網路與散熱由機房負責。夜間 nightly 不再因辦公室斷電而中斷。
節點不會配合辦公室作息開關機。
不必為服務方的定期停機另行安排建置時程。
新加坡、東京、首爾、香港、美國西部。
同一台設備不會分配給其他客戶。
使用說明:全年運作不代表硬體不會故障。發生異常時,請先透過支援單提供節點與錯誤資訊,我們會協助排查、更換節點及復原環境。請另外備份程式碼、簽章資料、建置產物與必要快取;更換設備後,runner 重新綁定與環境復原仍需團隊配合。
查看設備更換流程不是虛擬機,也不會與其他客戶共用。以下四點說明專屬實體機與共用方案的直接差異。
節點登記在你的帳戶下,租用期間不會分配給其他團隊。團隊內可供多位開發者或多條 CI 流程使用。
建置直接在 Apple Silicon 實體機上執行。macOS 圖形介面與命令列皆可完整使用,並可依專案需求管理工具與相依套件。
DerivedData、CocoaPods 與 SPM 快取不會被其他客戶的任務清除。你仍需設定清理策略,避免封存檔與快取塞滿 SSD。
main 與 release 同時建置時,只會與團隊自己的任務共用資源。專屬不代表可無限平行處理;模擬器與編譯任務仍會共用整台設備的資源。
兩款晶片提供三種節點規格。單一 App 專案可先試用 M4;大型多 target 專案、更多平行測試與模型推論,則可評估 M4 Pro 64GB。
對應 Port M4 Base 與 Port M4 Plus
對應 Port M4 Pro
每種規格都是整台專屬實體 Mac mini,並提供 5 個地區。按日計費適合試跑 CI 流程,按月或按季則適合長期執行 nightly;實際可用狀態以控制台即時回報為準。
Apple Silicon M4・16GB 統一記憶體・256GB SSD
$19.7/天
適合單一 App、少量打包;請先確認完整封存時的磁碟與記憶體峰值。
租用 Port M4 BaseApple Silicon M4・24GB 統一記憶體・512GB SSD
$40.3/天
適合日常開發、多分支建置與模擬器測試;請依實測安排平行任務。
租用 Port M4 PlusApple Silicon M4 Pro・64GB 統一記憶體・2TB SSD
$61.4/天
適合大型多 target 專案、更多測試任務與本機模型推論。
租用 Port M4 Pro以 USD 計價 ・支援 USDT-TRC20 與 Visa/Mastercard/Amex(透過 Stripe)。實際可用付款方式以後端回傳為準。
比較方案表選擇節點時,也要考量程式碼倉庫、相依套件下載來源與產物接收端的位置,不只看開發者所在地。同規格各地區價格一致。以下延遲為地區參考範圍,不代表你的實際網路延遲或連線保證。
適合東南亞團隊,以及程式碼、相依套件與發佈流程主要位於東南亞的專案。
租用新加坡節點 → JP適合日本團隊,以及程式碼倉庫與相依套件來源位於東亞、希望就近執行建置的專案。
租用東京節點 → KR適合韓國團隊,以及程式碼與產物傳輸主要在韓國進行的工作流程。
租用首爾節點 → HK適合華南團隊。選定前,建議先測試程式碼倉庫拉取、相依套件下載與產物回傳。
租用香港節點 → US-W適合北美西岸團隊,以及程式碼倉庫、相依套件或產物接收端主要位於美國西部的專案。
租用美國西部節點 →在 Windows 上照常撰寫程式碼、提交變更並推送。建置工作交由專屬節點上的 runner 執行:拉取程式碼,使用 xcodebuild 或 fastlane gym 產生 ipa,再將產物送回 CI 流程。開發電腦不必換成 Mac。
需要 macOS 建置環境,但不必在辦公室放一台 Mac。節點安裝 Flutter、Xcode 與專案相依套件後,即可遠端執行 flutter build ipa,並使用你匯入的憑證與描述檔完成簽章。
簽署前提:你仍須具備有效的 Apple 開發者計畫資格,並自行準備簽署憑證、描述檔與 App Store Connect API Key。租用節點提供建置環境,但不會取代這些發佈條件。
保留現有開發環境,將變更推送至團隊的程式碼倉庫。
git push origin main
註冊自架 runner,並透過標籤將 macOS 任務派送至對應節點。團隊自己的任務仍須設定合理的平行數量。
runs-on: [self-hosted, macOS, osxport]
匯入憑證與描述檔並設定簽章。將機密存入 CI 的安全變數,不要寫進程式碼倉庫。
flutter build ipa --release
使用 App Store Connect API Key 設定自動上傳,並將錯誤記錄與產物位置回傳至 CI 流程。
fastlane pilot upload
以下為典型情境的敘述示例,協助你選擇方案;並非具名客戶評價,也不是效能測試結果。
節點設於機房,全年 365 天在線運作,不會安排計劃性停機。硬體異常仍可能影響任務;請登入控制台提交支援單,說明節點、故障狀況與最近操作,以便協助排查及更換設備。全年運作安排不代表過去從未發生故障。
你可以依 CI 流程需求管理 Homebrew、Xcode 與專案相依套件。切換 Xcode 前,請先確認 SDK 與專案需求,並將工具版本記錄在建置紀錄中;避免多個任務同時修改同一套全域環境。
以月費除以日費即可比較。Port M4 Base 每天 $19.7、每月 $98.5;依價目表換算,按日租用五個計費週期的費用等於一個月的月費。預計持續使用時,選擇月付較合適。計費週期起迄與續費規則請於下單時確認。
一律以美元(USD)計價,僅支援 USDT-TRC20 與 Visa/Mastercard/Amex(透過 Stripe)。可用付款方式以結帳時後端回傳為準。付款前請確認訂單、金額與付款網路。
團隊內可以共用,例如由多位開發者與多條 CI 流程使用同一台節點;不會分配給其他客戶。請妥善隔離建置目錄、簽署資料與 runner 權限,並限制同時執行的編譯與模擬器任務。
從成本取捨到建置環境,將需要反覆確認的事項整理成文章,方便團隊在串接前一同閱讀。
用 Swift 實作並查集,再以圖形走訪交叉驗證連通關係,檢查重複合併與連通元件計數。
CI/CD 實踐以可執行 Swift 範例固定同層工作順序,驗證未知相依與循環阻塞,避免把排序殘留節點誤判為循環成員。
CI/CD 實踐以 Swift 測試區分不漏判契約、誤判率與快照相容性,避免把機率型查詢當成處理結果。
新文章籌備中,先看部落格文章。