先定位故障層,再提交可診斷的資訊
連不上、建置失敗或 runner 卡在佇列中,不必從重新安裝環境開始。先依訂單、網路、系統與工具鏈四個層面排查,再將關鍵日誌交給支援人員。
- 分開診斷 VNC、SSH、Xcode 與 CI/CD
- 提交訂單編號、節點、時間與完整錯誤上下文
- 金鑰、權杖與簽署密碼必須從日誌中刪除
六類支援入口,對應六種排查起點
先判斷問題屬於連線、建置、自動化、網路、儲存空間還是結算。分類準確,能減少在不同日誌之間來回切換。
VNC 畫面與工作階段
處理黑畫面、逾時、鍵盤配置、剪貼簿與工作階段中斷。先保留用戶端名稱、網路出口與發生時間。
簽署、相依性與封存
核對憑證、描述檔、Keychain 權限、DerivedData、相依性快取、磁碟剩餘空間與匯出設定。
Runner 佇列與工作目錄
檢查標籤是否相符、服務程序、專案授權、並行數、工作目錄權限,以及失敗工作後的清理動作。
儲存庫、相依性來源與遠端存取
區分本地網路、節點出口、程式碼儲存庫與相依性下載來源,避免將單一服務逾時誤判為整台機器離線。
容量評估與擴充諮詢
先統計專案、DerivedData、相依性快取、封存與模型檔案的用量,再諮詢 +1TB、+2TB SSD 或並聯需求。
週期、附加項目與付款記錄
提供訂單編號、結算週期、付款類別與頁面提示。請勿在公開電郵中提交完整付款憑證或敏感資訊。
先確認機器可連線,再進入工具鏈
請依序執行。前一步尚未確認前,不要直接清除快取或重新安裝相依性,否則可能覆蓋原始故障線索。
-
01
訂單層
檢查訂單狀態
登入控制台確認訂單已交付,機型、週期與節點均與目前排查的對象一致。如訂單資訊異常,先記錄訂單編號與頁面提示。
-
02
定址層
核對節點位址
確認 VNC 與 SSH 使用交付資訊中的位址與連接埠,不要沿用舊節點、舊書籤或其他訂單的連線設定。
-
03
存取層
確認帳戶憑證
檢查使用者名稱、密碼輸入與鍵盤大小寫狀態。不要將密碼、私鑰或復原資訊貼到工單正文。
-
04
桌面層
交叉測試 VNC 用戶端
記錄用戶端名稱、版本與畫質設定。如條件允許,使用另一台本地裝置或另一個網路重新測試,以區分用戶端問題。
-
05
網路層
測試 SSH 連線
記錄 DNS 解析、建立連線與驗證分別停在哪個步驟。VNC 無法連線但 SSH 正常時,通常應優先檢查圖形工作階段,而非整台機器的網路。
-
06
資源層
檢查磁碟空間
留意系統磁碟剩餘容量,以及 DerivedData、相依性目錄、封存、模擬器與模型檔案。空間不足可能引發多種不明顯的建置錯誤。
-
07
工具層
固定 Xcode 版本
記錄實際選取的 Xcode 路徑與版本,確認 CI 腳本與互動式建置使用相同工具鏈,再重新重現一次失敗指令。
分開處理畫面、網路與輸入問題
VNC 是圖形工作階段,SSH 是命令列路徑。分別測試兩者,可快速判斷故障位於本地用戶端、網路鏈路還是節點工作階段。
| 現象 | 先做什麼 | 需要記錄 | 不要做什麼 |
|---|---|---|---|
| VNC 黑畫面 | 等待工作階段初始化,重新建立一次連線,並測試 SSH 是否正常回應。 | 用戶端名稱、發生時間、節點、SSH 測試結果與黑畫面截圖。 | 不要連續強制重新連線,也不要立即刪除系統或使用者設定。 |
| 連線逾時 | 切換本地網路重新測試,確認位址與連接埠無誤,並區分解析逾時與驗證逾時。 | 本地網路類型、錯誤原文、開始與失敗時間,以及其他網路的重測結果。 | 不要在日誌中公開密碼、私鑰或完整驗證內容。 |
| 鍵盤配置異常 | 核對本地與遠端鍵盤配置、輸入法及修飾鍵對應,使用純文字編輯器驗證。 | 用戶端、鍵盤配置、異常按鍵與可重現步驟。 | 不要只用 IDE 快捷鍵判斷,先排除應用程式本身的按鍵設定。 |
| 剪貼簿無法使用 | 確認用戶端已允許剪貼簿同步,並分別測試純文字與小段內容。 | 複製方向、內容類型、用戶端版本,以及是否所有應用程式都失效。 | 不要使用金鑰、權杖或簽署密碼作為測試內容。 |
| 工作階段中斷 | 記錄中斷前的操作與持續時間,再檢查 SSH 是否仍在線上,以及本地網路是否切換。 | 精確發生時間、前景應用程式、網路變化、重新連線結果與相關日誌。 | 不要反覆重新啟動建置工作,以免覆蓋故障發生時的資源狀態。 |
從第一個有效錯誤開始,不要從最後一行開始
簽署、快取、磁碟與匯出錯誤經常連鎖出現。固定工具鏈與重現指令後,從日誌中最早出現的明確失敗原因開始排查。
憑證與描述檔
確認 bundle identifier、團隊、憑證類型與描述檔用途一致。自動簽署與手動簽署不要在同一目標中混用而不記錄變更。
- 記錄失敗的 target 與 configuration
- 核對簽署資產的有效期與適用範圍
- 保留 codesign 的完整錯誤上下文
Keychain 權限
互動式建置成功、CI 建置失敗時,重點檢查 runner 工作階段能否存取所需簽署項目,以及工作上下文中的權限差異。
- 比較本地終端機與 runner 的執行使用者
- 確認工作執行時的鑰匙圈狀態
- 刪除日誌中的簽署密碼與敏感值
DerivedData 與相依性快取
先確認錯誤是否能穩定重現,再針對單一專案清理。不要將清除整個磁碟的快取當作預設動作,否則難以判斷真正失效的快取層。
- 記錄快取目錄與命中策略
- 固定 lockfile 與相依性管理工具版本
- 清理前後各保留一次建置日誌
磁碟空間
封存、模擬器、相依性與歷史產物會同時佔用空間。空間不足不只會導致寫入失敗,也可能表現為相依性解壓縮或簽署過程異常。
- 記錄系統磁碟剩餘容量
- 按專案核對封存與快取用量
- 清理前確認需要保留的產物
封存與匯出
區分 archive 建立失敗與 export 失敗。前者檢查編譯與簽署,後者重點核對匯出選項、目標渠道與封存中的簽署資訊。
- 註明 archive 是否成功建立
- 保留匯出設定與錯誤摘要
- 確認產物目標與 scheme 一致
最小可重現指令
在工單中寫清工作目錄、Xcode 版本、scheme、configuration 與執行指令。若只在 CI 中失敗,同時提供刪除敏感值後的環境差異。
- 保留錯誤前後至少一段上下文
- 說明圖形介面建置是否成功
- 列出已嘗試但無效的步驟
標籤決定工作去哪裡,目錄決定失敗後留下什麼
佇列沒有動靜時先看標籤與在線狀態;工作啟動後失敗,再檢查執行使用者、工作目錄、並行數與清理策略。
四個變數必須一併記錄
工作要求的標籤必須與 runner 註冊標籤完全對應,並確認沒有被專案級或分支條件排除。
目錄應由專用執行使用者讀寫,專案之間避免共用會殘留狀態的暫存路徑。
根據記憶體、磁碟與建置類型設定並行數。工作過多時,先判斷是在排隊還是已經爭用資源。
明確每次工作結束後保留及刪除的內容,並為失敗工作保留足夠的日誌與診斷產物。
檢查 runs-on 與 runner 群組
確認儲存庫或組織對 runner 的存取範圍、標籤拼寫、服務狀態與工作目錄權限。工作停在等待狀態時,先查看是否存在標籤完全匹配的在線 runner。
檢查 tags 與專案授權
確認 job tags、runner 鎖定範圍、專案授權與並行設定。若工作已啟動後失敗,補充執行器日誌與專案腳本輸出。
固定執行身分與生命週期
說明 runner 軟體、啟動方式、執行使用者、工作目錄與清理腳本。自訂排程器還應記錄工作領取、逾時與退出碼的處理方式。
八個詞,先統一問題範圍
提交諮詢時使用同一組術語,可以避免將實體資源、遠端協定與自動化軟體混在一起描述。
- 物理節點
- 實際交付並執行 macOS 的 Apple Silicon 裝置,不是從共享主機切出的虛擬實例。
- 獨享
- 訂單對應的運算、記憶體與本機儲存空間由該使用者使用,不與其他租戶共用同一執行實例。
- 非虛擬機
- 系統直接執行在實體裝置上。疑難排解時應按真實 macOS 主機、網路與周邊裝置鏈路理解。
- VNC
- 用於存取 macOS 圖形介面的遠端桌面協定。畫面、輸入與剪貼簿問題通常從用戶端與工作階段層排查。
- SSH
- 用於命令列連線與自動化執行的協定。可協助判斷節點是否在線上,以及圖形工作階段故障是否獨立存在。
- self-hosted runner
- 由團隊部署在雲端 Mac 上、接收 CI 平台工作的執行程式,標籤與專案權限由團隊自行設定。
- 建置快取
- 為減少重複下載與編譯而保留的相依性或中間產物。快取必須具備版本鍵、容量上限與清理策略。
- 並聯
- 針對適用工作諮詢多台裝置或 Thunderbolt 5 連線方式。這不代表所有建置工具都會自動獲得線性加速。
讓支援人員取得資訊後即可開始診斷
工單的價值不在文字長度,而在時間、對象、重現步驟與原始錯誤是否完整。
訂單編號與節點
寫明發生問題的訂單編號,以及新加坡、東京、首爾或香港中的實際節點。多台機器需分別標註。
重現時間
提供包含時區的發生時間與持續時間。若問題反覆出現,列出最近兩至三次的時間點。
錯誤日誌
保留錯誤前後的上下文、執行指令與退出碼。截圖可輔助說明,但不要用截圖取代可複製的日誌文字。
已執行步驟
依序列出已檢查、修改與重新測試的內容,並註明每一步結果,避免支援人員要求重複操作。
預期結果與實際結果
說明原本希望完成什麼,以及目前停在哪個階段。建置問題需註明 scheme、Xcode 版本與執行方式。
刪除所有驗證資料
從日誌、截圖與設定片段中刪除密碼、私鑰、存取權杖、簽署密碼、付款憑證及其他可用於登入或授權的內容。
工單用於訂單問題,電郵用於一般諮詢
已下單問題優先在控制台提交工單,方便關聯訂單與節點。一般方案諮詢可發送電郵至 support@macvpsgo.com。
不同問題,進入不同處理佇列
選對入口比重複催問更有效。硬體與連線問題需要關聯訂單,一般使用諮詢與企業需求則適合先整理使用情境。
準備好執行下一次建置了嗎?
選擇 Go M4 Core、Go M4 Plus 或 Go M4 Pro,在四個銷售中的節點完成配置。實際可用狀態以控制台即時返回結果為準。