工程問題分流台

先定位環節,再處理雲端 Mac 問題

從訂單開通、節點連線、iOS 建置,到儲存裝置並聯與帳單核對,依問題發生的位置逐項檢查。每組說明都提供判斷依據、指令,以及提交工單時需要保留的資訊。

01 / 首次開通

依固定順序完成設定,減少交付後的返工

首次租用時,先確認工作對記憶體與儲存空間的需求,再選擇靠近程式碼儲存庫、團隊成員或發布市場的節點。不要先付款再回頭推算設定;機型、節點、週期與附加項目應在確認訂單前一併核對。

  1. 01

    從三種方案中選擇機型

    ZoneMini M4 Core 搭載 M4、16GB 記憶體與 256GB SSD,適合輕量 iOS 建置與單一專案自動化;ZoneMini M4 Plus 搭載 M4、24GB 記憶體與 512GB SSD,適合日常開發與多專案流程;ZoneMini M4 Pro 搭載 M4 Pro、64GB 記憶體與 2TB SSD,面向高記憶體推論與高負載平行工作。三種方案均為雲端 Mac 專用實體主機,並非虛擬機。

  2. 02

    從五個銷售中的節點選定位置

    可選新加坡、日本(東京)、韓國(首爾)、香港或美國東部。優先考慮程式碼儲存庫與主要操作者的位置,再結合發布市場與團隊時區。五個節點均支援三種機型,實際可用狀態以控制台即時回傳為準。

  3. 03

    選擇日、週、月或季週期

    臨時相容性測試可按日安排;持續一輪迭代可比較週方案;固定 Runner、長期封存或持續推論工作通常更適合月方案或季方案。頁面價格不換算、不四捨五入,訂單金額依所選機型、附加項目與週期直接計算。

  4. 04

    完成 USD 結算並核對訂單

    僅支援 USDT-TRC20 與 Visa / Mastercard / Amex(透過 Stripe)。提交前請核對機型名稱、節點、週期、儲存空間附加項目、Thunderbolt 5 並聯數量及聯絡資訊。實際可用的付款閘道以控制台回傳為準。

  5. 05

    取得連線資料並完成首次驗證

    交付後先核對節點位址、使用者名稱、臨時憑證與連線說明。首次連線成功後更新臨時憑證,記錄主機指紋,並分別驗證 SSH 命令列與 macOS 螢幕共享。連線資料屬於敏感資訊,不應貼到公開儲存庫或一般聊天記錄中。

開通前建議準備的最少資訊

列出專案類型、同時執行的工作數量、Xcode 版本範圍、單次封存時間、相依套件快取大小、目標節點與預計租用期。尚無法判斷機型時,先查看三種規格與週期價格,再將工作資料交由團隊確認。

02 / 連線診斷

從執行個體狀態逐層排查至本機網路

連線失敗時,不要同時修改憑證、連接埠與防火牆設定。依序檢查狀態、身分、網路、連接埠與服務設定,每一步都保留結果,才能判斷問題位於本機、傳輸路徑或目標節點。

CONNECTION CHECK 六項依序檢查
  1. 01

    確認執行個體狀態

    登入控制台,確認訂單對應的執行個體處於可連線狀態,並核對目前查看的是正確的節點與機型。若剛完成交付,先以控制台顯示的資訊為準,不要使用舊電子郵件或舊記錄中的位址。

  2. 02

    核對存取憑證

    區分使用者名稱、密碼與 SSH 金鑰的用途,檢查金鑰檔案權限、輸入法狀態,以及複製時是否帶入空格。連續驗證失敗時請停止重複嘗試,重新核對憑證來源。

  3. 03

    排除本機網路限制

    切換至可信任的備用網路進行比對,確認公司出口政策、代理伺服器或安全軟體沒有攔截目標位址。不要把關閉所有安全防護當作長期解決方案。

  4. 04

    檢查 SSH 連接埠

    先測試 TCP 22 連接埠是否可達,再執行詳細的 SSH 記錄。連接埠逾時通常表示網路路徑或規則有問題;連接埠可達但驗證失敗,則繼續檢查使用者名稱、金鑰與權限。

  5. 05

    核對螢幕共享設定

    確認使用交付資料中的位址與授權資訊。出現黑畫面或解析度異常時,先中斷舊工作階段再重新連線,並記錄用戶端系統、顯示器數量與縮放設定。

  6. 06

    檢查防火牆規則

    核對本機防火牆、團隊出口規則與節點端允許範圍。變更規則時應採取最小開放原則,保留來源、連接埠、時間與變更人員的記錄。

網路與連接埠檢查
nc -vz <節點地址> 22
ssh -vvv -o ConnectTimeout=10 用户名@节点地址
route -n get <节点地址>

