今晚的 iOS 建置,交給雲端 Mac

獨享實體主機,非虛擬機。5 個節點,按日/週/月/季計費,$21.1/天起

從一台開始,當天接入建置流程;實際可用狀態與交付資訊以控制台回傳為準。

打包潮汐 · 一次 .ipa 交付scheme App-Prod · Release · 範例耗時 19 分鐘
東京 · ArmRDP M4 Plus
時間 21:04下載程式碼git fetch · main
時間 21:11xcodebuild archiveXcode 16.2 · arm64
時間 21:17codesign 與匯出Distribution · .ipa
時間 21:23上傳至 TestFlightfastlane pilot

範例流程,非即時資料;建置耗時會因專案、相依項目與快取而異

runner · tko-plus-02GitHub Actions self-hosted · 設定範例
閒置示意
Xcode16.2 · 固定版本
macOS15 Sequoia
標籤macOS, xcode-16.2
主機獨享 Mac mini M4
今晚佇列 · 範例3 個 scheme
App-Prodarchive · 21:11 起
建置中
App-Staging等待 runner
排隊中
Widget等待 runner
排隊中
為什麼要用真正的 Mac

先看三項可驗證的重點

iOS 打包機講求穩定、可重現,並隨時可用。登入後先確認硬體、權限與工具鏈,再接入第一條 CI 流程。

獨享實體節點

整台 Mac mini 僅供你使用。CPU、統一記憶體與 SSD 不與其他租戶共用,不切分、不超賣。建置快取留在自己的節點上,不必每次執行工作時重新準備環境。

1 台主機 = 1 位租戶

非虛擬機

Xcode、模擬器與 Metal 都在 macOS 上原生執行。圖形介面和命令列皆可使用,開發工具不必繞過虛擬化裝置限制。你也可以自行查看硬體資訊,確認 Mac mini 型號。

system_profiler SPHardwareDataType

按日租用

先租一天確認相依項目與簽署流程;發佈衝刺可按週租用,常駐 runner 則適合按月或按季租用。各租期價格分別列出,不會把月租換算成日租當作入門價。

M4 Base:$21.1/天 · $57.1/週 · $105.7/月

硬體規格一目了然

三種機型的硬體規格

全部都是 Apple Silicon Mac mini。三種機型在 5 個節點皆有供應;記憶體與 SSD 容量依機型固定,額外工作空間可另行加購。

ID m4-16-256

ArmRDP M4 Base

晶片
M4
統一記憶體
16GB
SSD
256GB
網路連線
SSH / VNC
節點涵蓋
全部 5 個節點

獨享實體節點 · Mac mini

ID m4-24-512

ArmRDP M4 Plus

晶片
M4
統一記憶體
24GB
SSD
512GB
網路連線
SSH / VNC
節點涵蓋
全部 5 個節點

獨享實體節點 · Mac mini

ID m4pro-64-2tb

ArmRDP M4 Pro

晶片
M4 Pro
統一記憶體
64GB
SSD
2TB
網路連線
SSH / VNC
節點涵蓋
全部 5 個節點

獨享實體節點 · Mac mini

可加購 +1TB / +2TB SSD 與 Thunderbolt 5 並聯。下單與開通時,請確認網路規格、工具鏈版本及交付設定。

查看完整規格與加購項目
價格

三種機型,按日租用

統一以美元計價。每張方案卡可獨立切換日、週、月、季;顯示的是所選租期的基礎租金總額,並非換算後的日租價。

ArmRDP M4 Base

M4 · 16GB · 256GB

$21.1/天

先跑通一條 CI 流程

適合單一 scheme 專案與短期測試。先記錄完整建置耗時、快取用量與記憶體峰值,再決定是否擴充常駐資源。

租用 M4 Base

ArmRDP M4 Pro

M4 Pro · 64GB · 2TB

$59.5/天

應付更大的記憶體與工作集

適合大型專案完整建置、模擬器測試與本機模型推論驗證。64GB 統一記憶體與 2TB SSD,為多組相依項目與建置產物預留空間。

租用 M4 Pro

入門價 $21.1/天;+1TB SSD 每天 $3 起。加購項目另計,結帳前請確認機型、租期、節點與總額。

租期與加購項目明細
iOS 建置農場

讓每次打包,都成為可重複的流程

將 1~N 台雲端 Mac 註冊為 GitLab 或 GitHub Actions 的 self-hosted runner。先跑通一條 CI 流程,再將多個 scheme 分配到不同節點。

  1. 01

    先測量一次實際建置

    使用同一個 commit 記錄完整與增量建置耗時,檢查憑證、相依項目下載與 DerivedData 用量。每個 runner 同時執行一項工作,可作為起點。

  2. 02

    註冊並設定標籤

    依 macOS、Xcode 版本與專案用途命名標籤。只有在多台符合標籤的 runner 都可用時,矩陣工作才能跨主機同時執行。

  3. 03

    固定工具鏈後再擴充

    依專案需求選擇 Xcode 版本並長期保留。使用 DEVELOPER_DIR 指定版本,並分別設定封存與快取路徑,避免多項工作互相覆寫。

Xcode 版本號並非確保建置可重現的唯一條件。相依項目鎖定檔、簽署材料、匯出設定與環境變數,也應納入團隊的變更紀錄。

夜間封存工作

GitHub Actions · 設定範例
name: ios-nightly
on:
  workflow_dispatch:
  schedule:
    - cron: "0 13 * * *"
