檢查版本與相依套件
執行 xcodebuild -version 和 xcode-select -p。在 Xcode 設定中確認命令列工具的選擇,並確認專案所需的 SDK 和目標系統版本範圍。
如果專案使用 CocoaPods、Swift Package Manager 或其他相依性管理工具,請先依照專案說明還原相依套件。發生錯誤後,不要一次升級所有工具。
大多數使用問題都能透過瀏覽器遠端桌面或 SSH 自行排查。需要圖形介面操作時進入桌面,需要檢查建置輸出時使用命令列;先確認連線,再處理工具鏈、簽署和檔案。
已開通主機:登入後可在執行個體詳細資料中查看連線資訊。本文不提供通用主機位址或密碼。
使用瀏覽器桌面不必安裝遠端桌面用戶端。Windows 的 SSH 則是備用連線方式:桌面顯示異常時,也能用來確認主機是否仍可連線。兩種方式都以控制台目前顯示的位址、連接埠和帳號為準。
登入控制台,找到已開通的訂單和執行個體。確認機型、節點、到期時間和目前狀態;若已付款但仍在開通中,請先查看頁面提示,不要重複購買相同方案。
在執行個體詳細資料中使用遠端桌面操作入口。等 macOS 畫面出現後,再點選桌面區域並輸入。請勿將連線頁面網址、密碼或含有敏感資訊的截圖轉發給他人。
依序測試滑鼠點擊、一般英文輸入和視窗切換。開啟 Finder 確認檔案是否顯示,再開啟終端機檢查工具鏈。中文輸入異常時,先分辨是本機輸入法還是遠端輸入來源的問題,不要直接重裝系統。
在 Windows PowerShell 中執行下方命令,依提示輸入執行個體詳細資料提供的使用者名稱、主機和連接埠。首次連線時請驗證主機指紋;輸入密碼時畫面不會顯示字元,這是正常現象。
在 Windows PowerShell 中逐一輸入連線參數。這些變數會使用你輸入的值,並非可直接使用的連線憑證。
$MacUser = Read-Host "輸入執行個體使用者名稱"
$MacHost = Read-Host "輸入執行個體主機"
$MacPort = Read-Host "輸入 SSH 連接埠"
ssh -p $MacPort "$MacUser@$MacHost"
若連線逾時,先確認網路、主機和連接埠;若驗證失敗,先確認使用者名稱和驗證方式。主機指紋變更時,先確認是否曾重裝系統,未確認前不要刪除舊記錄。
SSH 連線成功不代表專案已設定完成。先檢查 Xcode 路徑和版本,再進入專案目錄執行封存;上傳步驟須以已設定的 fastlane lane、簽署資料和發佈權限為前提。
右側為工作流程示意,不是主機效能實測,也不表示所有專案都能直接照用。主機名稱僅供示意;實際連線請使用上一節的互動式命令。
App 是範例 scheme。執行封存前,請先將相應參數替換為專案使用的 workspace、project 和 scheme。若尚未安裝相依套件,請先處理相依性錯誤。
fastlane beta 僅適用於已有 beta lane 的專案。看到封存成功後,請再確認發佈端的實際處理狀態;命令開始執行不代表上傳已完成。
$ ssh developer@your-mac-host
$ xcode-select -p
/Applications/Xcode.app/Contents/Developer
$ xcodebuild -version
$ cd ~/Projects/App
$ xcodebuild -scheme App archive
** ARCHIVE SUCCEEDED **
$ fastlane beta
Successfully uploaded package to TestFlight
保留完整執行命令、第一個錯誤和最後的錯誤摘要。只截取「建置失敗」四個字,通常不足以找出問題。
macOS 圖形介面與命令列都能正常使用。首次開啟專案時,請先檢查工具鏈,再設定簽署。系統中有哪些 Xcode 版本、目前選用哪個版本,應以執行個體內的實際檢查結果為準。
執行 xcodebuild -version 和 xcode-select -p。在 Xcode 設定中確認命令列工具的選擇,並確認專案所需的 SDK 和目標系統版本範圍。
如果專案使用 CocoaPods、Swift Package Manager 或其他相依性管理工具,請先依照專案說明還原相依套件。發生錯誤後,不要一次升級所有工具。
透過受控的傳輸方式將憑證傳到執行個體,再使用「鑰匙圈存取」匯入所需的憑證和私鑰。受密碼保護的檔案,應透過不同管道保管密碼。
只有憑證而沒有相對應的私鑰,就無法使用該身分完成簽署。請勿將私鑰或憑證密碼寫入程式碼儲存庫、命令歷史記錄或公開的支援單附件。
匯入專案所需的描述檔,確認 Bundle Identifier、團隊識別碼、有效期限和發佈類型都符合目標,再檢查各個 target 的簽署設定。
首次嘗試時,建議先在圖形介面完成一次可重現的封存。確認設定無誤後,再將相同參數移至指令碼或 CI,避免圖形介面和命令列的設定不一致。
| 錯誤或狀況 | 優先檢查 | 下一步 |
|---|---|---|
| No signing certificate | 目前的鑰匙圈是否有必要的簽署身分,以及憑證是否附有相對應的私鑰。 | 重新確認匯入的資料和有效期限;不要只是不斷下載同一張憑證。 |
| No profiles for… | 描述檔的 App 識別碼、團隊和發佈類型是否符合目前的 target。 | 匯入相符的描述檔,並檢查專案的簽署選項。 |
| User interaction is not allowed | 執行建置的使用者、鑰匙圈是否鎖定,以及簽署工具的存取權限。 | 在桌面確認鑰匙圈已解鎖並授予存取權限,再以相同使用者重試。 |
| SDK 或目標版本不相容 | 目前選用的 Xcode 路徑、已安裝的 SDK,以及專案的最低部署目標。 | 選擇相容的工具鏈;升級前先確認專案相依套件,不要盲目覆蓋環境。 |
原始碼、簽署資料和建置產物請分開存放。先在遠端建立專案目錄,再傳送檔案;取回 IPA 後確認檔案大小和校驗值,不要只憑檔名判斷傳輸是否完成。
如果已有程式碼儲存庫,請在執行個體內依團隊的驗證方式擷取專案,不要將存取權杖寫入共用指令碼。只有本機目錄時,可使用 Windows OpenSSH 的 scp或支援 SFTP 的工具上傳。
先在遠端終端機執行 mkdir -p ~/Projects。下方的 PowerShell 命令會沿用首次連線時輸入的三個變數,並提示你輸入本機專案路徑。
$ProjectPath = Read-Host "輸入本機專案目錄"
scp -P $MacPort -r "$ProjectPath" "${MacUser}@${MacHost}:~/Projects/"
注意:ssh 指定連接埠時使用小寫 -p,scp 則使用大寫 -P。上傳前請確認目標目錄,避免新專案與舊相依套件混在一起。
Archive 和匯出的 IPA 是不同檔案。先完成專案所需的匯出流程,再於 macOS 終端機使用 ls -lh 確認 IPA 的實際路徑。
在下方命令中輸入遠端 IPA 的絕對路徑,以及本機已存在的儲存目錄。路徑含有空格時,請保留引號;下載完成後再檢查檔案。
$IpaPath = Read-Host "輸入遠端 IPA 絕對路徑"
$SavePath = Read-Host "輸入本機儲存目錄"
scp -P $MacPort "${MacUser}@${MacHost}:$IpaPath" "$SavePath"
如需校驗,請在 Mac 上執行 shasum -a 256,並在 Windows 上執行 Get-FileHash -Algorithm SHA256,再比較同一檔案的結果。
先記錄問題發生時正在進行的操作,再嘗試可復原的處理方式。黑畫面、輸入錯位和空間不足都不代表需要重裝;重裝會影響現有環境,不應作為第一步排查方式。
先確認執行個體目前可連線,再關閉舊的連線分頁,從執行個體詳細資料重新進入。檢查本機網路是否限制長時間連線;可改用其他網路或瀏覽器工作階段交叉確認。
如果 SSH 可以連線,請記錄「桌面異常但命令列正常」這項資訊;先儲存正在執行的工作,不要連續重新啟動。如果兩種方式都無法連線,請附上執行個體狀態、錯誤訊息和發生時間,再提交支援單。
先點選遠端可輸入的區域,切換至英文輸入,測試字母、數字和標點符號。確認 macOS 輸入來源和 Windows 鍵盤配置;本機輸入法攔截和遠端配置錯誤必須分開判斷。
Windows 和 macOS 的輔助鍵使用習慣不同,部分組合鍵也可能被本機瀏覽器攔截。請先透過應用程式選單執行相同操作,再檢查按鍵對應;確認焦點所在位置前,請勿輸入密碼。
在 macOS 終端機執行 df -h,先確認是哪個磁碟區空間不足。檢查舊的 Archive、匯出檔案、模擬器資料和專案快取;清理前請先確認檔案不再需要,切勿將憑證、原始碼或唯一備份當成快取刪除。
確實需要更多容量時,可查看 +1TB SSD 或 +2TB SSD 加購項目。擴充容量是否已掛載、掛載位置,以及專案是否使用新增空間,都要在操作後確認;不能只看到加購紀錄,就認定目前磁碟區已擴大。
逐一確認執行個體使用者名稱、連接埠和目前的驗證方式,並確認沒有多複製空格。使用金鑰時,請確認指定的私鑰檔案和檔案權限;不要將私鑰內容貼到支援單內文。
重裝後連線資訊可能會變更,請重新查看執行個體詳細資料。記錄原始錯誤訊息;驗證失敗和連線逾時是不同問題,提交支援單時不要只寫「SSH 連不上」。
節點全年 365 天正常運作,租用權限仍以訂單期間為準。開始長時間工作前,請先確認控制台顯示的到期時間,不要等到最後一次建置開始後才處理續租。
登入控制台,在訂單或執行個體詳細資料中確認目前租期和到期時間。跨時區工作時,請依頁面顯示的時間和時區確認,不要自行將入帳時間當成到期時間。
原始碼、簽署資料、環境設定和建置產物都應各自備份。不要將到期後的主機當成長期檔案儲存空間。
查看我的訂單提供日、週、月、季四種計費週期,價格一律以美元結算。請先在控制台確認目前訂單可用的續租選項和報價,再依工作時長選擇。
僅支援 USDT-TRC20 和 Visa / Mastercard / Amex(透過 Stripe)付款,實際可用的付款閘道以後端介面回傳為準。
查看所有價格重裝是重新準備環境,不是保留現有檔案的修復方式。請先停止建置、取回專案、憑證和建置產物,再記錄工具版本、相依套件和啟動指令碼。
在執行個體詳細資料中確認目前可用的系統操作。確認目標執行個體和風險提示後再繼續;操作完成後,重新確認連線資料和工具鏈。
管理我的執行個體已下單的技術問題,請優先登入控制台提交支援單,讓問題連結到相應的執行個體。售前、帳單或無法登入的問題,可寄信至 support@osxmesh.com 聯絡我們;請勿傳送密碼、私鑰、完整卡號或憑證密碼。
附上訂單編號或執行個體識別碼、機型和節點。節點包括新加坡、東京、首爾、香港;機型為 Mesh M4 或 Mesh M4 Pro。請勿只寫「我的 Mac」。
註明發生時間和時區、預期結果、實際結果,以及最近一次正常操作。附上可重現問題的最短步驟,並說明問題是持續發生還是偶爾出現。
連線問題請附上瀏覽器和系統版本、錯誤截圖,以及 SSH 是否可用;建置問題請附上工具版本、執行命令和第一個錯誤。上傳截圖和記錄前,請先遮蔽敏感資訊。