2026 Codemagic 託管 iOS CI 或獨占遠端 Mac 分鐘計費、併發槽位、遷移矩陣、VPS 式 SSH 自託管

若您在 Apple 晶片上交付 iOS 或 Flutter,多半正在權衡 Codemagic 託管 macOS CI租用獨占遠端 Mac,並以 VPS 思維營運:SSH 登入、釘選 Xcode、執行 Agent、掌控磁碟與簽章邊界。讀者:平台工程師與行動端負責人。痛點:分鐘計量、併發槽位、佇列語意與遷移風險在發版季碰撞。產出:七條待驗證假設、決策矩陣(連至 BitriseXcode Cloud 對照文)、六步 SSH Runbook、可寫入 RFC 的指標,以及指向 雲端 Mac 租賃價格說明中心 的 FAQ。

01

鎖定 Codemagic 雲端分鐘或自託管 Mac 容量前,請壓力測試的七條假設

Codemagic 把行動端友善的 YAML、Flutter 與 iOS 範本,以及可視化的計費分鐘儀表板打包在一起。這份透明很有價值,也可能遮住真正故障所在:Xcode 指紋併發槽位上限簽章鑰匙圈,以及長依賴圖上的磁碟放大。若評審跳過這些層,最後往往只在比品牌 Logo,而非執行平面。

託管 CI 並非「零維運」。雲端映像會輪換;自託管通道仍須與 SwiftPM、CocoaPods 與 DerivedData 治理 對齊快取契約。問題在於:您要由供應商排程強制邊界,還是在凌晨兩點 Job 變紅時能 SSH 進去的硬體上,用自己的驗收測試強制邊界。

  1. 01

    分鐘計費等於可預測預算:分鐘會隨平行度與重試倍增。一個不穩定的整合測試重跑五次,可能比財務模型更快燒完發版週額度。請追蹤計費分鐘變異,而非只看月總量。

  2. 02

    併發槽位看似無限直到撞牆:方案層級限制同時 macOS Job 數。尖峰發版若同時 Archive 與 UI 測試,即使單 Job 很快也會排隊。承諾週五切版前,請把最大平行工作流程寫進 SLA。

  3. 03

    自託管代表不再付分鐘:您常把可見雲端帳單換成固定租賃、修補、Agent 升級與磁碟清理——遷移期的雙軌成本很正常。

  4. 04

    簽章可以留在筆電上:企業憑證與 match 流程應落在專用 CI 使用者與輪替 Runbook——見 Fastlane 無頭 CI企業建置資源池

  5. 05

    VPS 式 SSH 是可選項:對生產級行動 CI,非互動 SSH、停用睡眠與指令稽核是基線——請對照 從 Linux VPS 的 SSH 與 VNCM 系列 SSH CI 替代方案

  6. 06

    一台 Mac 可承載所有編排器:若無路徑隔離,Codemagic Agent、GitHub Actions RunnerGitLab Runner 會踩同一 DerivedData 根目錄。

  7. 07

    網路檢查停在瀏覽器 HTTPS:建置 Agent 需要穩定出口與供應商回呼;TLS 檢查代理會讓 Worker「線上」卻餓死——請蒐集主機側證據,而非只看主控台綠燈。

營運上,在加購第二個併發槽或第二台 Mac 前,請先公布三項指標:佇列深度 P95Archive 耗時分佈每週磁碟增量。沒有它們,您只是在更漂亮的 UI 下複製混亂。相較臨時辦公室筆電,租賃獨占 Apple 晶片主機在電力、零件與遠端維運上更可預測;相較可疑的 macOS 虛擬化堆疊,實體 Mac mini 可降低簽章與審查風險——請把差異寫進 RFC,而非聊天串。

若您也在評估其他控制面,請閱讀 CircleCI 混合編排Buildkite Agent 彈性,區分「誰擁有 YAML 與權限」與「誰擁有 macOS CPU 與 NVMe」。Codemagic 落在同一架構桶:控制面行動端體驗強,執行仍受 Apple 硬體物理限制。

02

遷移決策矩陣:Codemagic 雲端 macOS、Codemagic 驅動自有 Mac、獨占遠端 Mac 節點

沒有放諸四海皆準的贏家,只有與約束的契合度。本矩陣供工程負責人在同一場會議向財務與資安辯護選擇。列對照供應商託管 macOS 分鐘Codemagic 驅動您自有機器,以及像雲端節點一樣營運的獨占遠端 Mac 容量(上方常仍保留 Codemagic 或其他編排器)。