jobs:
  archive:
    runs-on: [self-hosted, macOS, xcode-16.2]
    strategy:
      fail-fast: false
      matrix:
        scheme: [App-Prod, App-Staging, Widget]
    env:
      DEVELOPER_DIR: /Applications/Xcode-16.2.app/Contents/Developer
    steps:
      - uses: actions/checkout@v4
      - name: Archive
        run: |
          xcodebuild archive \
            -workspace App.xcworkspace \
            -scheme "${{ matrix.scheme }}" \
            -configuration Release \
            -archivePath "build/${{ matrix.scheme }}.xcarchive"
      - name: Export
        run: |
          xcodebuild -exportArchive \
            -archivePath "build/${{ matrix.scheme }}.xcarchive" \
            -exportPath "build/export/${{ matrix.scheme }}" \
            -exportOptionsPlist ci/export.plist
時間運算式使用 UTC儲存庫需包含匯出設定與已安裝的簽署材料

請將 workspace、scheme 與 Xcode 路徑替換為自己的專案設定。GitLab 也可透過 runner 標籤分派工作;憑證與密鑰請使用受保護變數或專用鑰匙圈管理,勿存入儲存庫。

節點

5 個節點,選擇最靠近團隊的地點

涵蓋新加坡、日本(東京)、韓國(首爾)、香港與美國西部,三種機型皆適用。請先確認操作人員與儲存庫的位置,再檢查實際連線路徑。

延遲為節點參考區間,並非從你的網路進行的實測結果。SSH 上下載、儲存庫拉取與 VNC 畫面皆會受各自連線影響;美國西部時區會隨夏令時間調整。所有節點全年 365 天運作,實際可用狀態以控制台即時回傳為準。

遠端連線

兩種方式連線至你的 Mac

腳本與 CI 使用 SSH,操作 Xcode 與模擬器則透過 VNC 螢幕共享。先在控制台查看主機位址與登入資訊,再依連線文件設定用戶端。

SSH · 腳本與 runner

可用於安裝相依項目、註冊 runner、查看建置記錄。首次登入後請變更密碼並新增公開金鑰;確認金鑰可用後,再調整驗證設定。

ssh -i ~/.ssh/armrdp admin@<主機地址>

VNC · 圖形介面

可用於檢查 Xcode 設定、鑰匙圈與模擬器。建議透過 SSH 隧道連線,將本機連接埠轉送至主機的螢幕共享服務。

ssh -N -L 5901:localhost:5900 admin@<主機地址>
連線交接指南SSH + VNC

同一台 Mac,兩種工作方式

圖形操作與自動化工作共用同一套專案檔案及工具鏈,不必在兩種環境間複製建置目錄。

命令列
本機終端機 → SSH → runner

安裝相依項目、封存指令、記錄與產物檢查

圖形介面
螢幕共享 → macOS → Xcode

專案設定、模擬器、簽署與介面除錯

建立隧道後的本機連線位址vnc://localhost:5901
連線方式示意圖,並非執行中桌面的截圖。使用者名稱、位址與系統設定以實際交付資訊為準。
從團隊的工作方式開始

你需要的,或許就是這三句話

以三種角色的第一人稱需求,說明如何安排節點。以下為使用情境範例,並非客戶評價或效能統計。

「發佈週我想讓三個 scheme 各自使用獨立的封存路徑。工作能分配給不同 runner,就不必一直盯著同一個佇列。」

iOS 負責人 · 需求範例

「我希望固定 Xcode 版本與相依項目鎖定檔。先用同一個 commit 確認結果,再把這台 Mac 納入正式 CI 流程。」

CI/CD 工程師 · 需求範例

「我會先按日租一台 M4 Base,設定好憑證與 GitLab runner。確認專案實際需要多少資源後,再選擇長期租期。」

獨立開發者 · 需求範例
常見問題

下單前先確認這四件事

查看所有常見問題

這是虛擬機嗎?

不是。交付的是一台獨享實體 Mac mini。租期內,硬體資源不會與其他租戶共用或切分;你可以透過系統資訊確認晶片、記憶體與儲存空間。

可以保留多個 Xcode 版本嗎?

可以依專案需求安裝並保留多個版本。建置腳本可用 DEVELOPER_DIR 指定版本,或使用 xcode-select 切換。安裝前請先確認系統相容性與剩餘磁碟空間。

如何估算需要幾台主機才能平行建置?

先用一台主機執行單一工作,記錄記憶體峰值、封存耗時與磁碟讀寫狀況,再決定增加同一主機的並行工作數,或新增節點。scheme 數量本身無法直接推算完成時間。

如何處理簽署檔案與建置產物?

請將憑證存入專用鑰匙圈,並將敏感變數放入 CI 的受保護設定。封存與匯出產物請同步至團隊自己的儲存空間;租期結束前完成備份,並撤銷不再使用的存取憑證。

付款與結帳

兩種付款方式,統一以美元結算

先確認租期與設定,再核對訂單總額。基礎租金與加購項目分開列出;實際可用的付款閘道以後端介面回傳為準。

USDT-TRC20Visa / Mastercard / Amex 透過 Stripe
  1. 選擇機型、節點與租期
  2. 確認 USD 總額並付款
  3. 在控制台查看訂單與主機登入資訊

使用鏈上付款前,請確認網路與收款資訊;信用卡付款請依閘道頁面操作。付款狀態尚未確認時,請先查看訂單,勿重複建立同一筆付款。

今天下單,今晚打包

M4 Base 每天 $21.1 起。從一個專案、一台 runner 開始,跑通後再擴充你的 iOS 打包農場。

潮汐卡、runner 與佇列展示的是範例流程,並非即時執行資料。下單前請確認控制台上的設定、計費租期與實際交付資訊;建置耗時取決於你的專案、工具鏈與快取。