Skip to content

MacOS Cleaner v2.1.1 - Privileged App Uninstallation Fix & System Maintenance

Latest

Choose a tag to compare

@AlexTkDev AlexTkDev released this 10 Aug 12:37
· 9 commits to release since this release

🚀 MacOS Cleaner v2.1.1_FIX

We are pleased to announce MacOS Cleaner v2.1.1! This release brings major stability fixes for root-protected app uninstallation, introduces a new System Maintenance suite in Settings (including Touch ID for sudo configuration and Spotlight index rebuilding), adds a startup update sheet with direct DMG download from GitHub Releases, and establishes a clean single source of truth for app versioning.


🌟 What's New & Key Highlights

🗑️ App Uninstaller: Privileged Root-Owned App Deletion & Batching

  • Single Password Prompt for Root Apps: Fixed an issue where apps located in /Applications with root/admin ownership failed to delete or repeatedly prompted for credentials. All privileged filesystem operations are now batched into a single elevated command execution via PrivilegedTaskRunner.

  • Safe Trash & Permanent Deletion Support: Correctly handles moving root-owned bundles to the user's ~/.Trash (with ownership normalization) or permanently removing them (rm -rf) if bypass-trash is enabled.

  • Real-Time Progress Indicators:

    • Full-surface detail loading overlay with spinner during deletion.

    • Interactive button state changing to "Deleting..." with re-click prevention.

    • Active deletion spinner directly in the app list row for visual feedback.


🛠️ System Maintenance (New in Settings → General)

  • Touch ID for sudo Command Helper:

    • Automatically detects biometric hardware support via LAContext.

    • Due to SIP (System Integrity Protection) constraints on macOS 26+ Tahoe blocking direct /etc/pam.d/ writes from non-interactive apps, we've introduced a convenient one-click Terminal command copy helper.

    • Added an instant "Check Status" verification button that dynamically checks /etc/pam.d/sudo_local and reflects active configuration with a green StatusPill.

  • One-Click Spotlight Index Rebuilding (mdutil -E):

    • Added a direct tool to force reindex your startup disk (sudo mdutil -E -i on /).

    • Resolves broken macOS Spotlight search queries and inaccurate storage/disk calculation glitches.

    • Includes live progress spinner and instant execution status reporting.


🔄 Smart Updates (Startup Check)

  • On launch the app performs a one-shot check against the public GitHub Releases API — no daemons, no background polling, no auto-install.
  • If a newer version is available, an FDA-style sheet shows the current vs latest version with:
    • Download DMG — opens the release asset URL (MacOSCleaner.dmg)
    • View Releases — opens the GitHub Releases page
  • Snooze options: Later (this session) or Don't remind for this version.
  • Manual check remains available from Settings → General and the app menu. About / Settings prefer the DMG link when the asset is present.

⚙️ Version Architecture & Single Source of Truth (SoT)

  • Unified the application versioning directly inside project.yml (MARKETING_VERSION: 2.1.1).

  • Removed hardcoded fallback versions across SwiftUI views (AboutView, SettingsGeneralView, SettingsView).

  • Version is now dynamically retrieved at runtime directly from Bundle.main.infoDictionary.


🌍 100% Localization Parity Across 10 Languages

Every newly added feature, prompt, button, tooltip, and status indicator has been translated and validated with 100% key parity across all 10 supported languages:

  • 🇺🇸 English (en)
  • 🇩🇪 Deutsch (de)
  • 🇯🇵 日本語 (ja)
  • 🇫🇷 Français (fr)
  • 🇨🇳 简体中文 (zh-Hans)
  • 🇮🇹 Italiano (it)
  • 🇧🇷 Português (Brasil) (pt-BR)
  • 🇪🇸 Español (es)
  • 🇷🇺 Русский (ru)
  • 🇺🇦 Українська (uk)

📋 Full Changelog

  • Uninstaller: Batched privileged operations in UninstallerService and CandidateCollector.
  • Uninstaller UI: Added isDeleting overlay, button activity spinners, and row-level progress.
  • Domains: Created SystemMaintenanceService for hardware checks, PAM status inspection, and mdutil calls.
  • Settings: Added System Maintenance card with Touch ID command copy + status check and Spotlight reindex button.
  • Updates: Extended UpdateChecker with AvailableUpdate (version + DMG asset URL); added FDA-style UpdateAvailableView shown after FDA guidance when a newer release exists.
  • Updates: Settings, About, and menu “Check for Updates” open the DMG when available, otherwise the Releases page.
  • Search: Registered maintenance actions in SettingsSearchRegistry for global settings search.
  • Docs: Updated README.md (Smart Updates + networking note).

💬 Feedback & Community

Ran into an edge case or have a suggestion?