Apple Silicon 相容性
確認依賴是否提供 arm64 版本,重點檢查二進位工具、容器映像、原生擴充功能與舊版腳本。若專案來自 Intel 環境,請先列出必須替換或重新編譯的元件。
file ./your-binary確認目標架構這份入門指南適合第一次使用 Oakmini 的開發者與 CI/CD 工程師。你將選擇一台獨享 Mac mini 實體節點,透過 SSH 或 VNC 連線,還原 Apple Silicon 工具鏈,完成一次可重現建置,並將 self-hosted runner 接入現有流程。
$ uname -m
arm64
$ sw_vers -productVersion
macOS ready
$ system_profiler SPHardwareDataType
Chip: Apple M4
$ xcodebuild -version
Xcode toolchain detected
$ git --version
git ready
✓ 已記錄環境基線
先釐清相容性、區域、週期與權限,可避免連線後才發現依賴架構不符、磁碟空間不足或流程缺少儲存庫權限。建議將以下結果保存在專案的遷移紀錄中。
確認依賴是否提供 arm64 版本,重點檢查二進位工具、容器映像、原生擴充功能與舊版腳本。若專案來自 Intel 環境,請先列出必須替換或重新編譯的元件。
file ./your-binary確認目標架構可在新加坡、日本(東京)、韓國(首爾)、香港、美國西部中選擇。互動式 VNC 優先選靠近主要操作者的區域;無人值守建置則優先考量程式碼來源、產物儲存與協作團隊的位置。
ping / traceroute從實際辦公網路測量按日適合短期驗證,按週適合遷移衝刺,按月或按季適合持續開發與常駐 runner。先估算準備、建置、驗收與產物匯出的完整時間,不要只計算單次工作耗時。
day / week / month / quarter訂單週期不可混用分別估算儲存庫、依賴快取、模擬器資料、封存檔與匯出產物的容量。建置目錄應保留餘裕,避免依賴解析或封存階段因磁碟空間耗盡而中斷。長期工作還需定義快取清理策略。
df -h連線後再次核對命令列工作需準備 SSH 用戶端與金鑰;需要 macOS 圖形介面時則準備 VNC 用戶端。確認本地網路允許對應連線,並記錄公司防火牆、Proxy 或 VPN 對連線路徑的影響。
ssh -V先驗證本地用戶端確認程式碼儲存庫讀取、依賴來源存取、CI runner 註冊、建置簽章材料與產物上傳所需的權限。優先使用工作專用憑證,並為自動化流程設定最小必要權限。
read / build / upload逐項標註權限範圍Oak Core 與 Oak Forge 都是獨享 Mac mini 實體節點,並非虛擬機。選擇時請考量記憶體峰值、並行建置數量、工作集大小與產物容量,不要依據模糊的效能倍數判斷。
適合單一專案除錯、依賴驗證、低並行自動化工作與短期遷移檢查。若儲存庫、模擬器與封存檔佔用較大,請在下單時增加儲存空間。
適合多專案並行、較大的依賴圖、高記憶體編譯、Apple Silicon AI 推論實驗,以及需要保留大量快取與建置產物的工作。
| 下單欄位 | 可選內容 | 選擇依據 | 確認結果 |
|---|---|---|---|
| 計費週期 | 日、週、月、季 | 涵蓋環境準備、工作執行、驗收與產物匯出 | 訂單顯示的起訖範圍符合計畫 |
| 節點 | 新加坡、日本(東京)、韓國(首爾)、香港、美國西部 | 互動使用者、程式碼來源與產物目標之間的實際網路路徑 | 區域名稱與基線紀錄一致 |
| 儲存空間擴充 | +1TB SSD 或 +2TB SSD | 儲存庫、依賴快取、工作目錄、封存檔與匯出產物總量 | 預留清理與暫存檔空間 |
| 並聯選項 | Thunderbolt 5 並聯(每台) | 僅在已規劃的多節點工作流程中選擇 | 逐台核對數量與拓撲 |
從入口網站讀取目前主機狀態、位址、連接埠與憑證說明。不要根據舊訂單或本地歷史紀錄猜測參數。命令列工作使用 SSH,需要圖形介面時使用 VNC。
ssh -p <PORT> <USER>@<HOST>
hostname
sw_vers
uname -m
system_profiler SPHardwareDataType
df -h
systemsetup -gettimezone
date
將輸出儲存至遷移紀錄。預期至少能確認主機名稱、macOS 版本、arm64 架構、晶片型號、磁碟容量、時區與目前時間。
主機應處於可連線狀態。若狀態仍在變更,請先等待入口網站更新,不要連續重試憑證。
逐項核對主機位址、連接埠、使用者名稱與連線方式。金鑰檔案只能儲存在受控裝置中。
首次 SSH 連線時記錄指紋;之後若指紋異常變更,請先停止連線,再透過主控台工單核對。
使用 VNC 時,先以適合目前網路的解析度與畫質連線,再檢查鍵盤配置、剪貼簿策略與睡眠設定。
先建立可複查的基礎環境,再安裝專案依賴。不要直接複製舊機器的整個使用者目錄;優先遷移清單、設定與鎖定檔,以減少架構差異與無效快取。
還原軟體清單後執行診斷,檢查安裝前綴與 shell 環境。Apple Silicon 常用路徑應與腳本中的硬編碼路徑一致,或完成替換。
brew bundle check && brew doctor設定提交身分、換行策略與憑證讀取方式。先拉取一個唯讀測試儲存庫,確認網路與權限,再處理正式專案。
git config --list --show-origin根據鎖定檔還原 Ruby、Node.js、Python 或其他執行環境版本。記錄版本管理器、全域工具與專案層級版本,不要依賴「最新版本」這類描述。
ruby -v; node -v; python3 --version確認目前選取的開發者目錄、Xcode 版本、SDK 與命令列工具。多個專案需要不同版本時,請在流程中明確記錄切換步驟。
xcode-select -p; xcodebuild -version使用儲存庫中的鎖定檔還原依賴,保留完整解析記錄。若依賴需要編譯原生擴充功能,請確認輸出架構為 arm64。
file ./path/to/native-extensiondate
hostname
sw_vers
uname -m
xcode-select -p
xcodebuild -version
git --version
brew --version
brew list --versions
ruby -v
node -v
python3 --version
df -h
首次建置的目標不是追求最短耗時,而是確認依賴解析、簽章權限、輸出目錄與記錄都可重現。先以固定提交版本測試,成功後再擴大至完整專案。
拉取指定提交或標籤,確認子模組、私有依賴與大型檔案物件完整。記錄儲存庫提交雜湊,避免測試期間輸入發生變化。
git rev-parse HEAD
使用鎖定檔還原依賴,並將標準輸出與錯誤輸出寫入記錄。遇到架構問題時先定位具體二進位檔,不要反覆清空整個環境。
command 2>&1 | tee dependency.log
確認建置程序能讀取工作所需的簽章材料與設定檔。自動化帳戶只授予對應專案與建置步驟所需的權限。
security find-identity -v -p codesigning
將 DerivedData、封存檔、測試結果與匯出產物放入明確目錄,避免與其他工作共用不受控的暫存路徑。
mkdir -p build logs artifacts
記錄至少應包含提交版本、Xcode 版本、SDK、指令、開始時間、結束時間與結束代碼。敏感欄位在上傳前完成去識別化。
echo "$?" > logs/exit-code.txt
在相同提交與設定下再次執行,確認依賴、路徑與權限不會依賴首次工作階段中的暫時操作。兩次結果都應可解釋、可比較。
./scripts/verify-build.sh
xcodebuild \
-project Example.xcodeproj \
-scheme Example \
-configuration Release \
-derivedDataPath ./build/DerivedData \
build 2>&1 | tee ./logs/first-build.log
指令結束代碼為 0;記錄可定位至固定提交與工具鏈版本;輸出目錄中存在預期產物;再次執行不依賴未記錄的手動操作。
三條路徑可以並行準備,但必須依共同基線匯合:固定儲存庫版本、記錄工具鏈版本、定義 runner 標籤,然後觸發一項可重現的驗證工作。
只遷移可解釋的資料,不搬運無法追溯的歷史狀態。
從清單還原工具,以版本輸出確認結果。
讓調度規則明確套用至這台獨享實體機。
環境能夠執行並不代表已適合長期使用。完成首次建置後,應立即處理初始憑證、金鑰保存、儲存庫範圍與腳本中的敏感資訊。
提交前搜尋常見敏感欄位,檢查 shell 歷史記錄、環境檔案、CI 設定與記錄。發現明文憑證時,應先撤銷並替換,再清理檔案歷史。
限制私鑰檔案權限,刪除不再使用的公開金鑰,並為自動化連線設定可識別的金鑰名稱與用途紀錄。
chmod 600 ~/.ssh/private_key
保留時間、指令、版本、結束代碼與錯誤堆疊;刪除存取權杖、私鑰內容、簽章材料原文及其他可直接用於授權的資訊。
驗收應以可重現結果為依據,而不是「目前工作階段可用」。建議中斷工作階段後重新連線,並從乾淨 shell 再次執行關鍵指令。
主動中斷 SSH 與 VNC,再使用已儲存的正確參數連線。主機指紋、使用者名稱、連接埠與圖形工作階段均符合紀錄。
從鎖定檔還原依賴,指令結束代碼為 0;原生元件架構正確;安裝記錄已儲存且不含敏感資訊。
在固定提交與工具鏈版本下完成建置,輸出目錄明確,第二次執行不依賴未記錄的手動操作。
封存檔、測試結果或其他目標產物可從指定目錄匯出,檔案名稱、版本與核對方式符合團隊約定。
self-hosted runner 狀態為上線,標籤可匹配目標工作,且不會接收未授權專案的工作。
環境基線、依賴記錄、建置記錄、結束代碼與產物路徑均已封存,敏感欄位已完成去識別化。
可在入口網站核對主機狀態、訂單資訊與管理入口。所有節點全年 365 天正常運作,持續提供服務。
進入入口網站查看目前可用節點,選擇 Oak Core 或 Oak Forge、計費週期與儲存空間選項。下單後依本頁步驟完成連線、工具鏈還原與驗收。