使用 macOS 螢幕共享連線
在本機 macOS 開啟「螢幕共享」,依照交付說明輸入桌面位址與連接埠。也可以在 Finder 選擇「前往 → 連接伺服器」,輸入交付的 VNC 位址。
桌面與 SSH 使用的連線資訊不一定相同。請使用控制台提供的對應欄位,不要將 SSH 金鑰檔案當成 VNC 密碼。
交付時附上 SSH 與 VNC 連線資訊。用命令列執行建置,用遠端桌面檢查簽署;整台專屬實體 Mac 由你獨享,非虛擬機。
已有節點?先記下位址、SSH 連接埠、使用者名稱與桌面連線方式,再依照下方步驟操作。
在本機終端機產生金鑰,將公開金鑰授權給雲端使用者,再為節點設定固定別名。之後 rsync、Fastlane 與 runner 都使用這個連線。
以下 192.0.2.10 是文件中的範例位址,macbuild 是範例使用者名稱,22 是範例 SSH 連接埠。請全部換成控制台提供的值;不要將私鑰、密碼或完整連線憑證貼到支援單中。
請在本機執行。使用獨立檔名方便撤銷授權,也不會覆寫既有的預設金鑰。請在互動提示中設定密語;自動化環境應透過受控的金鑰管理機制授權存取,不要將私鑰存入儲存庫。
ssh-keygen -t ed25519 -f ~/.ssh/xcr_build -C "xcr-build"
ssh-add ~/.ssh/xcr_build
ls -l ~/.ssh/xcr_build.pub
副檔名為 .pub 的是公開金鑰,可安裝到節點。沒有副檔名的是私鑰,只能留在本機或受控的 CI 金鑰儲存空間。
如果本機已安裝 ssh-copy-id ,請使用交付的使用者名稱與連接埠安裝公開金鑰。首次連線時會顯示主機指紋,請先與交付資訊核對;如果沒有可信的指紋,請透過控制台支援單確認,不要直接略過驗證。
ssh-copy-id -i ~/.ssh/xcr_build.pub -p 22 macbuild@192.0.2.10
ssh -i ~/.ssh/xcr_build -p 22 macbuild@192.0.2.10
macOS 本機環境不一定預先安裝 ssh-copy-id。若交付設定允許使用密碼登入,可以改用下方的標準 SSH 指令;若只允許金鑰驗證,請依照交付流程授權公開金鑰,不要反覆嘗試密碼。
cat ~/.ssh/xcr_build.pub | ssh -p 22 macbuild@192.0.2.10 \
'umask 077; mkdir -p ~/.ssh; cat >> ~/.ssh/authorized_keys'
重新安裝節點後若出現主機金鑰變更警告,請先確認重裝紀錄與新指紋,再更新本機紀錄。不要使用停用主機驗證的參數來掩蓋異常。
將下方設定加入本機的 ~/.ssh/config。設定別名後就不用記住節點位址;位址變更時只需修改這裡,指令碼仍可使用 xcr-build。
Host xcr-build
HostName 192.0.2.10
User macbuild
Port 22
IdentityFile ~/.ssh/xcr_build
IdentitiesOnly yes
ServerAliveInterval 30
ServerAliveCountMax 3
執行一次唯讀驗收,確認實際系統版本、目前選用的 Xcode 與磁碟空間。先確認環境,再安裝相依套件或註冊 runner,避免將錯誤版本帶進 CI 流程。
ssh xcr-build
sw_vers
xcode-select -p
xcodebuild -version
df -h "$HOME"
首次設定簽署憑證、檢查 Keychain 權限或查看 Xcode 設定時,使用遠端桌面比反覆猜指令更直接。檢查完成後,再將穩定的步驟交回命令列執行。
在本機 macOS 開啟「螢幕共享」,依照交付說明輸入桌面位址與連接埠。也可以在 Finder 選擇「前往 → 連接伺服器」,輸入交付的 VNC 位址。
桌面與 SSH 使用的連線資訊不一定相同。請使用控制台提供的對應欄位,不要將 SSH 金鑰檔案當成 VNC 密碼。
其他作業系統可使用支援交付驗證方式的 VNC 用戶端。請輸入主機、連接埠與驗證資訊,不要在公開網路上自行開放桌面服務。
如果交付說明允許透過 SSH 存取節點上的本機 VNC 服務,可以建立通道。下方範例僅適用於遠端服務監聽 127.0.0.1:5900 的情況;實際連接埠請以交付值為準。
ssh -N -o ExitOnForwardFailure=yes \
-L 127.0.0.1:5901:127.0.0.1:5900 xcr-build
保持這個終端機工作階段開啟,再讓本機 VNC 用戶端連線至 127.0.0.1:5901。本機連接埠只會綁定至回送位址;結束桌面工作階段後,按下 Control-C 關閉通道。
確認 Xcode 能正常啟動,且已選用預期版本;確認建置使用者能存取簽署憑證及其私鑰;確認佈建描述檔與專案的 Bundle Identifier、Team 和匯出方式一致。截圖中不要顯示憑證密碼。
依序遷移資料、工具鏈與 CI。先以同一個原始碼提交完成一次手動封存,再讓 runner 接手;不要同時變更 Xcode、相依套件版本和簽署策略。
將原始碼與鎖定檔放在獨立的工作目錄。先以 rsync 預演並核對目標路徑;不要直接同步整個使用者目錄,也不要預設一併上傳憑證、私鑰和本機環境檔。
DerivedData 是可重建的快取。只有在 Xcode 版本、相依套件與原始碼環境相容時才重複使用;若路徑或模組快取發生異常,建議先清除再進行全新建置。
使用 xcode-select -p 與 xcodebuild -version 核對版本。切換時請使用節點上實際存在的 Xcode 路徑,再檢查專案所需的 SDK。
保留 Podfile.lock、Package.resolved 與 Gemfile.lock。依照專案鎖定的環境執行 CocoaPods、SPM 和 Fastlane;另行匯入憑證與佈建描述檔,並驗證私鑰存取權限。
在 GitHub 或 GitLab 專案中建立 self-hosted runner 註冊資訊,再依照平台提供的 macOS 步驟安裝。註冊權杖僅供受控設定使用,不要寫入儲存庫或建置記錄。
為 runner 標註用途與工具鏈,例如 macos、ios-build。一開始只允許可信任的分支執行簽署任務,並限制並行工作數;之後再依據記憶體、磁碟空間與任務記錄調整。
rsync -avzn --exclude '.env' --exclude '.env.*' \
--exclude 'DerivedData/' ./MyApp/ xcr-build:~/builds/MyApp/
rsync -avz --exclude '.env' --exclude '.env.*' \
--exclude 'DerivedData/' ./MyApp/ xcr-build:~/builds/MyApp/
第一條指令加上 -n,只會顯示預計變更;確認後再執行第二條。範例沒有使用 --delete,避免初次遷移時誤刪遠端檔案。若專案有其他密鑰目錄,請先新增排除規則。
記錄原始碼提交、Xcode 版本、相依套件鎖定檔、Scheme、匯出設定、runner 標籤與產出物路徑。分別驗證全新建置與增量建置後,再決定是否複製快取;本頁範例指令並非效能測試,也不保證固定的打包時間。
遇到問題時,請區分連線協定、執行環境與建置快取。清楚指出失敗發生在哪一層,比只說「連不上機器」更容易排除問題。
三種機型涵蓋全部六個節點。若需要互動式遠端桌面,優先選擇靠近主要操作者的節點,再確認程式碼儲存庫、相依套件下載與產出物上傳路徑;團隊時區可供初步篩選,但不能取代實際網路測試。
SG · UTC+8
適合主要協作時段落在東南亞工作日的團隊。請先測試本機與節點間的桌面操作體驗,再確認相依套件下載與產出物上傳狀況。
JP · UTC+9
適合以日本工作時段為主的協作團隊。請讓需要除錯圖形介面的成員先測試連線,再安排自動化任務的觸發時間。
KR · UTC+9
適合以韓國工作時段為主的開發團隊。請確認公司網路可存取交付的連接埠,並測試長時間 SSH 工作階段的穩定性。
HK · UTC+8
適合以華南與周邊地區協作時段為主的團隊。請分別測試桌面回應速度、程式碼下載與快取傳輸,不要只憑一次 ping 就下結論。
US-E · UTC−5 / UTC−4
適合配合北美東部工作時段,也可作為跨時區協作的選項。當地實施日光節約時間,交接任務時請註明時區,不要只寫時間。
US-W · UTC−8 / UTC−7
適合配合北美西岸工作時段。跨時區團隊可安排夜間封存,接續另一側白天的程式碼提交;但仍需限制簽署任務的並行數。
節點全年 365 天正常運作。實際可用狀態請以控制台即時回報為準。排查連線問題時,請透過控制台支援單提供節點、機型、使用的協定、完整錯誤訊息與重現步驟;只需隱藏連線資訊,不要刪除有助於判斷問題的錯誤內容。
將五分鐘設定為首次連線的操作目標:確認主機、驗證 SSH、開啟桌面。確認網路與驗證設定後,再遷移建置環境;完整 CI 流程驗收需依專案個別安排。
每日 $21.7 起。僅支援 USDT-TRC20 與 Visa / Mastercard / Amex(透過 Stripe)付款,以美元結算;實際可用的付款閘道請以後端介面回傳為準。