依工作流程選,不必猜規格

一台雲端 Mac,四種用途

為開發流程添一台獨享 Apple Silicon 實體節點。非虛擬機,可透過 SSH 與 macOS 圖形介面使用;從一次打包、常駐 CI/CD 流程,到統一記憶體上的推論實驗都適用。

三種機型、五個節點。Shell M4 每日 $21.8 起,先用自己的專案驗證。

01 / BUILD

不必換掉主要電腦,
把 Xcode 留在雲端

平常在 Windows 或 Linux 上寫程式,需要發佈時,再將程式碼同步到雲端 Mac,透過 SSH 執行建置。需要檢查專案設定、模擬器或簽署設定時,再切換至 macOS 圖形介面,不必整套搬移日常開發環境。

Shell M4 適合先驗證單一專案的編譯與封存流程。16GB 統一記憶體是否足夠,取決於專案規模、模擬器數量與同時執行的工具;先記錄記憶體使用高峰與乾淨建置所需時間,再決定是否升級規格。

  • 確認專案指定的 Xcode 與相依套件版本,避免本機建置成功、遠端卻失敗。
  • 先執行一次不含簽署的建置,再設定你有權使用的憑證與描述檔。
  • 封存成功不代表已完成發佈;請另外確認簽署權限、發佈權限與建置產物。
02 / AUTOMATE

為 macOS 建置準備,
一個常駐 Runner

將獨享實體節點註冊為 GitLab 或 GitHub 的 self-hosted runner,讓提交、測試、封存與建置產物回傳都在同一條 CI/CD 流程中完成。節點全年 365 天持續運作;團隊可依專案設定工作排程、程序監控與建置清理。

建議選用 24GB 統一記憶體與 512GB SSD 的 Shell M4 Plus,為相依套件解析、編譯與測試預留空間,也能存放程式碼、相依套件快取與建置產物。先將並行數設為 1,觀察 CPU、記憶體壓力與磁碟用量成長後再調高;邏輯並行數不等於實際處理量。

  • 使用專用的 macOS 帳號執行 CI,避免與人工桌面操作共用工作目錄。
  • Runner 標籤應標明 macOS、晶片架構與 Xcode 版本,避免工作派送到錯誤的節點。
  • 需要圖形工作階段或簽署鑰匙圈的工作,請先在相同使用者工作階段中確認權限。
  • 只有可信任的程式碼儲存庫可以提交至持有發佈憑證的 Runner,並隔離外部貢獻者的程式碼。
03 / VERIFY

讓夜間測試留下可供檢視的結果

使用 fastlane 組織工作流程、XCUITest 執行 UI 測試,並保留結果套件中的失敗情境。先固定測試環境,再擴大裝置涵蓋範圍。

先用模擬器執行回歸測試

安裝專案所需的模擬器執行環境,固定目標裝置與系統版本。先執行 xcrun simctl list devices available 查看可用的目標裝置,再將實際裝置識別碼寫入測試設定。

夜間工作會保存 .xcresult、截圖與記錄。發生失敗時,先釐清是產品缺陷、測試指令碼不穩定,還是環境問題;不要無限重試來掩蓋原因。

適用情境:提交檢查與夜間回歸測試

iOS 實機需求須另外確認

租用實體 Mac 不代表也租到 iPhone 或 iPad。本服務方案不含 iOS 裝置,也不預設提供裝置連線;下單前請先說明裝置的所有權、連線方式與測試工具。

你電腦上的 USB 裝置不會因為 SSH 登入就出現在遠端。測試方案需要可連線的裝置、配對與信任設定,以及相應的簽署權限;請先透過電子郵件確認可行性。

讓每次執行都留下結果套件

在專案已設定好 fastlane 測試 lane 後執行。結果目錄依工作編號區分,測試結束後回傳,不要長期留在節點上。

bundle exec fastlane scan \
  --scheme App \
  --result_bundle true \
  --output_directory build/test-results
04 / EXPERIMENT

運用統一記憶體,
驗證你的推論假設

配備 M4 Pro 晶片、64GB 統一記憶體與 2TB SSD 的 Shell M4 Pro,適合使用 MLX 或 llama.cpp 驗證模型載入、量化版本、上下文長度與 Metal 推論流程。CPU 與 GPU 共用統一記憶體,但不代表所有記憶體都能用來存放模型權重。

