← 返回首頁
Tommy Prezioso Jr
Tommy Prezioso Jr
@TommyPrezioso
35🔁 5
𝕏 (Twitter)🔥
AI 中文摘要Claude 生成

核心概念

XcodeClean 是一款 macOS 選單列應用程式,讓開發者只需一個鍵盤快捷鍵或單次點擊,就能自動清理 Xcode 的建置產物、重設 package 快取和清理模擬器資料,解決開發者經常需要手動導航至隱藏資料夾進行重複性清理工作的痛點。

核心功能

  • 刪除衍生資料 — 移除 DerivedData 資料夾內容,選單列即時顯示佔用空間大小,讓使用者判斷是否需要清理
  • 清理建置資料夾 — 透過 AppleScript 觸發 Xcode 原生的清理建置命令
  • 重設 Package 快取 — 呼叫 Xcode 的 File > Packages > Reset Package Caches 功能,使用 Xcode 原生解析器
  • 解析 Package 版本 — 呼叫 Xcode 的 File > Packages > Resolve Package Versions 功能
  • 清理模擬器資料 — 關閉所有模擬器、清除其資料並移除無效裝置
  • 全面清理 — 依正確順序執行清理建置、刪除衍生資料和重設 Package 快取,避免 Xcode 的 PIF 傳輸錯誤
  • 全域鍵盤快捷鍵 — 所有動作從任何應用程式皆可透過快捷鍵快速啟用,無需開啟選單
  • 即時空間顯示 — 選單列直接顯示 DerivedData 和模擬器資料大小,每 30 秒更新一次
  • 使用中專案偵測 — 點擊前先顯示將被針對的 Xcode 專案

鍵盤快捷鍵

所有快捷鍵採用「Cmd + Shift + Option」作為修飾鍵,全域生效:

  • 全面清理:Cmd+Shift+Option+K
  • 刪除衍生資料:Cmd+Shift+Option+D
  • 清理建置資料夾:Cmd+Shift+Option+B
  • 重設 Package 快取:Cmd+Shift+Option+R
  • 解析 Package 版本:Cmd+Shift+Option+P
  • 清理模擬器資料:Cmd+Shift+Option+S

技術實作

XcodeClean 針對不同清理操作選用最可靠的機制:刪除衍生資料使用 FileManager 並列處理達到最快速度;清理建置資料夾透過 AppleScript 直接與 Xcode 通訊,精準鎖定特定工作區文件;重設 Package 快取和解析版本則藉由 System Events 觸發 Xcode 選單項目,讓 Xcode 原生解析器妥善處理內部狀態和子模組等邊界情況;清理模擬器資料使用 Apple 官方的 xcrun simctl 工具。應用程式會在操作開始時捕捉使用中的 Xcode 工作區文件,後續步驟都針對同一專案進行,即使在操作過程中切換至其他專案或應用程式。

權限需求

應用程式首次使用各項功能時將提示授予兩項 macOS 權限:自動化權限(控制 Xcode)和無障礙存取權限(觸發選單項目)。若權限卡住可透過終端重設。系統需求為 macOS 14.0 (Sonoma) 或更新版本,並已安裝 Xcode。

設計理念

作者因厭倦反覆手動清理和快取重設而開發此工具,並強調雖然仍有細微 bug,但已在日常使用中。應用未經公證,首次啟用需透過右鍵點擊並選擇開啟,或執行指令移除隔離屬性。支援登入時自動啟動選項,架構採用 SwiftUI 和 Carbon Events 實作全域快捷鍵註冊。