核對連線資訊卡
從控制台取得資訊,依連線方式分別填寫。
- VNC 桌面
- 位址 · VNC 連接埠 · 密碼
- SSH 建置
- 位址 · SSH 連接埠 · 使用者名稱 · 金鑰
- SFTP 傳輸
- 沿用 SSH 連線資訊
傳送專案 → 編譯並匯出 → 下載產物
連線工作站
用 VNC 操作桌面,用 SSH 執行建置。
繼續在 Windows 或 Linux 上編寫程式。需要編譯 iOS 專案時,再將專案傳到專屬 macOS 環境。
已有訂單?登入控制台,在執行個體詳情中查看連線資訊。請勿將密碼或私密金鑰放進專案儲存庫。
從控制台取得資訊,依連線方式分別填寫。
傳送專案 → 編譯並匯出 → 下載產物
指派工作
三種方式連線到同一台機器,不必為每項工作另租一個執行個體。先確認工作需求,再開啟相應的用戶端。
適合初次檢查環境、操作 Xcode 圖形介面及檢視簽署設定。用戶端會顯示遠端 macOS 桌面,滑鼠與鍵盤操作都會在雲端機器上執行。
初次連線時,建議先使用較低的解析度。確認輸入、畫面與連線都穩定後,再依需求調整顯示品質。
圖形操作適合執行 Flutter、React Native、Unity 匯出專案的編譯命令,也方便檢視記錄。命令會在遠端執行,不必持續傳輸桌面畫面。
一般 SSH 工作階段中斷時,可能會影響前景工作。長時間建置請使用工作階段管理工具,或交由已設定的建置執行器處理。
命令執行適合上傳原始碼、資源套件與設定檔,也可下載建置記錄和 .ipa。SFTP 使用 SSH 連線資訊,請勿填入 VNC 連接埠。
首次傳送前,先清除可重新產生的快取。憑證與私密金鑰請分開傳送;下載產物後,核對檔案大小與建置版本。
專案交接設定 Windows
準備支援 VNC 的用戶端,再開啟控制台中的執行個體詳情。請以執行個體顯示的連線資訊為準,不要猜測位址或套用預設連接埠。
將執行個體的連線位址填入用戶端的主機欄位。位址、使用者名稱與訂單編號是不同欄位,請勿將整段連線說明直接貼上。
如果用戶端將位址與連接埠合併在同一欄,請先確認欄位要求的格式;不同用戶端對冒號的處理方式可能不同。
使用控制台提供的 VNC 連接埠。SSH 與 VNC 是不同服務,連接埠不可互換;若有獨立的連接埠欄位,請將數字填入該欄。
如果連線逾時,先確認複製時是否帶入空格、目前網路是否限制該連接埠,以及執行個體是否可連線。
依用戶端提示填入該執行個體的 VNC 密碼。請勿以控制台登入密碼代替,也不要在公用電腦上儲存登入資訊。
首次進入桌面後,請檢查鍵盤配置與系統時間,再確認 Xcode 和命令列工具的版本。若登入資訊有異常,請透過支援單處理。
設定 Linux
SSH 用於執行命令,VNC 用戶端則用於圖形操作。可依工作需求切換連線方式,但請分別確認各自的驗證資訊。
在自己的 Linux 電腦上產生 SSH 金鑰。私密金鑰僅保留在本機,公開金鑰才用於設定遠端使用者的授權檔案;請勿上傳私密金鑰來設定登入。
ssh-keygen -t ed25519 -f ~/.ssh/xcodehost
chmod 600 ~/.ssh/xcodehost
透過已授權的工作階段或桌面完成公開金鑰登記後,再測試金鑰登入。確認成功前,請勿關閉仍可使用的連線方式。
首次透過 SSH 連線時,系統會提示主機指紋。請先透過可信任的管道核對指紋,再予以接受;如果既有記錄有變更,先確認執行個體是否重新安裝,不要直接忽略警告。
ssh -i ~/.ssh/xcodehost \
-p "$SSH_PORT" \
"$MAC_USER@$MAC_HOST"
請先將命令中的三個環境變數設為控制台提供的 SSH 連接埠、系統使用者名稱與連線位址。VNC 用戶端則須填入獨立的 VNC 資訊。
執行建置
以下為命令與預期輸出的節錄,並非線上執行結果。範例假設專案已建立 Archive、簽署設定正確,且已準備好 fastlane 所需的上傳授權。
$ ssh -i ~/.ssh/xcodehost -p "$SSH_PORT" "$MAC_USER@$MAC_HOST"
Last login: ...
$ xcodebuild -version
Xcode ...
$ xcodebuild -exportArchive \
-archivePath build/App.xcarchive \
-exportPath build/export \
-exportOptionsPlist ExportOptions.plist
** EXPORT SUCCEEDED **
$ fastlane pilot upload --ipa build/export/App.ipa
Successfully uploaded package to App Store Connect
使用 xcodebuild -version 確認目前的工具鏈。Flutter 專案請先執行 flutter doctor;React Native 專案確認相依套件後,再執行 pod install;Unity 專案則請先傳入匯出的 Xcode 專案。
Archive 建立成功,不代表 .ipa 已匯出;匯出成功,也不代表上傳完成。請分別保留三個階段的記錄並下載建置產物;若上傳驗證發生錯誤,請從錯誤所在階段開始排查,不必重新設定遠端桌面。
選擇連線節點
五個節點皆可用於桌面操作、建置與檔案傳輸。參考區間適用於表中所列的周邊區域,並非從任何城市連線都能達到的保證值,也不是即時測量結果。
| 節點 | 涵蓋區域 | 參考往返延遲 | 適合的工作方式 |
|---|---|---|---|
| 新加坡 | 東南亞 | 20~50ms | 區域內桌面操作;SSH 建置;專案傳輸 |
| 東京 | 東亞 | 30~60ms | 區域內桌面除錯;SSH 建置;下載產物 |
| 首爾 | 東北亞 | 30~50ms | 區域內遠端桌面;命令列建置;檔案交接 |
| 香港 | 華南與東南亞 | 20~40ms | 區域內桌面操作;SSH 建置;上傳專案 |
| 美國西部 | 北美西岸 | 25~35ms | 區域內桌面檢查;自動化建置;傳輸產物 |
以上為參考區間,實際狀況以連線網路為準。往返延遲不等於檔案傳輸速度,無法據此推算上傳或編譯所需時間。
經常操作 Xcode 介面時,優先考量操作者所在區域;主要執行無人值守建置時,也要考量原始碼與產物的傳輸路徑。實際可用狀態請以控制台即時顯示為準。
排查延遲
桌面操作不順、SSH 無法連線、檔案傳輸緩慢,是不同類型的問題。每次只調整一項,並記錄調整前後的狀況。
先降低遠端解析度與用戶端畫面品質,並關閉不必要的桌面動畫。透過輸入文字、開啟選單等簡短操作確認效果;不要用播放整段影片來判斷開發桌面的使用體驗。
若桌面僅用於輔助檢查,可改用 SSH 執行編譯。保留記錄,並分階段安裝相依套件、建立 Archive 與匯出;若 SSH 正常但 VNC 卡頓,應優先檢查畫面傳輸,而非修改專案。
參考表格,選擇接近操作者的節點,同時檢查本地無線網路、代理伺服器與頻寬使用狀況。節點是在下單設定時選擇,請勿以為更換節點會自動遷移現有專案。
先確認桌面、SSH 與檔案傳輸都正常,再開始正式輸出套件。退租前請下載專案與產物,並清除憑證和金鑰;租期到期且未續租時,服務即會停止。