從連線檢查到流水線驗收

將雲端 Mac 設定為可重複使用的開發環境

這裡依照實際操作順序整理首次連線、Xcode 與命令列工具設定、資料遷移、CI/CD 整合及問題升級方法。每個步驟都提供輸入資訊、執行動作與驗收標準,適用於獨享實體節點,不涉及虛擬機資源共用。

5 個節點 新加坡、日本(東京)、韓國(首爾)、香港、美國西部
2 種配置 M4 / 16GB / 256GB 與 M4 / 24GB / 512GB
365 天運作 全年持續運作,實際設備狀態以控制台回傳為準
首次啟用流程

先確認交付資訊,再進入 macOS 桌面

首次連線的目標不是立即安裝所有工具,而是確認設備、節點、身分與圖形介面四項資訊彼此對應。完成以下四個步驟後,再開始遷移程式碼與相依套件。

  1. 01

    查看設備資訊

    登入控制台,開啟對應訂單的設備詳細資訊,記錄訂單號碼、機型、節點、主機位址與目前系統版本。不要將連線憑證複製到群組聊天、公開文件或儲存庫檔案。

    驗收:訂單號碼與設備詳細資訊一致
  2. 02

    確認節點與網路

    核對所選節點是否符合團隊的存取位置,並從本機網路檢查至主機位址的連線狀況。若公司網路有限制出口,請先確認連線埠未遭策略封鎖。

    驗收:位址可連線且節點正確
  3. 03

    取得連線憑證

    僅從控制台的設備詳細資訊讀取帳戶與連線資訊。首次使用後,應依團隊權限規範更新憑證,並將存取範圍限制於實際需要連線的成員。

    驗收:身分驗證可以完成
  4. 04

    驗證桌面環境

    進入 macOS 圖形介面後,檢查顯示解析度、鍵盤配置、剪貼簿與終端機是否正常。開啟「關於這台 Mac」核對晶片、記憶體與系統版本。

    驗收:桌面與終端機皆可操作
連線失敗時保留現場

記錄發生時間、使用的本機網路、錯誤提示與已執行步驟。不要同時連續修改密碼、網路設定與遠端存取設定,否則難以判斷是哪項變更影響結果。

開發環境指南

將工具版本寫入清單,而不是依賴記憶

可重現的環境至少需要記錄作業系統、Xcode、命令列工具、套件管理器、語言執行環境、建置工具與專案 SDK。先建立版本基線,再逐項安裝相依套件。

工具鏈基線

建議記錄的版本與驗證指令

指令輸出應隨專案文件或內部設定清單保存,敏感路徑與儲存庫位址需要脫敏。

雲端 Mac 開發工具安裝與版本驗證表
工具 安裝或設定重點 驗證指令
Xcode 記錄完整版本、build 編號與目前選用路徑 xcodebuild -version
Command Line Tools 確認與目前 Xcode 路徑相符,避免呼叫舊工具鏈 xcode-select -p
Homebrew 先匯出相依套件清單,再依新環境重新安裝 brew config
Git 設定提交身分、憑證範圍與儲存庫存取方式 git --version
Fastlane 透過專案相依性鎖定版本,避免全域版本漂移 bundle exec fastlane --version
專案 SDK 記錄 Ruby、Python、Node 或其他執行環境版本 xcrun --show-sdk-version
安裝順序

先安裝系統工具,再處理專案相依套件

建議順序為 Xcode、Command Line Tools、Homebrew、Git、語言執行環境、Fastlane、專案 SDK。每完成一個層級就執行驗證指令並保存輸出。

查看遷移驗收路徑
版本切換

不要覆寫唯一可用的環境

需要驗證多個 Xcode 或 macOS 組合時,應先保留目前穩定基線,記錄切換前後的路徑、版本與專案測試結果,再決定是否調整預設工具鏈。

諮詢環境遷移方案
遷移路徑

將遷移拆分為資料、工具鏈與 CI 三次驗收