選擇模型時先估算權重所需空間,再預留執行餘裕。以 4-bit 權重粗估,8B 參數約需 4GB,32B 約需 16GB;這只是參數量乘以每個參數 0.5 位元組,未包含量化中繼資料、KV cache、執行環境與系統用量。不能據此保證特定模型一定能載入。

  • 先以較短的上下文和單一請求測量首個 token 延遲與穩定生成速度,再增加上下文或並行數。
  • 記錄模型版本、量化格式、工具版本與取樣參數,避免把不同設定的結果混在一起比較。
  • 需要 CUDA 生態系或多 GPU 訓練的工作,不應直接以這台 Mac 取代同類設備。
從本機遷移至雲端

遷移分三步,每一步都能獨立驗收

不要直接複製整個使用者目錄。先遷移專案,再還原工具鏈,最後切換工作流程。以下時間是人工操作的規劃估算,不代表開通所需時間;下載、傳輸與編譯時間另計。

01

資料:先確保程式碼可重建

操作預估:10–30 分鐘,不含傳輸時間

首次遷移建議先複製儲存庫;尚未提交的資源再分開增量同步。請在本機執行下方指令,cloud-mac 是你已設定的 SSH 別名,儲存庫網址則來自專案自己的環境變數。

ssh cloud-mac 'mkdir -p ~/work'
rsync -av --exclude '.git' \
  ./App/ cloud-mac:~/work/App/
ssh cloud-mac
git clone "$REPOSITORY_URL" ~/work/repo

驗收標準:提交版本一致,必要資源齊全;快取與可重新建立的建置目錄不必遷移。

02

工具鏈:鎖定版本與權限

操作預估:20–60 分鐘,不含下載時間

在遠端確認 Xcode 路徑與 SDK。已有 Brewfile 時,使用 Homebrew 還原工具;透過團隊核准的安全管道傳送憑證與描述檔,不要將其寫入儲存庫或工作記錄。

xcode-select -p
xcodebuild -version
xcodebuild -showsdks
brew bundle --file Brewfile
security list-keychains -d user

驗收標準:相依套件版本一致,目標 SDK 可用;以實際執行工作的使用者身分完成一次簽署封存。

03

CI:先試跑,再切換標籤

操作預估:15–45 分鐘,不含建置時間

使用組織產生的註冊資訊加入 Runner。以下是 GitLab 指令;GitHub Runner 請使用組織提供的設定指令碼,並在節點上確認服務狀態。僅在可信任的工作階段中輸入權杖。

gitlab-runner register
gitlab-runner install
gitlab-runner start
gitlab-runner verify

驗收標準:測試分支成功派送至新標籤,且可下載建置產物;確認無誤後再切換正式 CI/CD 流程,並保留舊的執行端以便復原。

遷移成功的標準不只是「能透過 SSH 登入」,而是同一個提交能完成相依套件安裝、建置、測試與產物回傳。任何一步失敗,先保留記錄,再繼續下一步。

跨時區交接

共享排程,不共用密碼

團隊成員可以分時使用同一台節點,但 CPU、GPU、記憶體與磁碟仍由大家共用。多個系統使用者不等於虛擬機隔離;發佈憑證與敏感專案需要更嚴謹的權限設計。

  1. 01

    各自使用個人帳號

    每位成員使用個別的 macOS 使用者帳號與 SSH 公鑰,避免共用私鑰。CI 使用專用帳號;成員離開團隊時,移除其金鑰並檢查相關權杖。

  2. 02

    依排程交接工作

    排程採用統一時區,交接記錄註明提交版本、工作目錄、正在執行的程序與下一項工作。長時間工作交由 Runner 或受管理的工作階段處理,不要仰賴桌面連線持續開啟。

  3. 03

    分開管理簽署權限

    依執行使用者確認鑰匙圈權限,避免將解鎖密碼寫入 shell 歷史記錄。交接前確認沒有尚未處理的互動式簽署提示,也不要在他人的發佈工作執行途中結束使用者工作階段。

  4. 04

    資料至少保留兩份

    將程式碼推回儲存庫、將建置產物傳回團隊儲存空間,並另外安全保管憑證。到期前完成備份,不要將節點當作唯一的存檔位置;續租與到期資訊以控制台顯示為準。

NEXT / RUN YOUR PROJECT

先選擇工作,
再啟用第一台節點

單一專案建置可從 Shell M4 起步;團隊 CI/CD 可選 Shell M4 Plus;大記憶體推論實驗則適合 Shell M4 Pro。前往下單頁後,確認租用週期、節點與加購項目。

僅支援 USDT-TRC20 與 Visa / Mastercard / Amex(透過 Stripe),統一以美元結算。實際可用的付款管道以後端回傳資訊為準。