維度Codemagic 雲端 macOSCodemagic + 自託管 Mac獨占遠端 Mac(節點池)
成本形態計費建置分鐘 + 併發方案檔常為雙軌:輕量 Job 雲端分鐘 + 固定租賃容量型:租金、磁碟層級、出口頻寬—接近 VPS/節點預算
併發模型平台強制平行槽位上限您按機器誠實估算 CPU/IO;佇列轉為本地文件化專屬槽位;混合標籤導向重負載
佇列風險共享機群尖峰可拉長發版窗等待轉為 Agent 池健康度問題佇列成為您的 Runbook 問題—也是控制面
磁碟與快取短暫乾淨建置;溫快取仍計分鐘有紀律即可保留溫 DerivedData固定路徑、cron 清理、水位警示—見快取治理文
維運入口Web UI + YAML;主機 SSH 有限Agent 日誌 + 自有主機 SSH 排錯完整 SSH、launchd、監控—VPS 心智模型
典型切分PR 檢查、Flutter/iOS 單元、實驗需穩定簽章網域的 Archive 通道7×24 Agent、多編排器、AI/自動化側車

「像租 VPS 一樣租 Mac」不代表放棄 Codemagic——而是在熟悉的工作流程下,把 Xcode + 機密 + NVMe 鎖在可 SSH 的合約級獨占主機後方。

成熟團隊多採混合:在託管堆疊保留可預測分鐘成本的輕量驗證,並以明確 workflow 條件把Archive、企業簽章與長整合套件導向獨占硬體。相較只拉高雲端併發,此模式把尖峰壓力從「等額度」轉為「等自有佇列」——故障更接近您可控的主機。

請文件化「誰可變更簽章」「誰可清空快取」的 RACI,橫跨 Codemagic、GitHub 與 GitLab——否則三條流水線會在憑證到期日下午一起被叫醒。財務比較應重用 買斷 vs 租賃 TCO雲端 Mac 租賃 SLA 的假設格,再重談方案檔。

託管分鐘何時勝出—獨占節點何時勝出

託管分鐘適合快速上線、精選堆疊、最少主機照護;發版節奏中等;計費分鐘落在可預測包絡;並接受尖峰期的平台佇列語意。獨占節點適合需要專屬併發、持久目錄樹、自訂常駐程式、固定出口、多編排器,或 SSH 優先的事故處理——與團隊從 Xcode Cloud 轉向節點型容量的訊號相同。

實務遷移模式:workflow YAML 與環境群組保持穩定,只改機器目標——PR 煙霧測試走雲端,Archive 走自託管池。這縮小爆炸半徑:工程師仍讀熟悉日誌,財務仍看輕通道分鐘趨勢,平台負責人在簽章或快取事件時有單一 SSH 目標。請寫明切換日、回滾觸發(例如連續兩個發版窗佇列 P95 超 SLA),以及誰可翻轉 workflow 條件——三行可避免「暫時混合」變永久混亂。

03

六步遷移 Runbook:從雲端分鐘到獨占遠端 Mac 上的 VPS 式 SSH 自託管

順序很重要:先身分與目錄,再綁定 Agent,最後才調平行度。選單文案以 Codemagic 現行文件為準——本 Runbook 提供可貼進內部 Wiki 的工程骨架。

  1. 01

    盤點計費分鐘與槽位使用:匯出過去 90 天建置分鐘、macOS 平行 Job 尖峰與重試率。下硬體訂單前,財務與工程應看同一張圖。

  2. 02

    配置專用 macOS CI 使用者:勿與個人 Apple ID 工作階段混用;標準化如 ~/codemagic-ci 的前綴並停用睡眠——與其他自託管指南相同基線。

  3. 03

    凍結工具鏈指紋:xcodebuild -version、Ruby、Flutter 與依賴 lockfile 寫入 repo 文件;搭配 可復現 Xcode 指紋

  4. 04

    依供應商流程註冊自託管容量:把註冊權杖當輪替機密;從主機驗證對外 HTTPS 與回呼路徑,而非只在筆電瀏覽器測試。

  5. 05

    把工作流程綁到目標機器群組:預設常仍指向雲端 Worker——Archive 與簽章通道需明確條件,避免默默燒分鐘。

  6. 06

    以相同 Git SHA 做金絲雀:在雲端與獨占通道各跑一次;擴平行度或退役槽位前,比較佇列等待、牆鐘時間與磁碟增量。

yaml · 評審欄位(範例)
sla.max_queue_minutes = 25
cost.window_days = 90
capacity.peak_parallel_macos = 4
disk.watermark_free_pct = 20
entry.default = "ssh_ci_user"
split.light = "codemagic_cloud"
split.heavy = "dedicated_remote_mac_pool"
info

備註:無人值守 CI 以 SSH 優先排錯優於 VNC。若必須完成一次互動式鑰匙圈提示,請排程、記錄,再回到無頭 Agent——見上文 SSH 清單。

收尾後請監控佇列等待時間主機磁碟水位:前者暴露 workflow 綁錯目標,後者暴露快取政策失控。若 UI 套件與編譯共用主機,請搭配 Maestro 佇列設計——重編譯 Job 與模擬器農場的 IO 輪廓不同。

04

分鐘計費、併發槽位與佇列—把供應商語言翻成發版 SLA

