可執行的工程支援

從連線雲端 Mac 到交付建置產物,逐步解決問題

這不是概念文件。每份指南都提供準備項目、執行步驟、驗證結果,以及失敗時應保留的日誌。適用於 SSH、VNC 遠端桌面、Xcode、fastlane、自託管 Runner 與帳單管理。

4 類指南入口 5 個服務節點 365 天正常運作
build-diagnostics 檢查通過
連線方式 SSH / VNC
建置工具 Xcode / fastlane
執行架構 Apple Silicon
$ xcodebuild -version Xcode 16.x $ uname -m arm64 $ df -h / volume check: ready
先驗證環境,再執行完整流水線 將失敗範圍縮小至連線、依賴、簽署或並行其中一項。
支援中心搜尋

依工作篩選,不必從頭閱讀

選擇目前正在處理的工作,或輸入 SSH、封存、簽署、Runner、節點、帳單等關鍵字。篩選只會變更索引卡片,完整操作步驟仍保留在本頁下方。

連線裝置

SSH 與 VNC 首次連線

準備公開金鑰、核對主機指紋、檢查 arm64 環境,並在圖形工作階段結束後安全離開。

預計 10 分鐘
設定開發環境

選擇 Xcode 與安裝依賴

固定工具鏈版本、驗證命令列路徑,再依鎖定檔還原 Ruby、Pods 或 Swift Package 依賴。

預計 15 分鐘
執行建置

執行封存並匯出產物

使用明確指定的 workspace、scheme 與 destination 執行封存,保存 xcresult 與匯出日誌。

預計 20 分鐘
執行建置

fastlane 自動化與清理

短期注入敏感變數,執行固定 lane,保存產物後清除暫存檔案與程序環境。

預計 20 分鐘
執行建置

接入自託管 Mac Runner

註冊專用 Runner、限制存放庫範圍、設定能力標籤,並在每項工作後清理工作目錄。

預計 25 分鐘
設定開發環境

建置故障五項排查

依序檢查網路、磁碟、簽署材料、依賴快取與並行,避免同時修改多個變數。

預計 15 分鐘
連線裝置

選擇節點與申請遷移

依開發者、程式碼存放庫與流水線服務的位置,選擇五個節點之一,並透過工單申請遷移。

預計 5 分鐘
管理帳單

核對訂單與加購項目

提交訂單識別碼、租用期間、節點,以及儲存空間或 Thunderbolt 5 並聯項目,方便定位帳單記錄。

準備 4 項資訊
管理帳單

升級人工支援

透過控制台工單或支援信箱提交裝置識別碼、節點、時間範圍與去識別化日誌。

兩種聯絡途徑
連線指南

先建立可信任的連線,再開始設定環境

連線資訊以控制台顯示為準。不要將私密金鑰、一次性憑證或完整連線指令貼到公開存放庫、建置日誌或團隊群組。

SSH 命令列連線

  1. 1
    準備本機公開金鑰

    優先使用受密碼保護的獨立金鑰。只上傳公開金鑰,不要透過工單或電子郵件傳送私密金鑰內容。

  2. 2
    讀取連線資訊

    在控制台核對裝置識別碼、節點、主機位址、連接埠與使用者名稱,避免重複使用舊的租用記錄。

  3. 3
    驗證主機指紋

    首次連線前,比對控制台提供的指紋。指紋不一致時請停止連線並提交工單,不要直接覆寫本機記錄。

  4. 4
    執行基本檢查

    執行 uname -mxcodebuild -versiondf -h /,記錄架構、工具鏈與磁碟剩餘空間。

VNC 遠端桌面連線

  1. 1
    先確認 SSH 可用

    圖形連線失敗時,SSH 是檢查程序、磁碟與網路狀態的主要途徑。請先完成主機指紋驗證。

  2. 2
    從控制台取得工作階段資訊

    使用目前裝置對應的 VNC 入口與暫時憑證,不要儲存於瀏覽器同步、共用文件或流水線變數中。

  3. 3
    檢查圖形環境

    登入後確認解析度、鍵盤配置、Xcode 啟動狀態與可用儲存空間,再開始簽署或封存操作。

  4. 4
    結束並清理工作階段

    退出正在執行的開發工具,移除暫存下載與明文憑證,再關閉遠端桌面工作階段。

憑證保管界線:團隊成員應使用各自受控的存取方式。成員離開專案時,撤銷相應的公開金鑰與流水線權杖,不要只修改本機 SSH 設定。
Xcode 建置指南

明確記錄版本、依賴與匯出參數,建置才能重現

不要依賴圖形介面中上一次選擇的 scheme。自動化工作應明確指定 Xcode 路徑、workspace、scheme、configuration、destination 與匯出設定。

01

選擇並驗證 Xcode 版本

先讀取專案需求,再使用 xcode-select 指向目標版本。接著分別執行 xcodebuild -versionxcrun swift --version,將輸出寫入建置日誌開頭。

02

依鎖定檔安裝依賴

