找到下一步怎麼做

先查看這裡,再聯絡我們

交付狀態看訂單,連線問題查連接埠,建置問題先保留記錄檔。搜尋關鍵字,找到可立即執行的檢查步驟。

輸入關鍵字查看相關項目;搜尋後按 Enter,跳至第一個答案。

已有機器的問題,請在同一張工單中補充資訊,方便持續追蹤處理。

先選擇問題發生的階段

四類問題分開處理。先確認機器可連線,再檢查工具鏈與簽署設定,避免把網路問題誤判為建置失敗。

01 / 交付

啟動與交付

付款後如何查看進度、在哪裡取得登入資訊,以及如何確認狀態與連線資訊。

查看交付流程
02 / 連線

遠端連線

SSH 逾時、公鑰遭拒、桌面連線失敗,依不同錯誤分別檢查。

排查連線錯誤
03 / 建置

Xcode 與簽署

從 archive 記錄檔到描述檔比對,先區分編譯、封存與匯出階段。

排查建置與簽署
04 / 帳單

計費與續租

確認日、週、月、季的目錄價格,查看續租入口與付款狀態。

確認計費方式
先完成機器交付

交付進度以訂單狀態為準

付款、訂單處理與機器交付是不同階段。付款完成後,請先查看訂單,不要只憑付款頁面判斷機器已可連線。

  1. 01

    確認付款結果

    前往控制台確認訂單編號、機型、租期與付款狀態。已提交鏈上轉帳或信用卡付款,不代表訂單狀態已更新完成。

  2. 02

    查看交付狀態

    開啟對應訂單或執行個體的詳細資料,查看目前處理進度。實際交付時間與可用狀態,請以控制台即時顯示為準。

  3. 03

    取得連線資訊

    交付後,請在執行個體詳細資料中查看主機位址、使用者名稱、SSH 連接埠及首次登入資訊。請依該執行個體顯示的欄位連線,不要套用其他訂單的參數。

已付款,為什麼還看不到連線資訊?

請先確認查看的是本次付款對應的訂單,再核對控制台中的付款狀態。若付款已確認但執行個體仍在處理中,請在工單中提供訂單編號、付款方式、付款憑證編號及目前狀態,方便支援人員查核交付進度。

以 USDT-TRC20 付款,請保留交易雜湊;以信用卡付款,請保留付款記錄編號。請勿提供完整卡號、安全碼或控制台密碼,也不要為同一筆付款重複建立新訂單。

SSH 逾時與公鑰遭拒,應分別檢查哪些項目?

連線逾時:先確認執行個體已交付且可連線,再逐字核對主機位址與連接埠,並檢查本機網路、Proxy 及存取規則。逾時發生在驗證之前,反覆更換公鑰通常無法解決網路路徑問題。

Permission denied (publickey):確認使用者名稱、使用的私鑰,以及控制台登記的公鑰是否相符。上傳的是公鑰檔案內容;私鑰請留在本機,勿傳給支援人員。以下 HOST、PORT、USER 請替換為執行個體詳細資料中的實際值。

ssh -vv -o IdentitiesOnly=yes \
  -i ~/.ssh/id_ed25519 \
  -p PORT USER@HOST

提交診斷輸出前,請刪除主機位址、個人路徑等敏感資訊;保留錯誤類型與驗證階段。主機指紋變更時,先確認是否剛重新安裝系統,請勿直接略過指紋驗證。

SSH 可以連線,但遠端桌面無法開啟,接下來該怎麼做?

先核對執行個體詳細資料中的桌面連線資訊,確認連線的是同一台機器。遠端桌面與 SSH 使用不同的連線通道;SSH 成功只表示 SSH 路徑可連通。

依照連線說明檢查桌面服務、存取連接埠與通道目標;遇到黑畫面時,記錄用戶端提示與發生步驟,再嘗試降低解析度或畫質,以判斷是顯示問題還是驗證失敗。若要重新啟動,請先停止正在執行的封存或測試工作。

連線設定與遷移順序請參閱 SSH 與遠端連線說明。登入後,請從執行個體詳細資料進入桌面。

先找出第一個真正的錯誤

archive 失敗,別急著全部清掉

先保留失敗時的狀況,再檢查 Xcode、Scheme、相依項目與目標平台。記錄檔最後的失敗摘要只是結果,第一個編譯或簽署錯誤才是排查起點。

archive 發生錯誤,該依什麼順序排查?

先記下目前的提交版本、建置指令與 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。若封存成功但匯出失敗,請改查簽署與描述檔,不要重新處理所有編譯相依項目。

什麼時候應該處理 DerivedData?

切換工具鏈後出現模組快取不相容、產生的檔案不一致,或同一個提交版本在乾淨環境可通過、舊快取環境卻失敗時,再確認是否與快取有關。先停止該專案的建置並保存記錄檔;不要把整個使用者目錄都當成清理目標。

較安全的驗證方式,是為這次建置指定新的專案專用目錄。保留舊目錄以便回頭檢查;若新目錄仍然失敗,就繼續追查原始碼、相依項目或設定,而不是反覆清除快取。

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。不要一直沿用另一台機器的模擬器裝置識別碼。

