React Native 夜間建置
白天用本機寫程式,晚上把 iOS 建置交給雲端。先用固定分支測試,確認 Node、CocoaPods、Xcode 與 Fastlane 版本都能重現現有結果。
從單一工作佇列開始,保留依賴鎖定檔;分開存放依賴快取與最終產物。不要每次建置後清空所有快取,也不要把簽署資料寫進儲存庫。
驗收檢查三項:依賴項目可安裝、建置結束代碼正常、產物可供後續測試流程使用。先測冷快取,再測重複建置,分別記錄耗時。
夜間建置、自動回歸測試、模型實驗。照常使用熟悉的工具,把執行工作交給一台專屬實體 Mac mini,而非虛擬機。
先挑一項可驗證的工作,按天租用並跑通流程;再依記憶體用量、磁碟成長與工作頻率,決定機型和租期。
兩款機型 · 五個節點 · $20.2每天起。實際可用狀態以控制台即時回報為準。
建議配置是測試起點,不代表效能保證。用自己的專案實測,比只看晶片型號更有參考價值。
白天用本機寫程式,晚上把 iOS 建置交給雲端。先用固定分支測試,確認 Node、CocoaPods、Xcode 與 Fastlane 版本都能重現現有結果。
從單一工作佇列開始,保留依賴鎖定檔;分開存放依賴快取與最終產物。不要每次建置後清空所有快取,也不要把簽署資料寫進儲存庫。
驗收檢查三項:依賴項目可安裝、建置結束代碼正常、產物可供後續測試流程使用。先測冷快取,再測重複建置,分別記錄耗時。
將 iOS 與 macOS 目標的建置集中在同一套 macOS 環境。固定 Flutter SDK、Dart 與 Xcode 版本,讓相同提交在本機與雲端使用一致的建置參數。
先遷移一個目標平台,再逐步增加其他平台。模擬器、DerivedData 與依賴快取會持續占用磁碟;保留必要的執行環境,並設定快取清理規則。
驗收檢查三項:環境診斷通過、目標產物成功產生、記錄與產物可傳回。若需同時執行多項建置,再評估 Flow M4 Pro,不要一開始就開滿並行工作。
使用 M4 Pro 的 64GB 統一記憶體測試量化模型。先選定模型版本、量化方式、上下文長度與測試輸入;評估模型能否載入時,也要一併計入執行環境與快取的用量。
每項實驗使用獨立的 Python 環境。模型權重、下載快取與實驗結果分開存放;模型檔案較多時,可考慮加購 +2TB SSD,避免反覆下載占用系統磁碟。
驗收檢查三項:模型可載入、尖峰記憶體用量可接受、固定輸入的處理效能可重現。先按天完成驗證,再考慮季租;加裝磁碟不會增加統一記憶體。
將固定測試集放在獨立節點,避免回歸測試與日常開發爭用本機資源。固定 Xcode、模擬器執行環境與測試裝置配置,先以序列方式驗證,再逐步增加並行工作。
每次保留測試結果封存檔、失敗截圖與對應提交編號。若測試需要圖形工作階段,請先確認工作階段條件;SSH 連線成功不代表所有介面測試都能直接執行。
驗收檢查三項:重複執行結果穩定、失敗記錄完整、並行時記憶體仍有餘裕。雲端模擬器測試不代表已包含實體測試裝置。
分別驗收資料、工具鏈與 CI。哪個步驟出問題,就回頭處理該步驟,不必同時變動所有設定。
本機 Mac
列出專案、依賴鎖定檔、必要快取與產物目錄。排除暫存檔和不需要的建置產物,並先建立一份獨立備份。
雲端 Mac
建立專案目錄,使用 rsync 增量傳輸。若專案與快取占用空間較大,可依容量需求評估加購 +1TB SSD 或 +2TB SSD;加購磁碟的實際掛載位置請以電腦內顯示為準。
將 MAC_HOST 設為連線位址後執行
rsync -av --progress ./ "$MAC_HOST:~/workspace/"
交接完成:檔案可讀寫、目錄權限正確、重要檔案的校驗結果一致。rsync 同步不能取代獨立備份;首次遷移時不要啟用刪除目標檔案的選項。
本機 Mac
記下 Xcode 與命令列工具的版本,匯出 Homebrew 依賴清單。整理鑰匙圈中的必要憑證,並確認存取權限與使用範圍。
雲端 Mac
安裝並選取對應版本的工具,依清單還原依賴項目。透過受控方式將簽署資料匯入鑰匙圈,先確認命令列工作能在預期的工作階段中存取;不要將解鎖密碼寫入記錄。
確認目前的開發工具與路徑
xcodebuild -version
xcode-select -p
交接完成:相同提交與相同參數都能完成建置。先執行一條完整命令,再接上自動化;不要直接將未驗證的環境設為預設執行端。
本機 Mac
保存現有流程設定,列出建置、測試、封存與上傳步驟。將寫死的本機目錄改為工作目錄變數,並明確記下回復時要還原的執行標籤。
雲端 Mac
註冊 self-hosted runner,設定獨立標籤與最小權限。先讓測試分支使用新節點,確認產物上傳與記錄回傳正常,再切換正式流程的標籤。
GitHub Actions 執行端標籤範例
runs-on: [self-hosted, macOS, ARM64, cloud-build]
交接完成:工作確實在新節點執行,結果可追溯,憑證也未出現在輸出中。不要讓不受信任的外部提交直接存取含有簽署資料的 runner。
輕量建置可從 Flow M4 開始;並行建置與 MLX 工作優先評估 Flow M4 Pro。多機協作是另一種配置方式,不會把多台機器的記憶體合併成一台。
| 工作與瓶頸 | 建議起點 | 租用週期建議 | 測試時的檢查重點 |
|---|---|---|---|
| 輕量建置、單一工作佇列 | Flow M4 M4 / 16GB / 256GB |
按週租用以涵蓋發佈;使用穩定後再評估按月租用。 | 冷快取與熱快取的耗時、尖峰記憶體用量、建置目錄成長。 |
| 並行建置、較多模擬器工作 | Flow M4 Pro M4 Pro / 64GB / 2TB |
先按天測試並行能力,再按週執行完整測試集。 | 逐步增加工作數量,觀察記憶體壓力、測試穩定性與磁碟寫入情形。 |
| MLX 量化模型推論 | Flow M4 Pro M4 Pro / 64GB / 2TB |
先按天測試,確認模型相容後再選擇按月或按季租用。 | 模型權重、上下文與執行快取的總用量,以及固定輸入下的處理效能。 |
| 專案、模型或快取占用大量磁碟空間 | 依機型所需記憶體選擇;另可評估加購 +1TB SSD 或 +2TB SSD。 | 確認所選租用週期的加購價格。 | 檢查目錄位置、磁碟掛載位置、剩餘空間與獨立備份是否完整。 |
| 多個節點分工協作 | 先依單機工作需求選型,再評估 Thunderbolt 5 串接;費用按台計算。 | 先確認軟體與連線需求,再決定長期租期。 | 工作拆分與資料傳輸方式。串接不會自動合併統一記憶體,也不代表軟體會自動以分散式方式執行。 |
可選節點共五處:新加坡、日本(東京)、韓國(首爾)、香港與美國東部。兩款機型皆有供應;互動式工作可優先選擇靠近操作者的節點,自動建置則也要考量程式碼與產物的傳輸路徑。
固定提交編號與工具版本,分別記錄準備、建置、測試和上傳所需時間。若輸入與環境不同,單次快速完成並不能證明長期工作已適用。
把目標寫成一句可驗收的話:原有流程能順利執行,或實驗已確認相容。達成後,再決定下一步投入。
「把 CI 從本機搬到首爾節點,流程標籤只改一行就跑通了。」
React Native 團隊工程師
「先按天租一台測試 MLX,確認夠用後再改按季租用。」
AI 產品原型開發者
準備一個專案、一組輸入和一項驗收標準。先讓工作順利執行,再決定要把多少工作交給雲端。
可按天、週、月或季租用。僅支援 USDT-TRC20,以及透過 Stripe 處理的 Visa / Mastercard / Amex;以美元結算。實際可用的付款閘道以控制台回報為準。