將佔位內容替換為交付資料中的節點位址與使用者名稱。

如何解讀結果

先區分逾時與驗證失敗

連線逾時
優先檢查本機出口、代理伺服器、防火牆與目標連接埠的可達性。
連線遭拒
記錄時間、節點與完整錯誤行,確認目標位址與連接埠是否正確。
驗證失敗
核對使用者名稱、金鑰路徑、檔案權限及交付憑證,不要反覆猜測密碼。
主機指紋變更
暫停連線並提交工單進行核驗,不要直接刪除已記錄的指紋後繼續連線。
閱讀完整連線步驟
03 / 建置環境

將建置失敗拆分為工具鏈、簽署、相依套件與產物四個層面

同一條流程在互動式工作階段中成功、在 CI Runner 中失敗,通常表示環境變數、鑰匙圈內容、工作目錄或快取權限不同。排查時應使用與失敗工作相同的使用者與執行入口。

A

確認 Xcode 與命令列工具

記錄系統版本、Xcode 版本與目前的開發者目錄。若安裝了多個 Xcode 版本,請確認流程呼叫的路徑與專案要求一致,不要只檢查圖形介面中開啟的版本。

  • xcodebuild -version 取得實際建置工具版本
  • xcode-select -p 取得目前開發者目錄
  • swift --version 核對 Swift 工具鏈
B

檢查憑證與描述檔

確認簽署材料可由目前執行使用者存取,且目標、設定與匯出方式都引用了正確項目。只記錄憑證名稱、有效狀態與比對結果,不要將憑證私密金鑰或完整描述檔上傳至工單。

  • 核對專案的 Team、Bundle Identifier 與簽署方式
  • 檢查建置設定使用的描述檔是否與目標一致
  • 比較本機工作階段與 Runner 工作階段可見的簽署身分
C

驗證鑰匙圈存取內容

CI 工作需要在非互動環境中存取簽署材料時,應確認鑰匙圈已依流程設計解鎖,並限制自動化帳戶的存取範圍。不要將解鎖密碼直接寫入儲存庫腳本或一般記錄。

  • 確認執行使用者與匯入簽署材料的使用者一致
  • 核對 Runner 啟動方式是否改變工作階段內容
  • 從記錄中移除密碼、權杖與私密金鑰路徑內容
D

隔離相依套件快取問題

先確認鎖定檔未變更,再分別檢查 CocoaPods、Swift Package Manager、Node.js 或 Flutter 相依套件。快取異常時只清理與目前專案相關的目錄,避免一次刪除整台主機上的團隊共用快取。

  • 儲存鎖定檔雜湊與相依套件解析輸出
  • 比較失敗分支與成功分支的相依套件版本
  • 記錄快取目錄擁有者、權限與目前大小
E

收集可重現的封存記錄

保留完整指令、工作目錄、Scheme、Configuration、SDK、Destination 與結束碼。記錄應涵蓋首次出現錯誤前後的內容,而不是只截取最後一行。

  • 使用獨立結果目錄儲存本次建置輸出
  • 記錄觸發方式、提交識別碼與 Runner 標籤
  • 去除敏感資訊後,再將關鍵片段附加至控制台工單
F

先執行最小指令驗證

進入完整封存前,先驗證版本、專案結構與 Scheme 是否可見。最小指令失敗時繼續修正工具鏈;最小指令成功但封存失敗,再轉向簽署、相依套件與匯出設定。

諮詢建置設定
建置環境資訊收集
sw_vers
xcodebuild -version
xcode-select -p
swift --version
xcodebuild -list -workspace <项目工作区>

指令不會讀取專案金鑰;提交結果前仍需檢查輸出中是否包含內部路徑或儲存庫名稱。

04 / 儲存空間與並聯

先確認容量用途,再檢查掛載與工作邊界

附加儲存空間適合相依套件快取、建置中間檔、模型檔案與短期素材處理。它不應取代專案本身的版本控制與長期封存策略。Thunderbolt 5 並聯按每台計費,適合明確設計為多機協作的工作,不會自動將兩個獨立工作變成一個平行工作。

儲存空間與並聯附加項目的公布價格
附加項目 按日 按週 按月 按季 適用用途
+1TB SSD $2 $5.5 $10.1 $27.5 相依套件快取、建置產物與中等規模素材
+2TB SSD $4 $11 $20.2 $55 模型檔案、批次處理素材與較大的封存工作集
Thunderbolt 5 並聯(每台) $1.7 $4.6 $8.6 $23.4 多機工作拆分、節點間高速資料協作
掛載檢查

確認系統已辨識目標磁碟

