選型症狀:macOS 26 Runner 架構未定 → 最快解法:新專案與 Apple Silicon 目標先試 arm64;只有必須驗證 Intel 行為、相依套件或交付目標時才選 Intel。
適用條件:需要同時支援兩種架構,就把對應建置與測試拆進矩陣;只有工作流程需要持續可控的 Mac 環境時,才把遠端 Mac 納入比較。
獨立開發者:為日常 iOS/macOS 建置挑選合適的 Runner。
Apple 平台團隊:確認產品是否仍需涵蓋 Intel 或遺留相依套件。
CI 與研發平台負責人:制定標籤、架構矩陣與例外任務的維護方式。
最後更新於 2026 年 11 月 2 日。 已核對 GitHub macOS 26 Runner 一般可用公告及 Xcode 27 Runner 映像公告;實際標籤可用狀態和映像內容仍應在調整工作流程時重新核對。
SECTION 01先釐清 Runner 主機架構,不要把它當成產物架構
GitHub 官方資料已確認,macOS 26 的托管 Runner 提供 arm64 與 Intel 標籤,標籤與主機架構的對應應以 GitHub Runner 選擇文件為準。簡單說,macos-26 對應 arm64,macos-26-intel 對應 Intel;部署前仍要核對官方文件,避免標籤或可用狀態變更後沿用舊判斷。
但 Runner 主機架構不等於專案的目標架構,也不等於建置產物已涵蓋的架構。你可以在一種主機上產生多架構產物,亦可能在 arm64 主機上只建置 arm64 版本。Apple 對通用 macOS 二進位檔的說明,正好提醒你要分開檢查建置設定與產物切片,而不能只看 CI job 成功與否:Apple 通用二進位建置指南。
GitHub Actions 的 macOS 26 arm64 與 Intel Runner 有何差異?
主要差異是執行工作的主機架構。這會影響原生工具、二進位相依套件與架構特定問題能否在該環境重現;它本身不能證明你的 App 已完成另一種架構的建置或測試。
獨立開發者:先按主要交付目標選標籤
若新專案以 Apple Silicon 為主要目標,先用 macos-26 試跑日常建置與測試,不必只因為專案使用 macOS,就預設所有工作都要放在 Intel Runner。若你要交付或測試 Intel 版本,則安排相應的 Intel 建置或驗證任務。
iOS 專案 CI 該用 macos-26 還是 macos-26-intel?
如果目前的建置、測試與相依套件都以 arm64 環境為主要驗收對象,先選 macos-26;若仍須驗證 Intel 行為、Intel 專用相依套件或特定使用者問題,就增加 macos-26-intel 任務。不要因為 iOS App 預計在不同裝置上執行,就直接推定必須使用 Intel 主機。
Apple Silicon 團隊:讓真實工作流程通過 arm64 驗收
macOS 26 Runner 已於 GitHub 公告中列為一般可用,Xcode 27 Runner 映像亦有獨立的一般可用公告;兩者公告日期與映像狀態可分別在 macOS 26 公告及 Xcode 27 映像公告核對。這能幫你確認環境選項,但不代表每個第三方 Action、套件或自訂腳本都已支援 arm64。
Xcode 27 的 GitHub Actions 應該選哪種 Runner?
若你的 Xcode 27 工作流程沒有 Intel 專屬驗收要求,先在 arm64 標籤上執行實際專案任務;當 Intel 仍是交付或相容性承諾的一部分,再加入 Intel job。Xcode 版本、系統要求與工作流程映像要分開核對,可參考 Apple Xcode 27 發行說明。
仍支援 Intel 的團隊:把建置和相容性測試分開記錄
你需要先確認 Intel 使用者仍否屬於產品支援範圍,再決定是否讓每次提交都跑 Intel job。如果 Intel 只涉及定期相容性驗收,可以安排獨立工作流程;若是每次變更都可能影響交付,就把 Intel 驗證放入必要檢查。建置成功只證明該次建置流程完成,不等於 Intel 執行行為或測試覆蓋已驗收。
遺留相依套件團隊:用失敗證據決定例外範圍
先清點預編譯二進位檔、套件管理設定、建置腳本和第三方 Action,記錄它們實際要求的 CPU 架構。若錯誤只在 arm64 或 Intel 環境出現,保留完整錯誤訊息、失敗步驟與對應依賴版本,再決定是否建立專用 Runner job。Apple 的處理 Apple Silicon 建置錯誤技術說明可作為排查參考;不要只因某個舊依賴尚未驗證,就把所有工作流程永久固定到 Intel。
若採用雙架構矩陣,先確認兩種 job 的檢查項目確實不同;複製同一份工作流程而沒有分別驗收產物或執行行為,只會增加維護工作,不會自動補足相容性證據。
簽署與發布團隊:將 Runner 條件和發布條件拆開
程式碼簽署、測試裝置登記和 Runner 架構是不同的檢查項目,不應互相代替。你要按實際發布流程核實憑證、佈建設定、測試裝置及主機行為,再於指定標籤上跑完整工作流程;不要把某一類 Runner 的限制推論成所有托管 Runner 都有相同限制。GitHub 對 托管 Runner 使用方式與較大 Runner 的能力和 macOS 限制有各自說明,設定前須確認文件所述範圍是否適用於你選用的 Runner。
CI 平台負責人:把例外變成有責任人的工作項目
平台層要明確記錄預設標籤、需要雙架構驗收的專案、Intel 專用任務的理由,以及負責複核的人。GitHub 說明指出,托管 Runner 的設定與可用能力受其執行環境和 Runner 類別影響;較大 Runner 的能力也有特定限制,不能把相關說明直接套用到所有 Runner。若工作流程需要持續保留主機狀態、主機控制或不同的運維方式,再評估遠端 Mac;單純需要切換架構標籤,不足以構成遷移理由。
試跑前先完成這些驗收步驟
- 寫明交付架構。 從專案支援承諾、建置設定和實際發布流程確認要交付或驗證的架構,不以團隊工作站的晶片代替產品要求。
- 檢查工具與依賴。 列出 Xcode、命令列工具、預編譯二進位檔、自訂腳本及第三方 Action,標記尚未確認的架構相容性。
- 確認 Runner 標籤。 對照 GitHub Runner 文件核實
macos-26與macos-26-intel的架構對應和當前可用狀態,將核對日期記入 CI 變更紀錄。 - 用真實專案小範圍試跑。 不只測最小範例;執行你實際依賴的建置、單元測試、必要的整合測試和產物檢查。
- 分別驗收產物與執行結果。 檢查建置設定、產物所含架構,以及目標環境中的測試結果;若要支援雙架構,就分別保存兩種架構的驗收證據。
- 記錄例外與維護責任。 為 Intel 專用任務寫明必須保留的依賴或測試理由,指定負責人,並在工具鏈或產品支援範圍變動時重新評估。
SECTION 02用條件分支決定單架構、矩陣或專用 Mac
- 若專案主要面向 Apple Silicon,且建置、依賴與測試已在 arm64 Runner 通過,就以
macos-26作為預設候選。 - 若 Intel 仍是明確交付目標,或錯誤只能在 Intel 環境重現,就把
macos-26-intel用於該項建置或驗證。 - 若產品須同時涵蓋兩種架構,就為各自的建置與測試安排矩陣任務,並分開檢查結果;不要用一種主機的成功紀錄代替另一種架構的驗收。
- 若需求是持續在線、可控的 Mac 環境,而不是單純取得另一個架構標籤,再評估遠端 Mac;若你需要先比較租用條件,可查看 MACNOX 方案與租用資訊。
| 團隊任務 | Runner 選擇方向 | 必須留下的驗收證據 |
|---|---|---|
| Apple Silicon 為主的新專案 | 先試 macos-26 |
真實專案建置、測試及產物檢查 |
| 仍須驗證 Intel 的應用 | 使用 macos-26-intel 執行對應任務 |
Intel 目標的建置或執行測試結果 |
| 同時支援兩種架構 | 依工作流程需要建立雙架構矩陣 | 各架構各自的產物與測試紀錄 |
| 遺留依賴限定架構 | 只為已確認的依賴建立例外 job | 依賴清單、失敗或通過紀錄、維護負責人 |
| 選擇 | 優點 | 代價與盲點 |
|---|---|---|
| arm64 作為預設 | 符合 Apple Silicon 目標時,能直接在對應主機架構驗證工具與依賴 | 不能因此推定 Intel 版本已建置或測試 |
| Intel 作為專用任務 | 可針對 Intel 交付目標或架構特定問題驗收 | 若所有工作都固定使用 Intel,可能掩蓋 arm64 相容性問題 |
| 雙架構矩陣 | 能分開呈現不同架構的建置與測試結果 | 要維護各自的 job 與判讀規則;未區分檢查目的會增加無效工作 |
| 持續可控的遠端 Mac | 適合需要保留特定主機環境或自行管理工作方式的流程 | 需要額外管理環境與存取方式;只為了切換架構標籤時未必合適 |
如果你目前的做法是把所有工作流程固定在 Intel,常見代價是 arm64 問題不易提早暴露、例外依賴缺少明確負責人,而且矩陣結果難以反映真正的交付承諾。反過來說,若你只依賴托管 Runner,卻需要持續保留主機狀態或控制執行環境,也可能遇到與工作流程不匹配的運維邊界。先依專案要求試跑對應標籤;只有在需要長期可控的 Mac 環境時,才比較自行維護與租用方案。若要用真實專案評估 MACNOX,請先核對租用與交付選項,再確認它是否符合你的工具鏈、存取及維護需求。