截至 2026 年 11 月 2 日,GitHub 將退役 macOS-14、macOS-14-large 與 macOS-14-xlarge Runner 標籤。官方退役公告 已確認期限與範圍;本週應先依專案相容條件選替代 Runner,用同一條發布工作流程隔離驗證,再分批切換正式任務並預備可執行的回退方案。關鍵發布工作無法通過驗收時,先核實備用 Mac 承載條件,不要等到標籤退役才處理。
本文適合管理 GitHub Actions iOS 發布流水線的 IT、平台工程與發布負責人。
若您負責 Xcode、應用程式簽名,或 Mac CI 預算與容量,也可按以下驗收路徑安排遷移。
最後更新於 2026 年 10 月 26 日;退役範圍與日期核實自 GitHub 官方公告、Runner 選擇文件及 Runner 映像倉庫。正式切換前仍須重查標籤、映像與團隊自己的執行日誌。
遷移起點:先定發布基線,再排任務優先級
macOS-14 Runner 的遷移不是只改 YAML 標籤。Runner 標籤表示工作流程的選擇條件,不會單獨保證實際映像、處理器架構、Xcode 工具鏈或簽名環境符合專案要求。GitHub 也提供不同 Runner 選擇方式;實際可用標籤及其含義應以官方 Runner 選擇文件和映像資訊為準。
先從一條真實的 iOS 發布工作流程建立比較基線,記錄目前的 Runner 標籤、日誌中實際選用的 Xcode、依賴解析結果、建置產物、歸檔、簽名及上傳步驟。若現有日誌沒有留下這些證據,先補足紀錄,不要直接把新舊流程的「成功」當成等價。
接著按發布風險排序,而非按 YAML 檔案排列:
- 正式簽名與上傳:涉及發布憑證、佈建描述檔或商店上傳,放在優先驗收項目。
- 模擬器測試:核實執行環境和測試結果,確認測試範圍沒有因 Runner 或 Xcode 變動而縮減。
- 一般建置:可先遷移,但仍需檢查依賴解析、編譯結果與產物內容。
Xcode 可用版本受 macOS 系統要求等條件限制,不能只依 Runner 標籤推斷。請按專案目前使用的 Xcode,對照 Apple 的 Xcode 系統要求;再從工作流程日誌核實實際選用版本與映像。這一步可以提早暴露「標籤已換、工具鏈卻不合」的問題。
隔離驗證:macOS-15 Runner 與其他候選環境逐項核對
macOS-15 Runner、macOS-26 Runner 或其他替代標籤,都只能視為候選環境。GitHub 公告列出的替代建議不是所有專案必然相容的保證。先查看公告及官方 Runner 映像倉庫中的現行標籤與映像內容,再以專案實際使用的 Xcode、系統與架構條件篩選。
隔離工作流程的驗收順序
使用非生產分支或隔離工作流程,固定同一份程式碼提交,避免新舊流程因程式碼不同而失去比較價值。依序執行:
- 解析套件與私有依賴,確認登入、憑證及網路存取仍可用。
- 執行專案原有建置命令,記錄 Xcode 版本與 Runner 實際環境。
- 執行必要測試,對照原有測試範圍與結果。
- 產生正式發布所需的 archive,確認產物可被後續匯出流程使用。
- 驗證簽名與匯出結果。參照 Apple 的簽名程式碼建立與發行文件檢查簽名相關要求。
- 驗證上傳步驟的權限與結果,但不要讓隔離流程直接發布到正式渠道。
簽名不只是建置結束時的附加檢查。若新 Runner 找不到預期的憑證、金鑰或佈建描述檔,流程可能在歸檔或匯出階段才失敗。隔離驗證應使用專用測試憑證或受控的測試路徑,並確認測試工作流程沒有取得不必要的正式發布秘密。可依 GitHub 安全使用說明檢查秘密管理與工作流程權限。
正式切換:小批放行並保留停止條件
隔離流程通過,不代表可以一次更改所有正式工作流程。先挑選已完成基線比較、回退路徑清楚、且不會造成不可逆發布結果的任務。每一批切換前,記錄負責人、預期 Runner、驗收證據與停止條件;切換後確認日誌反映的是預期標籤和實際環境。
正式發布應使用環境保護規則與必要審核,避免測試流程取得生產發布權限。GitHub 的部署環境保護文件說明可用的保護機制;同時要檢查工作流程的並行設定,避免重複執行或取消行為影響發布。相關設定可對照 GitHub Actions concurrency 文件。
遷移時可直接使用以下核對清單:
- [ ] 已保存原流程的 Runner 標籤、實際 Xcode、依賴解析與建置日誌。
- [ ] 已確認候選 Runner 標籤與映像資訊仍有效,並核對 macOS、架構及 Xcode 條件。
- [ ] 隔離流程使用同一程式碼提交,完成依賴解析、建置、測試與歸檔。
- [ ] 已驗證簽名、匯出及上傳所需權限,且測試流程不會觸發正式發布。
- [ ] 已定義失敗時停止放量的條件,以及回到已驗證承載方式的操作步驟。
- [ ] 每批切換後已核對實際 Runner、工作流程結果與產物,並保存可供稽核的紀錄。
若任一項未完成,先停在隔離或小範圍驗收,不要以「工作流程沒有報錯」替代發布證據。尤其不要把 macOS-14 標籤保留為唯一回退手段,因為它有已公告的退役期限。
常見問題:標籤更換、發布驗收與回退
macOS-14 Runner 退役前,先改哪些工作流程?
優先找出產生正式歸檔、使用發行簽名憑證或執行上傳的工作流程,再安排一般建置與測試任務。逐條確認實際 Runner、Xcode 選擇、依賴解析和失敗回復步驟。只改標籤而未核對實際執行環境,無法證明發布流程已遷移完成。
由 macOS-14 換到 macOS-15 或 macOS-26,如何驗證 Xcode 建置?
先以官方標籤與映像資料確認候選環境,再在隔離工作流程查看實際 macOS、架構和 Xcode 版本。使用同一程式碼提交執行依賴解析、建置、測試與歸檔,對照原有日誌和產物。標籤名稱本身不能證明專案相容,候選環境也要以團隊實際結果驗收。
正式發布前,怎樣驗收 iOS 歸檔、簽名和上傳?
以不會觸發正式發布的測試路徑產生歸檔,再核對簽名身分、佈建描述檔、匯出結果與上傳權限。保存日誌及產物檢查紀錄,確認測試工作流程沒有取得不必要的正式憑證。單看建置成功狀態不足以放行發布。
Runner 遷移失敗時,如何回退或承接關鍵任務?
先停止擴大切換,保留已驗證的流程設定與產物,並將關鍵工作交回仍可用且已核實的承載方式。不要把即將退役的 macOS-14 標籤當作長期回退方案。若需備用 Mac,先用真實發布任務確認環境、權限、網路需求與恢復步驟。
備用承載:以真實發布任務驗收遠端 Mac CI
若個別任務在候選 Runner 上無法通過驗收,先具體說明受阻條件:是否依賴特定 macOS 或 Xcode、是否需使用簽名憑證、是否要求特定網路連線,或是否需要持續可用的建置節點。再評估企業遠端 Mac CI 是否能滿足這些條件。沒有可核實的環境與交付資料,就不應把任何備用方案寫進容量承諾。
我們不以通用規格取代實際驗收。可先用一條非生產發布工作流程測試依賴、建置、歸檔與簽名,再確認團隊能否安全管理憑證與存取權。若團隊正在比較不同地區的雲端 Mac 採購選項,可先核對香港雲端 Mac mini 採購資訊;該頁所列條件仍須與實際工作負載及交付需求逐項比對。
把驗收結果整理為一份記錄:工作流程版本、實際執行環境、建置與簽名結果、未解決限制、失敗後的接手方式,以及責任人。用這份證據判斷是增加備援、調整工作流程,還是維持原有 Runner 方案;不要在測試完成前推定配置、價格或服務能力。
遷移決策:按已驗收結果結束放量
當替代 Runner 已完成同流程驗證,正式任務也能逐批切換,遷移才算具備可操作的退出條件。若只有一般建置成功、但簽名或上傳尚未測過,應將發布工作保留在已核實的承載方式,直到關鍵鏈路有證據支持放行。
與繼續依賴單一託管 Runner 相比,備用 Mac 方案能提供另一種承載選擇;但仍需納入環境核對、憑證治理與節點管理。若現行方案面臨退役日期、映像或工具鏈變動、以及關鍵任務缺少已驗證回退路徑,您可評估租用 MESHLAUNCH 的 Mac 作為候選備援。先從遠端 Mac 方案頁面核對頁面當前列出的條件,再以真實發布工作流程完成驗收;若工作負載長期穩定且需要高度可控的固定實機環境,自購 Mac 也應列入比較。