新手使用指南

從下單
到首次
archive

租用一台獨享 Apple Silicon 實體節點,逐項驗收連線、工具鏈與建置流程。先讓一個專案順利建置,再串接團隊 CI。

兩種機型、5 個節點,每天 $21.2 起。整台設備獨享,非虛擬機;交付狀態與實際可用性以控制台即時顯示為準。

步驟一 / 選擇運算資源

先評估工作負載,再選擇節點

純編譯與首次驗證可從 Arm Line M4 開始。模型推論或需要較大統一記憶體的工作,則選 Arm Grid M4 Pro。評估記憶體需求時,不要只看專案目錄大小,也要考量並行工作與工具鏈的資源占用。

Arm Line M4

M4 / 16GB / 256GB

適合首次 Xcode 建置、單一 CI 建置工作與臨時 iOS 封裝。建議先用實際專案驗證相依項目安裝、快取大小與建置流程。

每天 $21.2

租用 Arm Line M4

Arm Grid M4 Pro

M4 Pro / 64GB / 2TB

適合模型推論、較大的建置快取,以及記憶體占用較高的工作流程。是否能執行特定模型,仍須依量化方式、上下文長度與執行參數進行驗證。

每天 $59.8

租用 Arm Grid M4 Pro

兩種機型皆有 5 個節點供租用

新加坡、日本(東京)、韓國(首爾)、香港、美國東部。使用互動式桌面時,可優先考量團隊所在地到節點的網路路徑;無人值守建置則還要考量程式碼擷取、相依項目下載與產物回傳。地理距離只能作為初步參考,不代表實測延遲。

首次租用可先選按天計費,用同一個專案跑完整流程,再決定是否改用較長租期。四種租期與加購項目的完整價格請見方案頁。

步驟二 / 付款與交付

付款後先確認訂單狀態

僅支援 USDT-TRC20 與 Visa / Mastercard / Amex(透過 Stripe),全部以美元(USD)結算。實際可用的付款閘道以後端介面回傳為準。

  1. 01

    確認訂單

    確認機型、租期、節點與加購項目。使用 USDT 轉帳時,必須選擇 TRC20 網路,並逐項核對付款頁面提供的收款資訊與金額;勿沿用舊訂單的付款資訊。

  2. 02

    等候確認

    鏈上付款需要等待確認,入帳速度會隨網路狀況而異;信用卡付款則以付款結果及訂單狀態為準。頁面尚未更新時,請勿重複付款;付款成功也不代表節點已交付。

  3. 03

    查看連線資訊

    在控制台查看交付狀態。節點可用後,核對 IP、登入使用者名稱、初始密碼與連線埠。若付款憑證與訂單狀態不符,請提交支援單並附上訂單編號及交易雜湊或付款憑證。

步驟三 / 首次連線

先驗證 SSH,再開啟圖形桌面

請在本機終端機執行以下指令。依提示填入控制台實際顯示的位址、連接埠與使用者名稱,勿將文件中的範例當成連線憑證。

建立 SSH 工作階段

read -r -p "Node IP: " NODE_IP
read -r -p "SSH port: " SSH_PORT
read -r -p "Login user: " NODE_USER
ssh -p "$SSH_PORT" "$NODE_USER@$NODE_IP"

首次連線時會顯示主機指紋。請先透過可信管道核對,再接受指紋;如果已儲存的指紋有變動,應先確認是否曾重新安裝系統或更換節點,不要直接略過驗證。

變更遠端目前使用者的密碼

whoami
hostname
passwd

passwd 請在雲端 Mac 的 SSH 工作階段中執行。依提示輸入舊密碼與新密碼,輸入時不會顯示字元。密碼勿與其他服務共用,也不要寫入建置記錄。

如何設定 VNC 用戶端

欄位填入內容確認方式
伺服器位址控制台提供的節點 IP確認與目前訂單相符,勿填入本機電腦的位址。
連接埠控制台提供的 VNC 連接埠如果用戶端有獨立的連接埠欄位,請分別填寫;勿自行猜測連接埠。
驗證資訊控制台提供的圖形連線憑證勿假設 VNC 密碼永遠與 SSH 密碼相同。
初始顯示設定先從較低解析度開始先確認畫面與輸入操作正常,再依網路頻寬提高畫質。

