程式碼儲存庫權限
確認儲存庫使用 SSH 或短期存取權杖,列出私有相依套件、子模組與產物儲存庫。不要複製長期有效的個人私鑰;請為雲端 Mac 個別產生金鑰,並只授予專案所需的權限。
從下單到首次封存
這不只是一份「如何登入」的說明。你將從兩種實體設備中選擇合適機型,選定四個亞太節點之一,接著完成憑證強化、工具鏈恢復、程式碼與簽署驗證、CI Runner 接入,並以可複核的記錄驗收首次任務。
開始前準備
準備階段的目標,是明確記錄設備配置、節點、存取方式與資料責任。缺少任何一項,後續的環境恢復都容易變成臨時試錯。
確認儲存庫使用 SSH 或短期存取權杖,列出私有相依套件、子模組與產物儲存庫。不要複製長期有效的個人私鑰;請為雲端 Mac 個別產生金鑰,並只授予專案所需的權限。
整理憑證、描述檔、Keychain 存取需求與封存匯出方式。只遷移測試所需的去識別化副本,記錄匯入順序與存取控制,避免將完整憑證寫入儲存庫或建置日誌。
從新加坡、日本(東京)、韓國(首爾)與香港中選擇目標節點。先從實際辦公網路測試連線路徑;團隊跨地區協作時,應分別由主要操作者與 CI 來源網路進行驗證。
短期驗證可按日或週執行,穩定專案可按月或季安排。無論選擇哪種週期,都應提前確定備份位置、產物匯出目錄,以及租用結束前負責遷出的成員。
下單與開通
訂單只需明確指定機型、節點、計費週期與附加選項。實際可用狀態以控制台即時回傳為準,目錄中的兩種機型均涵蓋四個在售節點。
NUMACS M4 Core 搭載 M4、16GB RAM 與 256GB SSD,適合單一專案維護、日常除錯與輕量自動化。NUMACS M4 Plus 搭載 M4、24GB RAM 與 512GB SSD,更適合多任務建置、更大的相依快取與平行測試。
可選新加坡、日本(東京)、韓國(首爾)與香港。優先選擇主要操作者網路路徑穩定、往返延遲較低的節點;接入 CI 前,再從 Runner 所在網路重新測試一次。
支援按日、週、月、季租用。週期應涵蓋環境恢復、首輪建置、故障修正與產物匯出,不要只按「安裝需要多久」來估算。
大型素材庫、多個 Xcode 版本、模擬器執行環境與長期建置快取會迅速佔用空間。需要額外容量時,可在下單階段選擇 +1TB SSD、+2TB SSD 或 Thunderbolt 5 並聯。
首次安全登入
收到設備資訊後,不要立即匯入程式碼與憑證。先完成憑證輪換、存取路徑驗證與管理員權限檢查,並記錄乾淨狀態。
首次進入 macOS 圖形介面後,立即設定獨立的強密碼。不要重複使用儲存庫、電子郵件或團隊共用系統的密碼,也不要將憑證寫入聊天記錄或自動化腳本。
在本機產生專用於該設備的金鑰對,將公開金鑰寫入授權清單。確認金鑰登入成功後,再關閉不需要的存取方式,並記錄金鑰輪換負責人。
檢查解析度、鍵盤配置、剪貼簿策略與閒置中斷行為。遠端桌面用於圖形工具,SSH 用於腳本與診斷;兩條路徑都應個別驗證。
執行一次受控的管理員指令,確認軟體安裝與系統設定權限正常。不要透過關閉系統安全機制來繞過權限問題,應先定位指令、檔案擁有者與執行環境。
遷移路徑
不要一次複製整個本機目錄。資料、工具鏈與 CI 的失敗原因各不相同,分開遷移才能快速回滾,並判斷問題來自檔案、版本還是執行環境。
先遷移儲存庫、配置清單與必要素材,再視需要恢復大型快取。使用校驗值或檔案數量核對結果,避免一併複製暫存目錄、衍生資料與過期封存檔。
依照版本清單重新安裝 Xcode、Homebrew、Ruby、Node.js 與套件管理器。相依鎖定檔應作為恢復依據,快取只能用於加速,不能取代可重複的安裝流程。
註冊專用 Runner,設定工作目錄、快取邊界、並行上限與失敗日誌保留期限。先執行無簽署的測試任務,再逐步加入封存與匯出步驟。
開發環境安裝
新設備最常見的問題不是缺少工具,而是版本組合發生漂移。先恢復能穩定建置的組合,再於獨立分支測試升級。
| 層級 | 需要鎖定的內容 | 恢復方式 | 驗收證據 |
|---|---|---|---|
| macOS | 專案已驗證的系統主要版本與修補範圍 | 先記錄目前系統,首次遷移不跨主要版本升級 | sw_vers |
| Xcode | Xcode 版本、命令列工具路徑、SDK | 安裝指定版本並明確切換開發者目錄 | xcodebuild -version |
| Homebrew | Brewfile、儲存庫來源、關鍵工具版本 | 依照清單重新安裝,不直接複製舊快取目錄 | brew bundle check |
| Ruby | 直譯器版本、Bundler 版本、Gemfile.lock | 使用專案版本檔恢復後執行相依套件安裝 | ruby -v |
| Node.js | 執行環境版本、套件管理器版本、鎖定檔 | 依照版本檔安裝,使用凍結鎖定檔模式恢復 | node -v |
| 專案相依套件 | CocoaPods、Swift Package、JavaScript 相依套件 | 分層恢復,每層失敗時個別保留日誌 | 相依解析不發生隱式升級 |
首次成功建置後,將系統、Xcode、Ruby、Node.js、套件管理器與關鍵相依套件版本輸出保存至內部執行記錄。下次遷移或排查故障時,先比較基線,再修改環境。
sw_vers
xcodebuild -version
ruby -v
node -v
brew bundle check
程式碼與簽署接入
程式碼拉取、相依套件恢復、Keychain 存取與封存匯出應分開驗證。即使正式專案失敗,也能快速判斷問題來自儲存庫、相依套件或簽署權限。
使用專用 SSH 金鑰複製儲存庫,檢查子模組與私有相依套件權限。安裝相依套件時採用鎖定檔模式,遷移期間禁止順手更新全部相依套件。
只匯入測試所需的去識別化簽署資產,限制 Keychain 檔案權限。任何復原碼、私鑰或完整付款憑證都不應進入工單、儲存庫或共用日誌。
先對最小測試專案執行建置、測試與封存,再切換至正式工程。封存成功不代表匯出成功,匯出步驟應個別保存日誌與產物校驗結果。
CI Runner 接入
Runner 接入的重點不只是「在線」,而是任務目錄可清理、快取有邊界、並行執行不會互相污染,且失敗日誌能夠保留。
註冊專用 Runner,只執行一項無簽署的環境檢查任務。
加入相依套件恢復與單元測試,確認清除快取後仍能成功。
加入封存步驟,驗證 Keychain 在非互動工作階段中的存取範圍。
加入產物匯出、校驗與上傳,記錄完整任務耗時基線。
首次任務驗收
驗收應涵蓋從程式碼拉取到產物匯出的完整流程,並記錄耗時、資源剩餘量與失敗重試結果。日後升級工具鏈或切換專案時,這份記錄就是比較基準。
從空白工作目錄複製目標提交,驗證私有相依套件、子模組與儲存庫權限,不依賴舊目錄殘留。
使用鎖定檔恢復所有相依套件,記錄冷快取與熱快取耗時,確認沒有發生隱式版本升級。
執行單元測試與必要的自動化測試,記錄失敗案例、重試次數與日誌位置。
核對建置配置、簽署身分與封存位置,確認非互動任務與圖形介面執行結果一致。
驗證匯出檔案可讀取,記錄檔案大小與校驗值,並將必要產物複製至獨立備份位置。
保存 CPU 峰值、記憶體壓力、建置前後磁碟剩餘空間、總耗時與快取大小,作為後續異常比較依據。
日常維護
NUMACS 實體節點全年 365 天正常運作,全年持續提供服務。設備端仍需持續管理快取、磁碟、備份與存取憑證,避免專案狀態只存在於單一設備。
查看工作目錄、DerivedData、模擬器執行環境、套件管理器快取與歷史封存檔。先依來源清理,不要使用無法說明影響範圍的全碟刪除指令。
每次調整 macOS、Xcode、Ruby、Node.js 或關鍵相依套件後,重新執行測試與封存,並記錄變更前後的耗時與失敗差異。
定期輪換 SSH 金鑰、儲存庫存取權杖與設備密碼。成員離開專案或權限變更時,立即撤銷相應存取權,不共用個人金鑰。
租用結束前匯出程式碼變更、建置產物、環境清單、CI 配置與必要日誌。對遷出檔案執行校驗,並在其他位置實際開啟驗證。
選擇機型、節點、週期與附加選項後,即可在控制台統一查看訂單與設備。僅支援 USDT-TRC20 與 Visa / Mastercard / Amex(透過 Stripe),全部以美元(USD)結算。