An open API service indexing awesome lists of open source software.

https://github.com/kamjin3086/AppUninstaller

A lightweight, native macOS app uninstaller with drag-and-drop support. Built with Swift and SwiftUI.
https://github.com/kamjin3086/AppUninstaller

macos swift swiftui uninstaller

Last synced: 3 months ago
JSON representation

A lightweight, native macOS app uninstaller with drag-and-drop support. Built with Swift and SwiftUI.

Awesome Lists containing this project

README

          

# App Uninstaller

A lightweight, native macOS app uninstaller with drag-and-drop support. Built with Swift and SwiftUI.

![macOS](https://img.shields.io/badge/macOS-13.0+-blue)
![Swift](https://img.shields.io/badge/Swift-5.9-orange)
![License](https://img.shields.io/badge/License-MIT-green)

## Features

- **Drag & Drop**: Simply drag any `.app` file onto the window to uninstall
- **Deep Cleaning**: Automatically finds and removes related files:
- Application Support files
- Preferences (plist files)
- Caches
- Logs
- Saved Application State
- Containers
- And more...
- **Native UI**: Beautiful SwiftUI interface that fits right in with macOS
- **Smart Permissions**: Automatically requests admin privileges only when needed
- **Safe**: Shows all files before deletion, requires confirmation

## Screenshots

| Main Interface | Ready to Uninstall |
|:--------------:|:------------------:|
| ![Main Interface](docs/screenshots/main01.png) | ![Ready to Uninstall](docs/screenshots/main02.png) |

*Drag any .app file to uninstall it along with all related files.*

## Installation

### Download Release

1. Go to [Releases](../../releases)
2. Download `AppUninstaller.zip`
3. Unzip and move `App Uninstaller.app` to `/Applications`
4. On first launch, right-click and select "Open" to bypass Gatekeeper

### Build from Source

Requirements:
- macOS 13.0+
- Xcode Command Line Tools or Xcode

```bash
# Clone the repository
git clone https://github.com/kamjin3086/AppUninstaller.git
cd AppUninstaller

# Build release version
swift build -c release

# Create app bundle (optional)
mkdir -p "AppUninstaller.app/Contents/MacOS"
cp .build/release/AppUninstaller "AppUninstaller.app/Contents/MacOS/"
cp Info.plist "AppUninstaller.app/Contents/"
```

## Usage

1. **Launch** the app
2. **Drag** any `.app` file onto the drop zone
3. **Review** the list of files that will be deleted
4. **Click** "Uninstall" and confirm
5. **Enter** your password if prompted (for system-protected files)

## How It Works

App Uninstaller scans these locations for files related to the app:

| Location | Description |
|----------|-------------|
| `~/Library/Application Support` | App data and settings |
| `~/Library/Preferences` | Preference files (.plist) |
| `~/Library/Caches` | Cached data |
| `~/Library/Logs` | Log files |
| `~/Library/Saved Application State` | Window states |
| `~/Library/HTTPStorages` | HTTP cookies |
| `~/Library/WebKit` | WebKit data |
| `~/Library/Containers` | Sandboxed app data |
| `/Library/Application Support` | System-wide app data |
| `/Library/Preferences` | System-wide preferences |

Files are matched by:
- App name (case-insensitive)
- Bundle identifier (e.g., `com.company.appname`)

## Why Not Mac App Store?

This app requires access to system directories and administrator privileges to fully clean up applications. Mac App Store apps run in a sandbox that prevents this functionality. Similar tools like AppCleaner and CleanMyMac are also distributed outside the App Store for the same reason.

## Contributing

Contributions are welcome! Feel free to:

- Report bugs
- Suggest features
- Submit pull requests

## License

MIT License - see [LICENSE](LICENSE) for details.

## Acknowledgments

Inspired by the need for a simple, open-source alternative to commercial uninstaller apps.