macOS 也可使用系統內建的螢幕共享。變更登入密碼後,請依交付說明確認是否需要同步更新圖形連線驗證資訊。勿將 VNC 服務直接暴露於不受信任的網路。

步驟四 / 準備建置環境

首次建置前,先檢查工具鏈

請在雲端 Mac 上執行以下指令。先確認系統與現有工具,再安裝缺少的元件。不要為了照抄範例而覆寫團隊已固定的 Xcode、Ruby 或相依項目版本。

1. 檢查系統與 Xcode

sw_vers
uname -m
df -h /
ls /Applications
xcode-select -p
xcodebuild -version

xcode-select 如果指向的是獨立命令列工具,不能據此判定完整 Xcode 已可使用。若尚未安裝完整 Xcode,請先準備團隊授權範圍內的安裝套件,解壓縮後放入 /Applications;磁碟空間也須足以容納解壓縮內容、相依項目與封存產物。

2. 指定完整 Xcode 並完成初始化

sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -license
sudo xcodebuild -runFirstLaunch
xcodebuild -version
xcodebuild -showsdks

上述範例假設應用程式名稱為 Xcode.app。如果同時安裝多個版本,請改用實際路徑;接受授權條款前,請先詳閱內容。若要避免變更其他工作的工具鏈,也可以在單次建置時設定 DEVELOPER_DIR 指向所需版本。

3. 確認 Homebrew、Ruby 與 Fastlane

command -v brew
brew --version
ruby --version
bundle --version

如果尚未安裝 Homebrew,請依團隊審核過的流程安裝;不要貼上來源不明的遠端安裝指令碼。Apple Silicon 常見的安裝路徑為 /opt/homebrew,實際路徑請以指令輸出為準。若已安裝但目前工作階段找不到,可以載入其環境:

eval "$(/opt/homebrew/bin/brew shellenv)"
brew install ruby
export PATH="$(brew --prefix ruby)/bin:$PATH"
gem install bundler
bundle install
bundle exec fastlane --version

最後四個步驟請在專案目錄中執行,並假設程式碼儲存庫已有固定 Fastlane 相依項目的 Gemfile 與鎖定檔。若缺少這些檔案,請先由團隊決定相依項目版本並提交鎖定檔,再進行安裝。勿以管理員權限將大量建置相依項目安裝到系統 Ruby。

4. 先驗證無簽署封存

read -r -p "Workspace path: " WORKSPACE
read -r -p "Shared scheme: " SCHEME
xcodebuild -list -workspace "$WORKSPACE"
xcodebuild \
  -workspace "$WORKSPACE" \
  -scheme "$SCHEME" \
  -destination 'generic/platform=iOS' \
  -archivePath "$HOME/BuildArtifacts/FirstBuild.xcarchive" \
  CODE_SIGNING_ALLOWED=NO \
  archive

先進入專案目錄,安裝專案宣告的相依項目,並確認 scheme 已共用。只有使用 .xcodeproj 的專案才使用 -project 取代 -workspace。此指令用來驗證編譯與封存流程,不會產生可供散佈的已簽署套件,也不保證所有需要簽署的建置指令碼都能順利執行。

步驟五 / 串接自動化

本機指令順利執行後,再註冊 runner

請依照使用的程式碼平台,選擇 GitHub Actions 或 GitLab Runner。先以一個可信任的分支驗證工作,確認服務使用者、環境變數與鑰匙圈存取正常,再交由正式工作流程執行。

GitHub Actions:註冊並安裝使用者服務

在儲存庫或組織的 runner 設定中選擇 macOS 與 ARM64,依平台目前的指引下載套件、驗證並解壓縮至獨立目錄。請在解壓縮後的目錄中執行以下指令;註冊 URL 與短效 token 請從目前的設定頁面取得。

read -r -p "Repository or organization URL: " RUNNER_URL
read -r -s -p "Registration token: " RUNNER_TOKEN
printf '\n'
./config.sh \
  --url "$RUNNER_URL" \
  --token "$RUNNER_TOKEN" \
  --labels armvnc,macos,arm64
unset RUNNER_TOKEN
./svc.sh install
./svc.sh start
./svc.sh status

在工作流程中使用 runs-on: [self-hosted, macOS, ARM64, armvnc],並核對平台顯示的實際標籤。使用者服務的啟動與登入工作階段有關;安裝後請確認重新登入及重新啟動後能否恢復運作。註冊成功不代表服務在任何狀態下都會執行工作。

