從驗收到穩定執行

將雲端 Mac 接入你的建置工作流程

收到設備資訊後,先核對訂單與實體節點,再完成連線、工具鏈重現與 CI 執行器註冊。每個步驟都提供檢查指令、完成標準,以及發生錯誤時需要保留的證據。

在售節點
5 個實體節點
在售設定
2 種獨享實體機
操作流程
9 組檢查步驟
首次接入交接板 依序驗證
01

核對交付紀錄

節點、設定、系統版本、租期與存取憑證必須與訂單確認資訊一致。

驗收
02

建立第一個工作階段

先驗證命令列連線,再依工作需求建立圖形工作階段並測試斷線復原。

連線
03

重現開發環境

鎖定 Xcode、相依工具與工作目錄,不要直接覆蓋舊機器的所有檔案。

設定
04

提交實際建置

使用實際儲存庫執行一次封存或測試工作,記錄耗時、日誌與產物驗證結果。

驗證
交付狀態 以控制台即時回傳為準
開始前準備

先確認是哪台設備、哪個節點,以及租用多久

資訊尚未核對前,不要開始遷移環境。先登入控制台,逐項比對訂單紀錄與設備詳細資訊;若欄位不一致,保留頁面資訊並提交工單。

01

節點與網路方向

確認節點為新加坡、日本東京、韓國首爾、香港或美國東部之一。記錄節點代碼,並從主要辦公網路測試連線路徑。

  • 確認團隊主要存取地點與節點時區
  • 分別在辦公網路與備用網路測試
  • 記錄延遲、抖動與封包遺失,不要只看單次 ping
02

設備設定

目錄包含兩種方案,收到資訊後應逐欄核對晶片、記憶體與儲存空間。

  • 基本方案:M4、16GB、256GB
  • 高階方案:M4 Pro、64GB、2TB
  • 額外儲存空間以訂單確認紀錄為準
03

系統與存取資料

核對系統版本、主機名稱、連線位址、連接埠與臨時憑證。首次登入後立即依團隊規範輪換憑證。

  • 不要將密碼或私密金鑰貼到公開日誌
  • 將憑證儲存在受控的密鑰管理工具中
  • 確認命令列與圖形連線分別需要哪些資料
04

租期與退出時間

按日、週、月或季租用時,都應在開始前確定資料匯出時間與工作停止點,避免將清理工作留到最後。

  • 記錄租期開始與結束資訊
  • 預留產物匯出與快取清理時間
  • 確認續租或調整需求的內部負責人
首次連線指南

先用命令列確認設備可連線,再建立圖形工作階段

命令列適合基礎驗收與自動化,圖形工作階段適合 Xcode、模擬器及需要視覺介面的操作。兩種方式應分別驗證,不要把其中一種成功視為整體連線正常。

命令列連線

建立最小可驗證工作階段

  1. 1
    檢查目標資訊

    從控制台複製主機位址、連接埠與使用者名稱,核對字元與大小寫,不要從舊工單沿用過期資訊。

  2. 2
    驗證主機指紋

    首次連線時比對交付資訊。指紋變更時先停止連線並確認原因,不要直接刪除本機紀錄後重試。

  3. 3
    執行唯讀檢查

    確認目前使用者、主機名稱、系統版本、磁碟與 Xcode 路徑,不要立即安裝或刪除軟體。

  4. 4
    驗證斷線復原

    主動中斷後重新連線,確認工作階段復原方式、長時間工作託管策略與日誌寫入目錄。

圖形遠端存取

分開驗證畫質與工作穩定性

  1. 1
    從保守畫質開始

    先使用較低解析度與色彩品質確認工作階段穩定,再逐步提高設定,避免將畫面卡頓誤判為設備效能問題。

  2. 2
    保護憑證與剪貼簿

    禁止在共用螢幕、螢幕錄影或未受控剪貼簿中暴露密碼、私密金鑰與憑證口令。

  3. 3
    鎖定無人值守工作階段

    離開設備前鎖定圖形工作階段。多人協作時明確指定同一時間的操作人員,避免並行修改環境。

  4. 4
    驗證重新連線後的狀態

    斷線重連後檢查前景應用程式、建置程序與磁碟寫入是否仍在執行,不要根據畫面停頓判斷工作已失敗。

終端機快速檢查

使用一組唯讀指令建立設備基準

以下指令涵蓋晶片、記憶體、磁碟、系統版本、網路與開發工具路徑。執行後保存輸出,但提交工單前應移除使用者名稱、內部儲存庫位址及其他敏感欄位。

DPLYMAC / FIRST-RUN CHECK
printf '\n== CHIP ==\n'
system_profiler SPHardwareDataType | grep -E "Chip|Memory"

printf '\n== DISK ==\n'
diskutil info / | grep -E "Device Node|File System|Disk Size|Free Space"

