工程支援入口

先定位故障層級,再提交可重現的資訊

這裡集中處理雲端 Mac 的連線、系統、建置、網路、儲存空間與帳戶問題。請先依序完成基本檢查,再記錄節點、發生時間與去識別化日誌,通常能減少至少一次來回確認。

遠端連線排查

依憑證、鏈路、工作階段順序檢查

先確認連線目標沒有填錯,再檢查連接埠與用戶端。不要反覆重設憑證,以掩蓋網路或工作階段層級的問題。

01

核對開通資訊與憑證

從控制台複製目前執行個體的主機位址、連接埠與使用者名稱,確認沒有混用舊訂單資訊。檢查輸入法、大小寫、前後空格與密碼管理器的自動填入結果。不要將密碼、私鑰或完整連線字串放入截圖和工單內文。

02

驗證連接埠連通性

在本機終端機使用 nc 檢查指定連接埠。成功建立 TCP 連線只代表連接埠可達,不表示圖形工作階段已正常;若逾時,請繼續記錄本機網路、電信業者與目標節點。

nc -vz "$TARGET_HOST" "$TARGET_PORT"
03

檢查螢幕共享狀態

確認執行個體處於執行狀態、圖形工作階段服務可用,且目前帳戶具備遠端工作階段權限。如果命令列可以連線但畫面無法建立,應將問題限定在圖形服務、用戶端協商或殘留工作階段,而不是繼續修改網路設定。

04

降低顯示參數進行對照

先以單一顯示器、較低解析度與較低畫質建立基準,再逐項恢復縮放、色彩品質與多螢幕設定。若低解析度穩定而高解析度出現卡頓,應同時收集延遲、封包遺失與用戶端編碼設定。

05

清除舊工作階段後重新連線

正常結束用戶端,等待舊連線釋放後重新建立工作階段。避免多個用戶端同時連線至同一個圖形工作階段。問題重現時,記錄精確到分鐘的時間、用戶端版本、是否切換網路,以及命令列連線是否同時受到影響。

系統層級快速檢查:若能進入命令列,可依序確認系統時間、磁碟剩餘空間、記憶體壓力與高使用量程序。時間偏差可能影響憑證與建置簽署;磁碟空間不足則常表現為相依套件安裝、快取寫入或封存階段失敗。

CI/CD 排查

將失敗範圍限定在 Runner、環境或工作

先執行一個不讀取專案金鑰、也不安裝相依套件的最小工作。最小工作通過後,再逐層加入儲存庫、快取、簽署材料與封存步驟。

Runner

註冊與線上狀態

核對 Runner 是否註冊至正確的專案或組織、標籤是否相符,以及執行器是否處於線上狀態。若工作一直排隊,先檢查標籤與並行限制,再查看 Runner 程序,不要直接重跑完整管線。

ps aux | grep -i runner
launchctl list | grep -i runner
Signing

簽署環境

確認建置程序使用的帳戶、鑰匙圈搜尋路徑、憑證可見性與描述檔範圍一致。日誌只保留憑證名稱、失效階段與錯誤文字;提交前移除密碼、私鑰內容與完整簽署材料。

security list-keychains
security find-identity -v -p codesigning
Cache

快取目錄

將相依套件快取、衍生資料與最終產物放在不同目錄。快取命中異常時,先記錄快取鍵與目錄用量,再針對單一專案執行清理,避免一次刪除所有工作目錄而失去對照樣本。

du -sh "$CACHE_PATH"
df -h
find "$CACHE_PATH" -maxdepth 1 -type d
Queue

建置佇列

記錄排隊開始、實際執行與結束時間,區分「工作尚未被領取」與「工作已啟動但長時間沒有輸出」。前者重點檢查標籤、並行數與 Runner 狀態;後者重點檢查腳本等待、網路相依性與子程序。

Logs

日誌收集

保留失敗步驟前後至少各 50 行日誌,同時附上命令結束碼、工具版本與專案中可公開的最小重現參數。不要只提交一張錯誤彈出視窗截圖,也不要上傳包含權杖、儲存庫憑證或業務資料的完整日誌封存檔。

xcodebuild -version
sw_vers
uname -m
Retry

失敗重試

首次失敗後先儲存原始日誌,再使用相同提交版本與相同參數重試一次。若重試成功,比較網路請求、快取命中與執行耗時;若穩定失敗,則縮小至單一命令,並記錄其輸入、結束碼與持續時間。

網路診斷工作台

針對同一目標連續取樣

單次 ping 不能代表鏈路品質。請在問題發生期間與恢復後各收集一組結果,並保持本機網路、目標位址與命令參數一致。

延遲與封包遺失

連續傳送 20 個封包,儲存最小值、平均值、最大值與封包遺失比例。

ping -c 20 "$TARGET_HOST"

路由路徑

路徑結果可用於定位延遲從哪一跳開始變化。部分路由器不回應探測不代表鏈路中斷。

traceroute "$TARGET_HOST"

DNS 查詢