Ruby 專案優先執行 bundle install,Pods 專案依鎖定檔還原,Swift Package 先解析依賴。快取只能加速,不應取代鎖定檔提供的版本約束。

03

執行封存工作

將 DerivedData 和 archivePath 指向目前工作的獨立目錄。並行工作不要共用同一個輸出路徑,以免索引、快取或封存檔案互相覆寫。

04

匯出並驗證產物

使用受版本控制的匯出設定執行匯出。驗證命令結束碼、產物檔案、簽署結果與 dSYM,再將產物複製到受控交付目錄。

05

保存可定位的日誌

至少保存純文字建置輸出、匯出日誌與 xcresult。檔名應包含流水線工作識別碼,不要包含存取權杖、私密金鑰內容或完整簽署材料。

archive.sh
xcode-select -p
xcodebuild -version
xcrun swift --version

bundle install
bundle exec pod install

xcodebuild archive \
  -workspace App.xcworkspace \
  -scheme App \
  -configuration Release \
  -destination "generic/platform=iOS" \
  -archivePath output/App.xcarchive \
  -resultBundlePath output/App.xcresult

xcodebuild -exportArchive \
  -archivePath output/App.xcarchive \
  -exportPath output/export \
  -exportOptionsPlist ExportOptions.plist
輸入 存放庫、鎖定檔、受控環境變數 執行位置 獨享雲端 Mac 產出 封存、匯出檔案、xcresult、去識別化日誌
fastlane 自動化指南

敏感變數只在工作期間存在

fastlane 應負責組織建置步驟,而非長期保存金鑰。簽署材料、存放庫權杖與上傳憑證應由受控變數注入,並在工作結束後清理。

INPUT

注入金鑰與簽署設定

在工作啟動時注入最小範圍的變數。將暫存檔案放入工作專用目錄、限制檔案權限,並避免透過命令回顯輸出變數值。

  • 可記錄變數名稱,但變數值不得寫入日誌
  • 簽署設定與專案分支保持明確對應
  • 暫存目錄不得由後續工作重複使用
RUN

執行固定 lane

使用 bundle exec fastlane 固定 Ruby 與 gem 版本。lane 中應明確指定 scheme、匯出方式、輸出目錄與失敗結束條件。

  • 建置前列印工具版本,不列印憑證
  • 失敗時保留目前工作的日誌與 xcresult
  • 重試前先判斷是環境問題還是程式碼問題
CLEAN

保存產物並清理

先將封存、匯出檔案與日誌複製到受控位置,再刪除暫存簽署檔案、環境檔案、下載快取與工作目錄。

  • 確認產物存在且檔案大小合理
  • 清除 shell 歷史中的敏感命令
  • 確認背景沒有遺留建置程序
bundle exec fastlane ios archive 固定依賴版本 獨立輸出目錄 失敗時回傳非零結束碼
CI/CD 整合指南

將雲端 Mac 作為受控執行節點接入流水線

Runner 應綁定明確的存放庫或專案範圍。不要讓來自不受信任分支的工作自動取得正式環境簽署材料,也不要讓不同安全等級的工作共用同一個工作目錄。

GitHub Actions

自託管 Runner 接入流程

  1. 確定範圍

    依團隊權限模型選擇存放庫級或組織級 Runner,並限制可呼叫它的專案。

  2. 建立專用系統使用者

    Runner 程序不要使用日常管理帳號。只授予工作目錄與建置工具所需的權限。

  3. 設定能力標籤

    標籤應描述架構、Xcode 主版本與工作類型,讓工作流程準確選擇節點。

  4. 設定序列或並行策略

    一個工作目錄同一時間只能處理一項工作。需要並行時,請使用獨立目錄或獨立裝置。

  5. 加入工作後清理

    刪除暫存變數檔案、簽署材料與未上傳產物,檢查殘留程序後再接收下一項工作。

常見流水線系統

透過 Agent 或 SSH 執行器接入

  1. 建立單向工作入口

    由流水線將工作調度至雲端 Mac,避免將裝置管理憑證寫入存放庫設定。

  2. 限制命令與目錄

    建置使用者只能存取指定存放庫、快取與輸出路徑,管理操作使用獨立權限路徑。

  3. 預檢工具鏈

    正式建置前驗證架構、Xcode、Ruby、依賴管理器與磁碟剩餘空間;預檢失敗就停止工作。

  4. 統一結束碼

    依賴安裝、測試、封存與匯出的任何步驟失敗,都應回傳非零狀態,避免流水線誤判成功。

  5. 上傳後再清理

    確認產物與日誌已上傳後,再清理工作目錄。保留工作識別碼,以便關聯工單。

並行建議:基本配置為 M4、16GB、256GB,適合輕量建置與單一專案簽署;Pro 配置為 M4 Pro、64GB、2TB,更適合高並行建置與較大的依賴快取。最終選擇應以單次建置的記憶體峰值、並行工作數與快取容量為依據。
故障排查清單

一次只排除一個變數

先記錄失敗工作識別碼與時間範圍,再依網路、磁碟、簽署、快取、並行的順序檢查。每一步都保留驗證結果,避免反覆重裝環境。

