-
cleanup depth: universal binaries, language files, deeper caches; fix wifi.log and Docker cleaning; bump 2.9.0
发布于
2026-07-19 05:29:55 +00:00 | 44 次提交 在此版本后已推送到 mainTwo new categories close the gap against CleanMyMac:
- Universal Binaries: parses FAT Mach-O headers (main executable plus
frameworks) and strips the non-native slice via a staged clone: APFS
clone of the bundle, lipo on the clone, ad-hoc re-sign, codesign
--verify --deep --strict, atomic swap. Any failure discards the clone
and leaves the original untouched. Apps with restricted entitlements
and App Store apps are refused or unselected. - Language Files: removes unused .lproj folders through the same staged
re-sign flow so the signature seal stays valid. Keeps preferred
languages, CFBundleDevelopmentRegion, per-app AppleLanguages, en, Base.
Both are unselected by default and excluded from scheduled auto-clean.
Scanner depth fixes:
- directorySize dropped its 10,000-entry cap, which truncated DerivedData
to a fraction of its real size. Now uses totalFileAllocatedSize with an
error-tolerant enumerator and honors task cancellation. - Xcode junk adds DeviceSupport (iOS/watchOS/tvOS), XCTestDevices,
Previews, and SwiftPM caches. - User cache now covers sandboxed container caches, Group Containers,
and HTTPStorages (unselected: cookie and session stores).
Cleaning fixes:
- wifi.log false alert: root rm succeeded but the daemon recreated the
live log before the re-stat, so it was reported as a survivor. The
admin pass now compares inodes and counts recreated files as cleaned.
SIP-flagged files are skipped at scan time entirely. - Docker category worked only with Docker Desktop and its reclaimable
row was informational. OrbStack paths are now scanned, ~/.docker cache
roots joined the delete allow-list, and the prune row actually runs
docker system prune -f (running containers and tagged images survive).
Claude-Session: https://claude.ai/code/session_01QyFNvecmmotai2A9TkYAGh
下载附件
- Universal Binaries: parses FAT Mach-O headers (main executable plus