printf '\n== SYSTEM ==\n'
sw_vers
uname -m

printf '\n== NETWORK ==\n'
route -n get default | grep interface
ping -c 5 1.1.1.1

printf '\n== XCODE ==\n'
xcodebuild -version
xcode-select -p
swift --version

printf '\n== TOOL PATHS ==\n'
command -v git
command -v ruby
command -v fastlane

如何判定通過

  • 晶片與記憶體符合訂單中的設定
  • 根磁碟區可讀寫,且剩餘空間符合工作需求
  • 系統架構輸出為 arm64
  • 預設網路介面存在,連續測試沒有明顯封包遺失
  • Xcode 與命令列工具路徑指向預期版本

需要保留哪些內容

  • 指令執行時間與節點
  • 完整指令,不只保留最後一行
  • 原始輸出與去識別化後的工單版本
  • 預期結果、實際結果與重現次數
Xcode 與簽署環境

先鎖定工具鏈,再匯入建置所需資料

環境一致性來自明確版本與可重複步驟,而不是複製舊機器的整個使用者目錄。簽署材料應限量匯入,並在租期結束前完成清理。

檢查項目 操作 完成標準
Xcode 版本

執行 xcodebuild -version,記錄主要版本與建置號;專案固定版本時,將要求寫入儲存庫文件。

版本與專案要求一致
命令列工具

執行 xcode-select -p,必要時使用團隊核准的路徑切換,不要在工作中途臨時升級。

路徑指向目標 Xcode
憑證匯入

僅匯入目前專案需要的憑證,使用受控傳輸方式,並限制鑰匙圈存取範圍。

可識別目標簽署身分
佈建描述檔

核對 App ID、團隊資訊、功能與有效狀態,避免混用其他專案遺留檔案。

封存目標符合專案設定
解鎖鑰匙圈

在建置腳本中於最短必要時間內解鎖,工作結束後恢復鎖定,不要將口令寫入儲存庫或一般日誌。

非互動式建置可讀取所需項目
建置前驗證

先執行相依解析、專案清單與簽署設定檢查,再開始完整封存。

失敗發生在正式建置前
遷移操作流程

將遷移拆分為資料、工具鏈與執行器三次交接

每次只變更一個變數,並保留回復點。如此一來發生建置差異時,便能確認問題來自資料、相依環境或 CI 註冊。

交接 01

資料同步

輸入
原始碼、必要資源、相依鎖定檔與建置腳本
操作
優先從版本庫拉取;大型檔案另行驗證,不要複製無關快取與舊產物
驗證
提交版本、檔案數量與校驗值符合預期,敏感檔案未進入儲存庫
常見失敗
忽略規則遺漏檔案、大小寫路徑差異、換行字元變更、權限位元遺失
回復點
保留乾淨工作目錄,刪除本次同步內容後即可重新拉取
交接 02

工具鏈重現

輸入
Xcode 要求、相依清單、套件管理鎖定檔與腳本執行環境版本
操作
依文件安裝最小工具集、鎖定版本,並將路徑與環境變數明確寫入工作設定
驗證
相依解析成功,同一提交在本機指令與自動化腳本中得到一致結果
常見失敗
隱含全域相依、預設 Ruby 差異、Xcode 路徑錯誤、快取污染
回復點
保留版本清單與安裝日誌,可清除工具快取後重新重現
交接 03

CI 整合

輸入
執行器註冊資訊、佇列標籤、工作目錄、快取規則與並行上限
操作
註冊單一執行器,先執行唯讀檢查工作,再提交一個實際儲存庫的完整流水線
驗證
工作被正確排程,結束代碼、日誌、測試結果與產物均可追蹤
常見失敗
標籤不相符、工作目錄重複使用、快取鍵過寬、多個工作搶占同一資源
回復點
註銷執行器並恢復手動建置,不影響已驗證的資料與工具鏈
CI/CD 整合

執行器能註冊不代表流水線已經可靠

註冊後至少驗證一次冷快取工作、一次熱快取工作與一次失敗重試。工作目錄、快取與並行策略必須由流水線明確管理。

常見 CI 執行器整合檢查
平台 註冊檢查 工作目錄 快取策略 並行建議
GitHub Actions 確認自託管 Runner 標籤與目標儲存庫或組織範圍 每個工作使用獨立工作區,結束後清理暫存檔案 快取鍵包含鎖定檔摘要、Xcode 與架構資訊 先驗證單一工作,再依記憶體與磁碟壓力提高並行數
GitLab CI 核對 Runner 標籤、受保護分支權限與執行器狀態 避免多個專案共用可寫入目錄與同名產物路徑 依專案、分支與相依摘要劃分快取範圍 為封存、測試與輕量檢查設定不同佇列
Jenkins 確認節點標籤、遠端根目錄與憑證作用域 流水線結束後清理 workspace,但保留必要日誌 分開管理相依快取與建置產物 限制重型封存工作同時佔用同一設備
自建 Runner 記錄服務啟動方式、執行使用者與工作領取條件 依工作識別建立目錄,退出時執行確定性清理 明確指定快取擁有者、容量上限與失效條件 使用佇列控制資源,不要依賴腳本碰運氣搶鎖