記錄解析結果、回應時間與目前使用的 DNS 伺服器,區分解析問題與目標連接埠問題。

dig "$TARGET_HOST"
scutil --dns

上下載與回應能力

使用 macOS 內建工具收集上下載容量、回應能力與閒置延遲。測試期間請暫停大型檔案同步及其他高頻寬工作。

networkQuality -v
跨境鏈路會隨電信業者路由與本機網路負載而波動。選擇節點不應只看直線距離;請分別實際測試新加坡、日本(東京)、韓國(首爾)與香港的可用目標,再結合團隊所在地與主要工作時段判斷。

儲存空間與資料處理

分開管理原始碼、快取、產物與備份

儲存問題通常不只是單一容量數字。目錄邊界、寫入權限、可復原副本與遷移時間,都應在首次建置前確定。

工作目錄規劃

  • 原始碼目錄只保存儲存庫內容與必要設定,避免混入大型建置產物。
  • 相依套件快取與衍生資料使用獨立目錄,方便依專案清理與統計用量。
  • 封存檔、安裝套件與除錯符號使用帶有工作識別碼的產物目錄。
  • 為暫存檔設定清理規則,清理前確認沒有正在執行的建置。

應用程式層級備份責任

  • 為原始碼、資料庫、簽署材料與無法重新產生的產物建立獨立副本。
  • 定期驗證備份是否可讀取,不要以「工作已上傳」取代還原測試。
  • 金鑰與憑證應使用受控儲存,不要寫入儲存庫、建置日誌或共用目錄。
  • 在租期結束前完成匯出,並核對檔案數量、校驗值與目標端可讀性。

擴充 SSD 識別

新增擴充儲存空間後,先檢查系統是否識別裝置、磁碟區是否已掛載、檔案系統是否可寫入,再調整建置目錄。不要在工作執行期間切換快取或產物路徑。

diskutil list
df -h
mount

遷移前檢查

  • 停止會持續寫入資料的建置、同步與背景工作。
  • 先複製小型樣本,驗證權限、檔名與符號連結的處理方式。
  • 完整遷移後比較目錄大小、檔案數量與重要檔案的校驗值。
  • 在目標環境完成一次讀取或建置測試後,再清理原始目錄。

服務可用率

透過連續監測記錄核對影響

狀態記錄用於判斷伺服器端的影響範圍。具體測量期間、排除事項、申請條件、服務抵扣與適用範圍,均以服務條款為準。

目標可用率
99.9%

節點全年 365 天正常運作。不可抗力、使用者自身操作、使用者端網路與工作負載設定造成的影響,不計入平台可用率。

近 90 天每日狀態 90 DAYS
正常 有受影響記錄

若認為訂單受到平台服務事件影響,請保留訂單識別碼、節點、首次發現時間、恢復時間與連續探測記錄,並透過控制台工單提交。是否符合服務抵扣條件及抵扣方式,以服務條款的具體規則為準。

查看服務條款

提交支援請求

一次提供足以開始排查的背景資訊

技術支援請求應圍繞單一問題組織。不同節點、不同訂單或不同故障階段請分開描述,避免時間線彼此重疊。

必須提供的六項資訊

  1. 01
    訂單識別碼

    提供控制台中的訂單或執行個體識別碼,不要傳送帳戶密碼。

  2. 02
    目標節點

    明確寫出新加坡、日本(東京)、韓國(首爾)或香港。

  3. 03
    故障時間

    包含日期、時區、開始時間、持續時間,以及是否已恢復。

  4. 04
    預期與實際結果

    分別說明預期發生的情況與實際看到的結果,不要只寫「無法使用」。

  5. 05
    重現步驟

    列出從正常狀態到故障出現的最短步驟,以及重試是否能穩定重現。

  6. 06
    去識別化日誌

    附上錯誤步驟前後的日誌、命令結束碼與必要截圖,移除權杖、密碼、私鑰、付款憑證及業務資料。

日誌應如何去識別化?

保留錯誤碼、時間、命令名稱、工具版本、路徑結構與結束碼;替換存取權杖、密碼、私鑰、儲存庫位址中的憑證、使用者真實姓名與業務資料。完成去識別化後,應再次搜尋常見金鑰前綴與電子郵件地址。

網路問題至少要附上哪些結果?

至少附上一組連續 ping、一次 traceroute、問題發生時間、目標節點、本機城市與電信業者,並說明切換有線、Wi-Fi 或行動熱點後結果是否改變。

建置失敗需要上傳完整專案嗎?

通常不需要。請先提供失敗命令、結束碼、前後日誌、工具版本與最小重現步驟。若必須提供樣本,應移除業務程式碼、金鑰、簽署材料與生產資料,只保留能重現問題的最小結構。

準備提交

附上訂單、節點、時間線與去識別化日誌

已有訂單的問題請優先透過控制台工單處理;一般諮詢可透過支援信箱聯絡。完整背景資訊能讓工程排查直接從有效樣本開始。