iOS 打包伺服器硬碟不夠?2026 Xcode 27 清理還是擴容

這篇文章寫給維護遠端 iOS 打包伺服器、近期反覆遇到硬碟告警的獨立開發者與小型團隊。你會按場景分辨可再生快取、模擬器元件、依賴資料與發布產物,再決定清理、擴容或拆分主機。

iOS 打包伺服器硬碟不夠?2026 Xcode 27 清理還是擴容

目錄

Apple 的 Xcode 文件以 derivedDataPath 示範指定建構資料位置,代表建構輸出並不是一個可以不加判斷、整個刪除的單一資料夾。官方 xcodebuild 文件Xcode Build System 說明都指向同一個維護原則:先確認占用來源,再決定回收邊界。

本週建議動作:先停止並記錄所有 Build、Test、Archive 與匯出任務,依「建構快取 → 模擬器 → 依賴快取 → 發布產物」四層盤點;低頻單 App 先建立清理規則,高頻多專案或反覆滿碟才考慮擴容或增加獨立遠端 Mac。 對於「iOS 打包伺服器硬碟不夠」的情況,這比直接全盤刪除更安全。

這篇文章適合哪一種維護者

只有一台遠端 Mac、近期經常收到硬碟告警的獨立開發者,可以用本文建立可回退的清理順序。

如果你同時保留 Xcode 27、多個 Simulator Runtime 和歷史 Archive,本文能協助你畫出保留界線;若你維護多個 App 或自動化發布任務,則可用場景判斷應繼續治理單機、擴容,還是拆分主機。

先按建構場景判斷:不是所有 Xcode 資料都能刪

只做 Release Archive 的打包機,通常不需要長期承擔完整 UI 測試與 SwiftUI Preview 的資料。相反地,必須進行增量編譯、除錯和多版本回歸的開發環境,清理 DerivedData 後會面對重新索引、重新編譯和重新解析依賴的成本。

占用對象 主要用途 清理前必須確認 建議處理
DerivedData 編譯中間資料、索引與建構結果 沒有進行中的 Build、Test、Archive 可按專案或指定路徑清理,保留重新建構能力
Build Products/臨時輸出 Debug 或 Archive 過程產物 產物是否仍被驗收或匯出流程使用 先確認替代產物,再回收舊輸出
Simulator Runtime 指定系統版本的模擬器執行環境 測試矩陣是否仍需要該版本 只保留必要版本,不要把 Runtime 當普通快取
模擬裝置資料 模擬器中的 App 資料與狀態 是否需要重現測試案例 可按裝置與專案處理,不能一律全刪
Package 快取 Swift Package Manager、CocoaPods 或私有依賴資料 能否從鎖定版本與來源重新取得 先驗證冷建構,再刪除不再使用的快取
xcarchive、IPA、dSYM、xcresult 發布、除錯與測試證據 是否已有可驗證的備份或替代來源 先歸檔與驗收,再處理重複產物

Xcode 27 打包機磁碟滿了怎麼清理?
先取得當前任務狀態與占用排行,再以專案為單位處理 DerivedData 和舊的臨時輸出;不要先刪除 Keychain、整個使用者目錄或所有 Xcode 版本。Apple 的 Build Settings Reference說明了建構設定如何影響輸出位置,因此你應以目前 Scheme 和實際設定確認路徑,而不是套用網路上的固定路徑。

第一步:先凍結任務並留下可回復證據

在 SSH、VNC 或管理介面上確認沒有正在執行的 xcodebuild、測試程序、Archive、IPA 匯出或上傳工作。檢查 CI 工作狀態、終端機退出狀態和最近一次建構日誌,並把目前硬碟使用情況、專案名稱、Xcode 版本和分支記錄下來。

清理正在寫入的 DerivedData 或 Archive,可能讓本次建構失敗,也可能留下不完整產物。若無法確認工作是否已停止,先不要刪除,改等任務明確結束。

第二步:先處理可再生的 DerivedData

DerivedData 通常與索引、編譯中間檔和特定專案的建構狀態有關。對只做 Archive 的遠端打包機,你可以先按專案識別未使用的資料夾;對仍需要增量編譯或快速除錯的專案,則應保留最近使用的資料。

DerivedData 能不能在遠端 Mac 上定期清理?
可以,但條件是清理工作不能與 Build、Test 或 Archive 重疊,而且下一次冷建構必須能從原始碼、鎖定依賴和簽名設定重新完成。較穩妥的做法是先列出實際 derivedDataPath,只清理已停止任務所使用的專案路徑,再執行一次完整 Archive 作為驗收。Apple 的 Xcode 建構系統文件可用來核對建構流程與輸出關係。

不要使用「刪除整個 ~/Library/Developer」這種無差別做法;它可能同時影響模擬器、裝置資料、工具鏈和其他專案。

模擬器測試需要保留的不是一個資料夾

Simulator Runtime、已建立的模擬裝置、App 資料、測試結果和截圖,用途並不相同。只做 Archive 的伺服器,通常不必安裝完整測試矩陣;但若你的 CI 需要 UI 測試或多個系統版本回歸,就必須依測試案例保留相應 Runtime。