直接複製整個本機環境,通常會連同舊快取、絕對路徑與不再使用的相依套件一起帶入。更可靠的方式是先遷移必要資料,再重建工具鏈,最後接入自動化任務。

階段 1

遷移專案資料

區分程式碼、建置輸入、設定檔、快取與產物,只遷移需要長期保留或可驗證來源的資料。

  • 透過版本庫取得程式碼並核對分支與提交
  • 單獨遷移未納入版本庫的必要設定,敏感欄位使用安全管道
  • 不要直接複製舊的 DerivedData、暫存快取與失敗產物
驗收項目 儲存庫狀態乾淨,關鍵檔案校驗一致,敏感資訊未進入公開目錄。
階段 2

重現工具鏈

依版本清單安裝 Xcode、命令列工具、Homebrew 相依套件與語言執行環境,不以舊機器的完整複製取代安裝記錄。

  • 保存 Xcode、Git、套件管理器與 SDK 版本輸出
  • 執行相依套件鎖定檔對應的安裝流程
  • 使用一個可控專案完成編譯、測試與封存
驗收項目 同一提交可穩定建置,工具版本有記錄,發生失敗時能定位至具體相依套件層。
階段 3

接入持續整合

先使用低權限測試儲存庫驗證 runner,再接入正式專案。將標籤、工作目錄、快取與產物策略寫入流水線設定。

  • 為 runner 指派明確的系統、架構與用途標籤
  • 限制儲存庫憑證權限與可存取的專案範圍
  • 驗證任務取消、失敗日誌與產物回傳路徑
驗收項目 儲存庫觸發、雲端執行、產物回傳與失敗留存形成完整閉環。
術語小字典

先統一術語,再討論連線與效能

以下詞語用於描述資源歸屬、連線方式與建置流程。它們不是行銷標籤,而是判斷操作邊界與排查責任的基礎。

實體節點
實際承載雲端 Mac 的設備與機房網路位置。節點區域會影響團隊連線路徑,但不會改變所選機型的晶片、記憶體與儲存規格。
獨享
一個訂單對應一台獨立實體設備,不與其他客戶共用同一個虛擬化運算執行個體。系統環境與任務程序由該訂單使用者管理。
非虛擬機
交付對象是實體 Mac,而不是從主機劃分出的虛擬運算單元。設備重新啟動、工具鏈與工作目錄都以該實體節點為核心運作。
VNC
用於存取 macOS 圖形桌面的遠端連線方式。連線資訊應從控制台取得,不應長期保存於公開文件、儲存庫或聊天紀錄中。
self-hosted runner
由團隊管理並連線至程式碼儲存庫自動化系統的執行端。雲端 Mac 可負責編譯、測試、封存與上傳產物。
建置佇列
等待 runner 執行的任務集合。需要結合並行策略、任務優先級、逾時與取消機制,判斷佇列是否健康。
程式碼簽署
建置與發布流程中,用於確認應用程式來源與授權範圍的步驟。相關材料由使用者自行管理,並應與儲存庫憑證分開控管權限。
節點區域
目前可選擇新加坡、日本(東京)、韓國(首爾)、香港與美國西部。選擇時應考量主要操作者位置與程式碼協作路徑。
CI/CD 整合

讓儲存庫觸發、節點執行與產物回傳皆可追蹤

接入 runner 的關鍵不只是讓第一個任務成功執行,而是確保憑證範圍、標籤路由、快取目錄、產物保存與失敗日誌都能持續管理。

憑證

將儲存庫權限維持在最小範圍

為 runner 使用獨立憑證,只開放拉取程式碼、讀取必要相依套件與上傳指定產物所需的權限。不要將管理權限或長期金鑰寫入流水線檔案。

  • 限制可存取的儲存庫與組織範圍
  • 區分唯讀相依套件憑證與發布憑證
  • 在日誌中遮蔽權杖、主機位址與敏感路徑
標籤

用標籤描述能力,而不是設備暱稱