GitLab Runner:註冊 Shell 執行器

先在專案或群組設定中建立 runner,取得驗證 token。設定好 Homebrew 後,可安裝 runner 並依互動提示完成註冊。服務會以目前使用者身分執行,建置檔案與憑證也應由該使用者管理。

brew install gitlab-runner
read -r -p "CI server URL: " CI_SERVER_URL
read -r -s -p "Runner authentication token: " RUNNER_TOKEN
printf '\n'
gitlab-runner register \
  --url "$CI_SERVER_URL" \
  --token "$RUNNER_TOKEN" \
  --executor shell \
  --description "ArmVNC macOS ARM64"
unset RUNNER_TOKEN
gitlab-runner install
gitlab-runner start
gitlab-runner status
gitlab-runner verify

在平台設定中設定標籤與受保護分支規則,並確保工作流程中的 tags 與 runner 標籤一致。使用者服務通常依賴登入工作階段;請依目前 runner 版本的說明檢查 LaunchAgent 與啟動行為,勿再用另一套服務管理方式重複啟動同一個執行個體。

將這四項加入 CI 的第一個工作

  1. 輸出 whoami、xcode-select -p 與 xcodebuild -version,確認工作並非在另一套環境中執行。
  2. 明確載入工具鏈 PATH。背景服務不一定會讀取互動式終端機的 shell 設定。
  3. 先執行無簽署建置,再設定受控的鑰匙圈與簽署步驟;勿在記錄中輸出金鑰、密碼或 token。
  4. 設定產物回傳與清理規則。不要在持有簽署資料的 runner 上直接執行未經審查的公開來源程式碼。

節點全年 365 天正常運作,但 CI 程序仍由你管理。登出、更新系統或重新啟動後,請確認 runner 服務、網路與簽署環境都已恢復;退租前請先移除平台上的註冊關係、撤銷憑證並回傳產物。

將術語轉化為實際操作

八個詞,了解交付與連線

判斷一個概念是否重要,先看它會影響哪個操作步驟:資源歸屬、連線方式、工作執行,或多機協作。

實體節點
機房中的一台實體 Mac。控制台提供的是這台設備的連線資訊,不是本機電腦上的開發環境。
獨享實體機
一張訂單獨享整台 Mac 的運算與儲存資源。你需要自行安排工作並行數、相依項目與快取。
非虛擬機
服務以實體設備提供,可直接使用原生 macOS。圖形介面與命令列都能用於工作流程。
VNC
一種遠端圖形連線協定,適合透過不同作業系統查看及操作 Mac 桌面;使用體驗會受網路與畫質設定影響。
螢幕共享
macOS 內建的圖形遠端連線方式。使用 Mac 用戶端時,可依交付資訊連線至節點桌面。
self-hosted runner
由你註冊並管理的 CI 執行節點。程式碼平台派送工作,由雲端 Mac 上的 runner 程序執行建置。
統一記憶體
Apple Silicon 的 CPU 與 GPU 共用的記憶體資源,模型、建置工作與系統程序都會占用。
Thunderbolt 5 並聯
透過 Thunderbolt 5 連接多台設備的加購設定,按設備數量計費。此設定不會自動將多台 Mac 的記憶體合併成單一定址空間,仍須自行安排工作。
下一步 / 依驗收結果繼續

建置通過後,固定好工作流程

將已驗證的 Xcode 版本、相依項目鎖定檔與建置指令寫入程式碼儲存庫。遇到問題時,先判斷是連線、工具鏈還是專案層面的問題,再提供精簡的重現資訊尋求協助。

調整圖形連線

確認 VNC、螢幕共享與 SSH 的適用情境,再檢查解析度、通道轉送與斷線重連。此頁為連線說明,並非遠端操作入口。

閱讀遠端連線說明

決定長期設定

依實際專案的記憶體與磁碟用量,確認四種租期與儲存加購項目,再決定長期 CI 的租用方式。

查看租用方案

找出未通過的環節

查看開通、連線、付款與可用率相關問題。提交支援單時,請附上訂單編號、節點代號、故障時段與已去識別化的記錄,勿附上密碼。

開啟說明中心

使用實際專案,完成首次驗收

從按天租用開始,先確認連線、相依項目與 archive。僅支援 USDT-TRC20 與 Visa / Mastercard / Amex(透過 Stripe),以 USD 結算。