啟動與交付
付款後如何查看進度、在哪裡取得登入資訊,以及如何確認狀態與連線資訊。
查看交付流程付款、訂單處理與機器交付是不同階段。付款完成後,請先查看訂單,不要只憑付款頁面判斷機器已可連線。
前往控制台確認訂單編號、機型、租期與付款狀態。已提交鏈上轉帳或信用卡付款,不代表訂單狀態已更新完成。
開啟對應訂單或執行個體的詳細資料,查看目前處理進度。實際交付時間與可用狀態,請以控制台即時顯示為準。
交付後,請在執行個體詳細資料中查看主機位址、使用者名稱、SSH 連接埠及首次登入資訊。請依該執行個體顯示的欄位連線,不要套用其他訂單的參數。
請先確認查看的是本次付款對應的訂單,再核對控制台中的付款狀態。若付款已確認但執行個體仍在處理中,請在工單中提供訂單編號、付款方式、付款憑證編號及目前狀態,方便支援人員查核交付進度。
以 USDT-TRC20 付款,請保留交易雜湊;以信用卡付款,請保留付款記錄編號。請勿提供完整卡號、安全碼或控制台密碼,也不要為同一筆付款重複建立新訂單。
連線逾時:先確認執行個體已交付且可連線,再逐字核對主機位址與連接埠,並檢查本機網路、Proxy 及存取規則。逾時發生在驗證之前,反覆更換公鑰通常無法解決網路路徑問題。
Permission denied (publickey):確認使用者名稱、使用的私鑰,以及控制台登記的公鑰是否相符。上傳的是公鑰檔案內容;私鑰請留在本機,勿傳給支援人員。以下 HOST、PORT、USER 請替換為執行個體詳細資料中的實際值。
ssh -vv -o IdentitiesOnly=yes \
-i ~/.ssh/id_ed25519 \
-p PORT USER@HOST
提交診斷輸出前,請刪除主機位址、個人路徑等敏感資訊;保留錯誤類型與驗證階段。主機指紋變更時,先確認是否剛重新安裝系統,請勿直接略過指紋驗證。
先核對執行個體詳細資料中的桌面連線資訊,確認連線的是同一台機器。遠端桌面與 SSH 使用不同的連線通道;SSH 成功只表示 SSH 路徑可連通。
依照連線說明檢查桌面服務、存取連接埠與通道目標;遇到黑畫面時,記錄用戶端提示與發生步驟,再嘗試降低解析度或畫質,以判斷是顯示問題還是驗證失敗。若要重新啟動,請先停止正在執行的封存或測試工作。
連線設定與遷移順序請參閱 SSH 與遠端連線說明。登入後,請從執行個體詳細資料進入桌面。
先保留失敗時的狀況,再檢查 Xcode、Scheme、相依項目與目標平台。記錄檔最後的失敗摘要只是結果,第一個編譯或簽署錯誤才是排查起點。
先記下目前的提交版本、建置指令與 Xcode 版本,確認 Scheme 存在且適用於封存。命令列工作也要檢查選用的開發工具目錄,避免桌面開啟一個版本,CI 實際呼叫另一個版本。
xcode-select -p
xcodebuild -version
xcodebuild -list -workspace App.xcworkspace
請將 App.xcworkspace 和 App 換成專案的實際名稱。使用 workspace 的專案不要誤用 project;相依項目未還原、共享 Scheme 未提交,或部署目標與 SDK 不相容,都可能導致封存前就失敗。
set -o pipefail
xcodebuild \
-workspace App.xcworkspace \
-scheme App \
-destination 'generic/platform=iOS' \
-archivePath "$PWD/output/App.xcarchive" \
archive 2>&1 | tee archive.log
這一步產生的是 .xcarchive,不是可供散布的 IPA。若封存成功但匯出失敗,請改查簽署與描述檔,不要重新處理所有編譯相依項目。
切換工具鏈後出現模組快取不相容、產生的檔案不一致,或同一個提交版本在乾淨環境可通過、舊快取環境卻失敗時,再確認是否與快取有關。先停止該專案的建置並保存記錄檔;不要把整個使用者目錄都當成清理目標。
較安全的驗證方式,是為這次建置指定新的專案專用目錄。保留舊目錄以便回頭檢查;若新目錄仍然失敗,就繼續追查原始碼、相依項目或設定,而不是反覆清除快取。
xcodebuild \
-workspace App.xcworkspace \
-scheme App \
-derivedDataPath "$PWD/.build/DerivedData-check" \
-destination 'generic/platform=iOS' \
build
建置恢復後,再依專案情況清理確認不再需要的舊目錄。將原始碼、簽署檔案、封存產物與 DerivedData 分開存放,可降低誤刪風險。
先確認工作內容是裝置封存還是模擬器測試。裝置 archive 要使用 iOS 裝置目標;模擬器測試則需要目前 Xcode 支援的執行環境與裝置。請勿以模擬器目標取代散布用的封存目標。
xcrun simctl list runtimes
xcrun simctl list devices available
xcodebuild -showdestinations \
-workspace App.xcworkspace -scheme App
若缺少執行環境,請在 Xcode 設定中安裝對應的平台元件;支援此指令的 Xcode 版本也可使用下方方式下載 iOS 平台元件。先確認可用磁碟空間,並確保命令列選用的 Xcode 是預計使用的版本。
xcodebuild -downloadPlatform iOS
安裝後重新列出 destinations,再將實際可用的目標設定到 CI。不要一直沿用另一台機器的模擬器裝置識別碼。
.p12 提供憑證與私鑰,描述檔限制 App 與功能,API Key 則用於授權相關介面。三者不能互相取代。
透過安全通道將 .p12 傳到機器,匯入建置使用的鑰匙圈,並確認檔案內含配對的私鑰。只有憑證而沒有私鑰,無法完成程式碼簽署。匯入密碼請透過 CI 的秘密變數提供,不要寫入儲存庫、命令稿或工單。
security find-identity -v -p codesigning
請在實際執行 runner 的使用者環境中執行檢查。桌面使用者看得到憑證,不代表另一個服務使用者也看得到。也請確認鑰匙圈已解鎖、列在該使用者的搜尋清單中,且簽署程序具有存取權限。
建置時使用獨立的鑰匙圈,工作結束後依流程上鎖。如需協助,僅提供已去除敏感資訊的身分檢查結果與錯誤文字;不要傳送 .p12、私鑰或匯入密碼。
請確認四項設定一致:Bundle ID、Team ID、匯出用途與 entitlements。含有延伸功能的 App,每個需要簽署的 Target 都必須有對應設定;主 App 相符,不代表延伸功能也相符。
接著確認描述檔仍有效、包含目前使用的憑證,而且匯出選項中的簽署方式與專案一致。開發測試與發布散布使用的設定不同,請勿只憑相似的檔名選擇。
保留匯出階段記錄檔與已去除敏感資訊的 ExportOptions.plist 副本。提交工單時,請註明失敗發生在 archive 還是 exportArchive,方便快速縮小排查範圍。
請將 .p8 檔案存放在存取受限的目錄,並透過 CI 秘密變數提供 Key ID、Issuer ID 與檔案路徑。使用符合上傳或自動化工作所需的權限,避免將金鑰內容直接寫入 lane 或提交至儲存庫。
API Key 可用於支援此驗證方式的上傳與管理流程,但不能取代本機程式碼簽署所需的憑證私鑰。若上傳 TestFlight 失敗,先區分是本機產物簽署錯誤,還是介面驗證、App 權限或版本資訊錯誤。
輪替金鑰後,請同步更新 runner 設定並移除舊的引用。如需支援,請提供已去除敏感資訊的錯誤代碼與執行階段,不要傳送 .p8 檔案。
確認簽署儲存庫的讀取權限、解密密碼、散布類型、App 識別碼與團隊設定。日常 CI 優先以唯讀方式取得已備妥的簽署憑證,避免每次執行都嘗試建立或修改憑證。
lane :prepare_signing do
match(
type: "appstore",
readonly: true,
app_identifier: ENV.fetch("APP_IDENTIFIER"),
team_id: ENV.fetch("TEAM_ID")
)
end
儲存庫存取憑證與解密密碼請分開管理。讀取失敗,先檢查儲存庫驗證;解密失敗,檢查密碼;安裝成功但簽署失敗,再檢查鑰匙圈與描述檔。不要把這三種故障都歸為「match 無法運作」。
日、週、月、季各有定價,不要直接以日價換算其他週期。兩種機型皆為獨享實體機,不是虛擬機;實際訂單金額以結帳明細為準。
| 機型與規格 | 日 | 週 | 月 | 季 |
|---|---|---|---|---|
| OSXBuild Bake M4 M4 / 16GB / 256GB | $20.1 | $54.2 | $100.3 | $272.8 |
| OSXBuild Bake M4 Pro M4 Pro / 64GB / 2TB | $60.3 | $162.9 | $301.6 | $820.4 |
依預計連續使用機器的時間選擇週期,再確認同一週期的機型價格與加購項目。週期的確切起訖時間以訂單顯示為準;「月」不等於當月剩餘天數。
加購 SSD 與 Thunderbolt 5 並聯各有四種週期的目錄價格。請先在設定器選好需要的項目,再查看結帳明細;不要只看基本機型價格就判斷最終帳單。完整價目與選型建議請參閱 租用方案與加購選項。
登入控制台,進入對應的訂閱或訂單,查看到期時間、可用的續租選項與帳單。付款完成後,請再次確認新的到期時間;不要只因付款頁面已開啟或付款已提交,就認定續租已生效。
是否啟用自動續租、是否有待付款帳單,請以該訂單的設定與狀態為準。若要繼續使用機器,請提前完成續租並確認結果。若要結束租用,請提前匯出原始碼、產物與必要設定。
租期結束後,機器會進入回收流程,磁碟將安全清除並重新安裝系統。請勿將節點當作唯一備份,也不要等到到期後才取回本機檔案。
僅支援 USDT-TRC20 與 Visa / Mastercard / Amex(透過 Stripe),全部以美元(USD)結算。實際可用的付款閘道以後端介面回傳為準。
以 USDT-TRC20 付款時,請逐項確認結帳頁面的網路、收款地址與金額,不要沿用舊訂單的付款資訊。以信用卡付款時,請依閘道提示完成驗證,再返回控制台確認狀態。
付款異常時,請提供訂單編號、所選付款方式、已去除敏感資訊的提示內容與交易編號。信用卡由 Stripe 處理,工單與電子郵件都不需要完整卡號或安全碼。
能重現的步驟,比只說「打包失敗」更有幫助。若有工作正在執行,請先保存現況,再重新啟動或變更設定。
先停止建置與測試,保存記錄檔和未提交的檔案,再重新啟動機器。記下重新啟動前後的狀況;若目前工作不適合中斷,請在工單中註明尚未重新啟動及原因。
對照目前的執行個體資訊,核對主機、使用者名稱、連接埠與金鑰配對。請提供具體錯誤文字,不要上傳私鑰或傳送首次登入密碼。
附上最後 50 行及第一個相關錯誤的上下文,並註明指令、Xcode 版本與提交識別碼。記錄檔較長時,請透過控制台工單附加檔案,並先移除權杖與簽署密鑰。
請寫明訂單編號、節點、問題發生時間與時區、預期結果及實際結果。補充最近一次正常運作的情況,避免支援人員反覆確認基本資訊。
擷取記錄檔最後幾行,不會變更建置產物:
tail -n 50 archive.log
支援資料中請勿包含憑證私鑰、.p12 密碼、.p8 檔案、存取權杖或控制台密碼。
已有訂單或機器故障,請登入控制台提交工單。售前諮詢、無法登入或需要補充聯絡資訊,請寄信至 support@osxbuild.com。
支援團隊會配合亞太與美西時區處理。回覆進度請透過工單紀錄或電子郵件追蹤;提交時請註明你的時區與方便配合排查的時段,並在原工單中補充最新結果。
聯絡頁面說明了不同類型的諮詢需要準備哪些資訊。機器全年 365 天持續運作,工單回覆時段與節點運作時間是兩回事。