如何排查網路與連線逾時

先確認本機網路能連到裝置連接埠,再檢查 DNS、代理伺服器、SSH 主機指紋與系統時間。分別記錄連線建立時間、斷線時間與錯誤原文。若 SSH 可用而 VNC 不可用,應檢查圖形工作階段程序,不要先重設整個開發環境。

ssh -v user@host
磁碟空間不足或封存寫入失敗

使用 df -h / 查看磁碟區剩餘空間,再檢查 DerivedData、依賴快取、舊 archive 與模擬器資料。先找出大型目錄,再刪除確定可重建的快取。不要在建置執行期間清理它正在使用的目錄。

du -sh ~/Library/Developer/*
簽署憑證或設定不相符

核對專案識別碼、建置設定、匯出方式、憑證有效性與描述檔對應。確認流水線注入的是目前工作所需的材料,並檢查系統時間。提交日誌時保留錯誤類型與比對過程,隱藏憑證內容、私密金鑰與權杖。

security find-identity -v -p codesigning
依賴快取導致版本漂移或編譯異常

先比較鎖定檔與日誌中的實際版本。使用新的工作目錄執行一次不共用快取的建置;若問題消失,再逐層恢復 Swift Package、Pods、Ruby 與 DerivedData 快取,以定位污染來源。

swift package resolve
建置並行造成資源爭用

檢查同時執行的 xcodebuild、測試與依賴程序,以及每項工作的輸出目錄。降低並行後重新測試,觀察記憶體峰值、磁碟寫入與工作耗時。多項工作不得共用 archivePath、resultBundlePath 或暫存簽署目錄。

ps -axo pid,%cpu,%mem,command
節點與可用性

五個節點皆支援兩種獨享實體主機

新加坡、日本(東京)、韓國(首爾)、香港、美國東部全年 365 天正常運作。目錄中的組合通常可訂,實際可用性以控制台即時回傳為準。

MiniRents 兩種機型於五個節點的目錄與選擇建議
節點 適合優先考慮的團隊位置 MiniRents M4 MiniRents M4 Pro 選擇建議
新加坡SG 東南亞團隊與鄰近程式碼存放庫 充足 充足 優先比較開發者至節點,以及存放庫至節點的連線穩定性。
日本(東京)JP 日本與東亞團隊 充足 充足 適合程式碼存放庫與協作成員主要位於東亞的工作流程。
韓國(首爾)KR 韓國與鄰近東亞團隊 充足 充足 選擇前可從實際辦公網路測試 SSH 穩定性。
香港HK 華南與東南亞協作團隊 充足 充足 適合需要兼顧多個亞洲協作位置的團隊評估。
美國東部US-E 北美東部與西歐團隊 充足 充足 適合存放庫、產物服務或主要成員鄰近北美東部的工作流程。
01

先看互動連線

頻繁使用 VNC 時,優先考慮開發者至節點的穩定性;僅由流水線自動執行時,存放庫與產物服務的位置更重要。

02

再看資料流向

依賴下載、存放庫拉取與產物上傳都會佔用連線。將主要資料來源與執行節點放在連線更穩定的路徑上。

03

透過工單申請遷移

提交目前裝置識別碼、目前節點、目標節點、期望時間範圍與遷移原因。處理結果與後續步驟以控制台工單記錄為準。

升級人工支援

指南無法解決問題時,提交一份可重現的問題記錄

技術問題優先使用控制台工單,方便關聯裝置與訂單。無法登入控制台,或需要進行售前、帳單、安全與團隊部署諮詢時,可透過電子郵件聯絡。

控制台工單

適合處理連線中斷、裝置狀態、建置環境、節點遷移、訂單與帳單問題。工單應關聯目前裝置或訂單,並提供可重現的資訊。

  • 裝置識別碼與目前節點
  • 問題發生的時間範圍
  • 執行步驟與預期結果
  • 錯誤原文與去識別化日誌
  • 已完成的排查項目
登入控制台提交工單

支援信箱

適合處理無法登入控制台、售前設定評估、團隊部署、安全報告與一般諮詢。主旨中請寫明問題類型,內文避免包含密碼、私密金鑰或完整權杖。

  • 聯絡人姓名與工作電子郵件
  • 諮詢類型與目標工作流程
  • 期望節點與建置並行數
  • 安全報告的重現步驟與影響範圍
  • 帳單問題對應的訂單識別碼與加購項目
support@minirents.com
帳單資訊

提交帳單問題時請寫清四項內容

提供訂單識別碼、租用期間、節點,以及儲存空間擴充或 Thunderbolt 5 並聯項目。僅支援 USDT-TRC20 與 Visa / Mastercard / Amex(透過 Stripe),所有費用均以美元(USD)結算,實際可用付款閘道以後端介面回傳為準。

準備開始建置

選擇獨享雲端 Mac,讓第一條流水線順利完成

兩種機型、四種租用期間與五個節點可選。裝置為獨享實體主機,並非虛擬機,起始價格為 $21.5/天。