建議標籤包含作業系統、晶片架構、Xcode 基線與任務用途。流水線透過能力標籤選擇節點,避免設備改名後任務路由失效。

  • 區分建置、測試與發布用途
  • 將版本標籤納入變更紀錄
  • 避免所有任務共用一個過於寬泛的標籤
快取

快取目錄必須可清理

相依套件快取與 DerivedData 應有清楚界線,不能與不可重新產生的建置產物混放。清理策略需保留重建路徑,避免磁碟使用量持續增加。

  • 依專案與工具版本拆分快取金鑰
  • 快取失效時允許完整重建
  • 定期檢查大型目錄與重複封存檔
產物與日誌

失敗任務也要留下可診斷資訊

無論任務成功或失敗,都應回傳必要的測試報告、關鍵建置日誌與產物索引。日誌保留原始時間順序,同時清除憑證與個人資料。

  • 為產物附上提交、分支與工具版本
  • 保留失敗指令、結束碼與前後文
  • 記錄任務開始時間、結束時間與 runner 標籤
輸入 儲存庫事件與最小權限憑證
執行 獨享實體雲端 Mac runner
輸出 產物、測試報告與脫敏日誌
問題升級流程

提交前先固定時間、環境與重現路徑

有效的問題描述應讓支援人員能定位至具體訂單、節點、系統環境與失敗步驟。任何密碼、私密金鑰、完整權杖或未脫敏的簽署材料,都不應進入公開區域。

提交欄位

建議一次提供完整的六項背景資訊

欄位越完整,就越能減少來回確認。無法確認的項目可以填寫「未知」,不要以推測取代實際觀察。

訂單號碼 用於對應設備與訂購記錄,不要提供付款憑證。
節點 註明新加坡、東京、首爾、香港或美國西部。
macOS 版本 附上完整版本與 build 編號,不要只填寫大版本名稱。
發生時間 註明時區、首次出現時間與最近一次重現時間。
重現步驟 依執行順序記錄指令、介面操作與實際結果。
脫敏日誌 保留錯誤背景資訊,移除權杖、密碼、私密金鑰與敏感路徑。
已有訂單

在控制台提交工單

控制台工單可以與訂單及設備背景資訊對應。提交後請避免反覆變更系統、連線設定或工具版本,除非工單回覆要求執行指定驗證。

前往控制台工單
售前與遷移問題

透過聯絡頁整理需求

如果尚未有訂單,可說明團隊位置、目標工具鏈、預計任務類型、節點偏好與租用週期,用於評估配置與遷移路徑。

前往聯絡頁
帳戶與付款協助

依訂單、金額與付款識別資訊核對狀態

所有價格與帳單均以美元(USD)結算。付款方式僅包括 USDT-TRC20,以及 Visa / Mastercard / Amex(經 Stripe);實際可用的付款閘道以控制台回傳為準。

先查看訂單帳單

在控制台開啟對應訂單,核對機型、週期、節點、儲存空間附加項、Thunderbolt 5 並聯數量與美元總額。不要只憑付款記錄中的金額猜測對應訂單。

核對卡片付款

使用 Visa / Mastercard / Amex(經 Stripe)時,重點核對訂單號碼、美元金額、付款時間與控制台顯示的訂單狀態。不要透過電子郵件傳送完整卡號或安全碼。

核對 USDT-TRC20

保留與訂單對應的交易識別資訊,並核對鏈類型、美元訂單金額與控制台狀態。提交支援請求時只提供必要的識別資訊,不要公開錢包存取憑證。

訂單狀態與付款記錄暫時不一致時

不要重複建立多筆相同訂單。先保存訂單號碼、付款時間、美元金額與必要的交易識別資訊,再透過控制台工單提交核對。

核對訂單狀態
下一步

先確定任務,再選擇節點與計費週期

如果已明確工具鏈、執行時間與團隊位置,可以直接配置兩種 M4 實體雲端 Mac。仍在比較環境時,請先查看完整價格與規格。