模擬器執行環境和 Archive 應該保留多久?
不要用固定天數作為唯一規則。Runtime 應保留到對應版本的測試矩陣不再使用;Archive 則保留到發布追溯、重新匯出或崩潰排查已有其他可驗證來源。Apple 明確提醒,模擬器與實體裝置的執行能力並不等同,詳見 模擬器與實體裝置測試說明。因此,刪除模擬器不能替代實體裝置驗證,也不能把通過模擬器測試當成發布保證。

當某個 Runtime 只被歷史測試使用時,先確認測試矩陣、CI 設定和團隊回歸需求,再透過 Xcode 元件管理移除;Apple 的 額外 Xcode 元件管理文件可作為操作依據。

多專案與依賴恢復:清快取之前先證明能重建

多個 App 共用一台伺服器時,Swift Package Manager、CocoaPods、私有套件和多個 Xcode 版本會形成交錯占用。問題不在於快取能否刪除,而在於刪除後是否還能取得相同版本、相同來源和相同建構設定。

場景 磁碟治理優先順序 清理後的最低驗收
單一 App、低頻發布 DerivedData → 舊臨時輸出 → 不再使用的依賴快取 一次乾淨 Archive
多 App、共用依賴 先建立專案與依賴歸屬,再處理重複快取 各主要 App 至少完成一次建構
多個 Xcode 版本 依工具鏈與測試矩陣保留元件 每個仍支援的版本完成指定 Scheme 驗證
持續 UI 測試 保留必要 Runtime、模擬裝置與測試結果 完成一次代表性 UI 測試並保存 xcresult

iOS 打包伺服器哪些檔案可以刪除?
優先考慮已確認不再使用的 DerivedData、重複的 Build Products 和可由鎖定依賴重新取得的快取;不要把 xcarchive、IPA、dSYM、xcresult 和簽名資產視為同一類。Apple 的 調試資訊與符號文件說明指出,符號資料與崩潰分析有關;測試結果文件則說明測試結果是解讀測試狀態的重要證據。

提醒: 如果 Archive、dSYM 或 xcresult 只有遠端 Mac 上的一份,先複製到可驗證的儲存位置,並實際確認能讀取;「已經備份」不能只靠檔案名稱或同步工作顯示成功來判斷。

第三步至第五步:用連續驗收取代一鍵清理

  1. 第三步:按來源分類。 分開記錄 DerivedData、Simulator Runtime、模擬裝置資料、Package 快取、xcarchive、IPA、dSYM 和 xcresult,並為每項標上專案、Xcode 版本與最後使用情況。
  2. 第四步:先做小範圍回收。 只清理已停止任務使用的單一專案資料,保留原始碼、鎖定檔、簽名資產和可取得依賴的來源;不要以整個使用者目錄作為清理範圍。
  3. 第五步:執行冷建構與 Archive。 重新解析依賴、完成建構、產生 Archive,並核對 Scheme、簽名、輸出位置和退出狀態。Apple 的 Scheme 設定文件可協助你確認實際執行的建構動作。
  4. 第六步:驗收發布證據。 若要上傳或重新匯出,確認 Archive 可被開啟,IPA 可由預定流程產生,dSYM 和 xcresult 可供後續排查。
  5. 第七步:建立告警與停止條件。 當清理後空間仍快速下降、冷建構無法恢復,或清理已開始影響多個 App 的工作時,停止繼續刪除,轉入擴容或拆分評估。

清理、擴容還是拆分:用條件作最後判斷

什麼時候該替 iOS 打包機擴容?
當你已完成來源分類、移除不再需要的元件、驗證可回復的清理流程,硬碟仍因多版本工具鏈、測試矩陣或多 App 產物持續逼近告警線時,才適合擴容。若只是一次性舊快取堆積,擴容不是第一個答案;若高峰期反覆滿碟並中斷發布,則應把擴容或增加獨立主機列入本週決策。

如果你正在比較不同租期,也可以參考 M4 遠端 Mac 租用方案整理,但請先以你的 Archive、測試和產物保留需求核對環境,而不是只看硬碟容量。

結論:把唯一打包機留在可恢復狀態

本地 Mac、固定自建主機和遠端方案各有適用範圍。自建設備需要自行處理硬碟升級、電力、網路、遠端存取、故障替換和閒置成本;只有一台主機時,清理或維修還可能直接中斷發布。若你需要的是短期版本驗證、階段性發版高峰或額外的隔離建構環境,VPSMAC 的遠端 Mac 租用能讓你按階段增加環境,而不必先改動唯一的生產打包機。

反過來說,長期固定高負載、需要實體 USB 或連續依賴本地裝置的工作,仍應評估自購設備或專用主機。對大多數只在特定週期增加 Archive 需求的獨立開發者,先保留可驗證的發布產物,再用獨立遠端 Mac 承接高峰,通常比把原有伺服器清理到無法回復更穩妥。