註冊完成

執行器在線上、標籤相符、執行使用者正確,且只能讀取獲授權的儲存庫與憑證。

工作可重現

同一提交在冷快取與熱快取條件下都能產生一致產物,失敗時保留明確結束代碼。

目錄可回收

暫存簽署檔案、衍生資料與建置中間檔有明確清理規則,不依賴人工逐項刪除。

並行有上限

依 CPU、記憶體與 SSD 壓力設定佇列,避免多個封存工作互相爭用資源。

效能排查

先判斷瓶頸屬於哪一層,再調整參數

效能問題至少記錄發生時間、節點、工作提交版本、重現步驟與對照結果。只描述「很慢」無法區分資源壓力、網路路徑與圖形工作階段問題。

CPU

確認是持續運算還是短時間峰值

記錄高使用率程序、執行緒數量與工作階段。比較單一工作與並行工作,檢查是否存在重複建置、失控測試或背景索引。

程序取樣
記憶體

查看記憶體壓力與交換活動

記錄峰值記憶體、壓縮記憶體與交換變化。若工作只在並行時失敗,應先降低並行數再比較,不要立即歸因於網路。

壓力對照
SSD

區分容量不足與隨機讀寫壅塞

檢查剩餘空間、衍生資料、相依快取與歷史產物。清理前先記錄目錄大小,避免刪除後失去問題證據。

容量與 I/O
網路

比較延遲、抖動、封包遺失與吞吐量

使用固定本地網路進行連續測試,並與備用網路對照。儲存庫拉取緩慢時,還要區分節點路徑與相依服務回應。

連續取樣
圖形工作階段

畫面卡頓不等於建置程序變慢

降低解析度與色彩品質後重新測試,同時透過命令列觀察工作是否持續執行。記錄重新連線後的前景與背景狀態。

工作階段分離
安全與退出

從首次登入開始準備最終交接

憑證、簽署材料、建置產物與快取都有明確擁有者。租期結束前依序匯出、驗證、移除與複查,不要將清理工作交給臨時記憶。

持續執行

憑證與權限

  • 首次連線後輪換臨時憑證
  • 依儲存庫與工作劃分最小權限
  • 定期檢查執行器與自動化金鑰的作用域
  • 不要在腳本、儲存庫與一般日誌中寫入口令
匯出前

產物與資料

  • 匯出封存檔、測試報告與必要日誌
  • 在目標位置核對檔案數量與校驗值
  • 確認儲存庫提交與遠端分支已同步
  • 記錄仍需保留的建置基準
租期結束前

環境清理

  • 註銷 CI 執行器並撤銷相關憑證
  • 移除憑證、佈建描述檔、私密金鑰與復原碼
  • 刪除工作目錄、暫存檔案與敏感快取
  • 再次檢查下載目錄、桌面與命令歷程
升級支援

讓工單從第一輪就具備可重現條件

已有訂單的問題請登入控制台提交工單。無法登入時可寄送電子郵件至 support@deploymac.com,提交前必須移除密碼、私密金鑰、憑證口令與其他敏感憑證。

故障紀錄範本 複製欄位,不要複製敏感資訊
訂單識別碼

填寫控制台中可用於定位訂單的識別碼

節點

新加坡、日本東京、韓國首爾、香港或美國東部

發生時間

註明時區,並提供首次發生與最近一次重現時間

設備設定

基本方案或高階方案,以及額外儲存空間資訊

重現步驟

從乾淨狀態開始,依實際執行順序逐項列出

指令輸出

附上完整指令、結束代碼與去識別化輸出,不要只附截圖

預期結果

說明正常情況下應出現的狀態、檔案或回傳值

實際結果

說明差異、重現次數,以及是否影響所有工作

已嘗試的操作

列出重試、重連、降低並行數或清除快取等動作及結果

既有訂單與連線故障

控制台工單可關聯訂單、節點與設備資訊,適合處理交付核對、連線異常與執行問題。

登入控制台提交工單

尚未下單或無法登入

在郵件中說明用途、目標節點、預計租期與問題影響範圍。請勿傳送任何密碼、私密金鑰或憑證口令。

寄送支援郵件
下一步

依工作負載選擇設定,再開始首次接入

基本方案適合輕量建置與日常開發;高階方案適合高記憶體實驗、多專案並行與更繁重的建置工作。兩種方案均為獨享實體機,並非虛擬機。