簽署憑證分開交接

憑證、描述檔、API Key 各有用途

.p12 提供憑證與私鑰,描述檔限制 App 與功能,API Key 則用於授權相關介面。三者不能互相取代。

匯入 .p12 後,為什麼 CI 還是找不到簽署身分?

透過安全通道將 .p12 傳到機器,匯入建置使用的鑰匙圈,並確認檔案內含配對的私鑰。只有憑證而沒有私鑰,無法完成程式碼簽署。匯入密碼請透過 CI 的秘密變數提供,不要寫入儲存庫、命令稿或工單。

security find-identity -v -p codesigning

請在實際執行 runner 的使用者環境中執行檢查。桌面使用者看得到憑證,不代表另一個服務使用者也看得到。也請確認鑰匙圈已解鎖、列在該使用者的搜尋清單中,且簽署程序具有存取權限。

建置時使用獨立的鑰匙圈,工作結束後依流程上鎖。如需協助,僅提供已去除敏感資訊的身分檢查結果與錯誤文字;不要傳送 .p12、私鑰或匯入密碼。

封存成功,但匯出 IPA 時顯示描述檔不相符?

請確認四項設定一致:Bundle ID、Team ID、匯出用途與 entitlements。含有延伸功能的 App,每個需要簽署的 Target 都必須有對應設定;主 App 相符,不代表延伸功能也相符。

接著確認描述檔仍有效、包含目前使用的憑證,而且匯出選項中的簽署方式與專案一致。開發測試與發布散布使用的設定不同,請勿只憑相似的檔名選擇。

保留匯出階段記錄檔與已去除敏感資訊的 ExportOptions.plist 副本。提交工單時,請註明失敗發生在 archive 還是 exportArchive,方便快速縮小排查範圍。

App Store Connect API Key 應該如何存放?

請將 .p8 檔案存放在存取受限的目錄,並透過 CI 秘密變數提供 Key ID、Issuer ID 與檔案路徑。使用符合上傳或自動化工作所需的權限,避免將金鑰內容直接寫入 lane 或提交至儲存庫。

API Key 可用於支援此驗證方式的上傳與管理流程,但不能取代本機程式碼簽署所需的憑證私鑰。若上傳 TestFlight 失敗,先區分是本機產物簽署錯誤,還是介面驗證、App 權限或版本資訊錯誤。

輪替金鑰後,請同步更新 runner 設定並移除舊的引用。如需支援,請提供已去除敏感資訊的錯誤代碼與執行階段,不要傳送 .p8 檔案。

Fastlane match 在新機器上執行前,應先確認什麼?

確認簽署儲存庫的讀取權限、解密密碼、散布類型、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 無法運作」。

分開確認租期與付款

四種週期,依目錄價格計費

日、週、月、季各有定價,不要直接以日價換算其他週期。兩種機型皆為獨享實體機,不是虛擬機;實際訂單金額以結帳明細為準。

基本機型目錄價格,單位:美元(USD)
機型與規格日週月季
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 處理,工單與電子郵件都不需要完整卡號或安全碼。

提供當時的狀況

提交工單前,確認這四項

能重現的步驟,比只說「打包失敗」更有幫助。若有工作正在執行,請先保存現況,再重新啟動或變更設定。

  • 已保存現況後再嘗試重新啟動

    先停止建置與測試,保存記錄檔和未提交的檔案,再重新啟動機器。記下重新啟動前後的狀況;若目前工作不適合中斷,請在工單中註明尚未重新啟動及原因。

  • 已確認 SSH 連接埠與公鑰

    對照目前的執行個體資訊,核對主機、使用者名稱、連接埠與金鑰配對。請提供具體錯誤文字,不要上傳私鑰或傳送首次登入密碼。

  • 已附上記錄檔最後 50 行

    附上最後 50 行及第一個相關錯誤的上下文,並註明指令、Xcode 版本與提交識別碼。記錄檔較長時,請透過控制台工單附加檔案,並先移除權杖與簽署密鑰。

  • 已註明節點與訂單編號

    請寫明訂單編號、節點、問題發生時間與時區、預期結果及實際結果。補充最近一次正常運作的情況,避免支援人員反覆確認基本資訊。

擷取記錄檔最後幾行,不會變更建置產物:

tail -n 50 archive.log

支援資料中請勿包含憑證私鑰、.p12 密碼、.p8 檔案、存取權杖或控制台密碼。

問題還沒解決?把排查結果告訴我們

已有訂單或機器故障,請登入控制台提交工單。售前諮詢、無法登入或需要補充聯絡資訊,請寄信至 support@osxbuild.com。

支援團隊會配合亞太與美西時區處理。回覆進度請透過工單紀錄或電子郵件追蹤;提交時請註明你的時區與方便配合排查的時段,並在原工單中補充最新結果。

聯絡頁面說明了不同類型的諮詢需要準備哪些資訊。機器全年 365 天持續運作,工單回覆時段與節點運作時間是兩回事。