使用 diskutil list 查看磁碟與分割區,再使用 df -h 核對實際掛載點與可用空間。只看到裝置但沒有正確掛載點時,記錄指令輸出並提交工單,不要直接格式化未知磁碟。

空間監控

同時觀察總容量與成長中的目錄

封存失敗前,先檢查工作區、DerivedData、相依套件快取與暫存目錄。建置記錄中的「空間不足」可能來自系統磁碟區或暫存目錄,不一定是專案目錄所在的磁碟區。

工作拆分

依輸入、執行與產物定義主機職責

多機工作流程應明確規劃哪台負責擷取程式碼、哪台執行建置或推論、產物寫入何處,以及失敗後如何重試。避免多台主機同時修改同一工作目錄或共用可變快取。

磁碟與快取檢查
diskutil list
df -h
du -sh ~/Library/Developer/Xcode/DerivedData
du -sh ~/Library/Caches

大型目錄統計可能需要一些時間。先觀察輸出,確認用途前不要刪除目錄。

05 / 帳單與付款

依訂單編號核對機型、週期與附加項目

ZoneMini 的所有訂單均以 USD 結算,僅支援 USDT-TRC20 與 Visa / Mastercard / Amex(透過 Stripe)。實際可用付款閘道以控制台回傳為準。帳單問題應針對具體訂單核對,不要只提供付款截圖或模糊的交易時間。

結算幣別 USD

機型、週期與附加項目均依頁面公布的美元價格計算,不在頁面端進行貨幣換算。

數位資產付款 USDT-TRC20

付款前核對控制台回傳的網路、金額與訂單資訊。提交問題時提供訂單編號與去除敏感資訊的交易識別碼。

信用卡付款 Visa / Mastercard / Amex

信用卡交易透過 Stripe 處理。遇到失敗時記錄控制台錯誤資訊、發生時間與訂單編號,不要提交完整卡片資料。

為什麼最終金額需要同時核對機型、週期與附加項目?

訂單金額由所選機型的週期價格,加上同週期的儲存空間或 Thunderbolt 5 並聯附加項目組成。核對時應逐項比較訂單中的機型名稱、節點、日/週/月/季週期、附加容量與並聯台數。

付款未完成時應保留哪些資訊?

保留訂單編號、付款方式、發生時間、控制台顯示的完整錯誤文字,以及去除敏感資訊的交易識別碼。不要傳送完整信用卡號碼、驗證碼、錢包私密金鑰、助記詞或完整帳戶密碼。

已有訂單應透過什麼入口查詢?

登入控制台查看訂單、執行個體與帳單狀態。若顯示內容與付款記錄不一致,請從該訂單內容提交工單並附上訂單編號,避免為同一問題建立多筆缺少關聯資訊的請求。

06 / 提交工單

一張可處理的工單,需要六類內容

工單的目的不是證明「有問題」,而是讓支援人員能確認影響範圍、重現路徑與預期結果。將關鍵資訊集中在同一筆請求中,可以減少來回詢問。

01

節點

請寫明新加坡、日本(東京)、韓國(首爾)、香港或美國東部,並附上控制台中的執行個體識別碼。

02

機型

請寫明 ZoneMini M4 Core、ZoneMini M4 Plus 或 ZoneMini M4 Pro,不要只寫「M4 主機」。

03

發生時間

提供包含時區的時間範圍,並說明問題是首次發生、穩定重現還是偶爾出現。

04

重現步驟

從進入工作目錄或發起連線開始,逐步寫出指令、輸入條件、實際結果與結束碼。

05

去除敏感資訊的記錄

保留錯誤前後的內容,移除儲存庫權杖、簽署材料、內部位址與個人身分資訊。

06

預期結果

說明正確行為應為何,以及問題阻礙的是連線、測試、封存、付款還是產物交付。

提交前移除敏感內容

不要上傳憑證私密金鑰、儲存庫權杖或完整密碼

簽署憑證只提供名稱與有效狀態;權杖只說明類型與權限範圍;憑證問題只提供錯誤資訊與去除敏感資訊的識別碼。記錄中的電子郵件、儲存庫位址、內部主機名稱與檔案路徑也應視需要去除敏感資訊。

  • 帳單問題附上訂單編號
  • 連線問題附上指令輸出與用戶端環境
  • 建置問題附上 Xcode 版本、Scheme、結束碼與關鍵記錄
  • 儲存空間問題附上掛載點、容量與相關目錄成長情況
準備好診斷資訊後

從訂單內容提交工單

已有訂單時,請優先登入控制台提交工單,並附上訂單編號、節點、機型、發生時間、重現步驟、去除敏感資訊的記錄與預期結果。售前選型可透過支援電子郵件聯絡團隊。