託管 CI 定價最好讀成兩個槓桿:Job 跑多久(分鐘)以及同時可跑幾個 macOS Job(併發槽位)。兩者會互動:慢 Archive 佔住槽位會擋住其他 workflow,即使分鐘表看起來「還好」。發版週的痛點很少是單次慢編譯,而是平行 workflow 在槽位上限下碰撞,把綠色儀表板變成錯過發版列車。

請把供應商儀表板翻成工程驗收條件。範例欄位:升級前可接受的最長佇列時間;每個 commit 的最大重試次數;UI 套件是否可與 Archive 共用槽位;夜間建置是否可吃掉為 release tag 保留的尖峰槽位。請與簽章 RACI 放在同一份文件,避免維運與資安各談各的。

獨占遠端 Mac 翻轉對話:仍有佇列,但是您的佇列——由 CPU、記憶體、磁碟 IO 與您公布的誠實平行政策界定。這更接近團隊看待 Linux VPS 機群的方式:不會在雙核機器無互斥跑十二個 Docker 建置;Apple 晶片也請同等對待。可用 workflow 互斥、每編排器獨立 Unix 使用者,或依風險等級分機。

warning

注意:可用磁碟低於團隊門檻時暫停排程;刻意清理並記錄刪除路徑以供稽核。磁碟滿造成的槽位飢餓,在 UI 上常像「莫名排隊」。

財務應同時追蹤「發版週少掉的救火工時」與「避免的緊急雲端分鐘採購」,而非只看單價。自託管通道把可見 Codemagic 帳單換成修補、Xcode 升級與 Agent 升級;租賃獨占主機常含多區域物流——請在三季評審一併記錄。資安上,自託管 Agent 會執行任意 repo 腳本——請把主機當生產伺服器:SSH 金鑰輪替、僅金鑰驗證、最小 sudo、隔離建置帳號。

若同一資產上還跑 AI 編碼 Agent 或 OpenClaw Gateway,請把連接埠與工作根目錄與 CI 目錄樹隔離——交叉閱讀 macOS 上以 launchd 運行 Gateway,避免自動化側車與 Archive 搶磁碟空間。

05

可貼進內部 RFC 的三組數字—以及如何收斂遷移爭議

請依 repo 規模與平行政策調整門檻;目標是可評審的數字,而非普世常數。

  • 磁碟水位:CI 磁碟區至少保留 20% 可用空間;破壞性清理前先暫停排程——與站內 Bitrise、CircleCI 文相同基線。
  • 併發探針:先量測每個 Archive Job 的記憶體尖峰,再線性擴槽位——Apple 晶片連結器尖峰常遠高於平均。
  • 分鐘與租賃交叉點:當 90 天計費分鐘加槽位升級超過獨占租賃加維運工時,混合或全自託管值得正式試點——而非走廊投票。

借用筆電會撞上睡眠政策、突發系統更新與人為斷電;灰色 macOS 虛擬化難過稽核且破壞模擬器保真。保留 Codemagic——或任何行動端友善編排器——作熟悉控制面,同時把 macOS 執行落在獨占、常駐、可 SSH的遠端節點,能把流水線從「有時綠」變「合約級」。

相較一次性個人硬體或不透明共享主機,只靠託管分鐘而無磁碟與簽章邊界,常導致不可預測佇列重試造成的分鐘尖峰,以及事故需主機存取時稽核軌跡薄弱。若要在 iOS 建置、CI/CD 與 Agent 平台間取得7×24 可預測自動化、清晰金鑰邊界與穩定磁碟層級NodeMini Mac Mini 雲端租賃是強韌的長期執行平面:託管 CI 負責整合體驗,獨占節點負責可 SSH 的容量,並把槽位與水位規則寫進自有 Runbook。請透過 雲端 Mac 租賃價格 比較方案,並以 說明中心 完成上線。

請把本 Runbook 綁到內部工具鏈變更分級,讓次要與重大 Xcode 升級有不同核准與快取失效範圍——避免「升級日全紅」卻無法歸因簽章或磁碟邊界。

FAQ

常見問題

當您需要專屬併發、溫快取、可自控簽章網域,或要在常駐硬體上以 VPS 思維做 SSH 排錯時。請跑兩週試點,記錄佇列 P95、計費分鐘與磁碟增量。改寫所有 workflow 前,請先於 雲端 Mac 租賃價格 比較硬體方案。

槽位限制平行 macOS Job;Job 執行期間持續累積分鐘——尖峰即使單 Job 很快也可能讓發版排隊。請建模最壞平行度,把最長佇列分鐘寫進 SLA,並於 說明中心 驗證連線基線。

可以——讓 Codemagic 擔任控制面,把重流程綁到獨占遠端 Mac 池。輕量 PR 驗證留在雲端堆疊,Archive 與簽章走獨占主機;若多編排器共存,請交叉閱讀 GitHub Actions Runner 標籤