Skip to content

Add .app bundle, DMG installer, and app icon#6

Open
YordiLorenzo wants to merge 1 commit intolevelsio:mainfrom
YordiLorenzo:add-app-bundle-installer
Open

Add .app bundle, DMG installer, and app icon#6
YordiLorenzo wants to merge 1 commit intolevelsio:mainfrom
YordiLorenzo:add-app-bundle-installer

Conversation

@YordiLorenzo
Copy link
Copy Markdown

Summary

Makes xdr-boost installable without Terminal. Users can now download a DMG, drag to Applications, and go.

  • Adds a proper .app bundle with make app and make dmg build targets
  • Adds "Start at Login" menu toggle (uses SMAppService, no LaunchAgent needed)
  • Includes app icon (golden sun on dark background)
  • Existing CLI install path (make build && sudo make install) still works as before

What changed

  • Sources/main.swift — added ServiceManagement import, "Start at Login" menu item (only shown when running as .app), login item toggle via SMAppService (macOS 13+)
  • Makefile — added app and dmg targets for building the .app bundle and disk image
  • Info.plist (new) — app bundle config: bundle ID, LSUIElement (no dock icon), macOS 13+ minimum
  • AppIcon.icns (new) — app icon in all required sizes
  • .gitignore (new) — ignores .build/ and *.dmg
  • README.md — added download/install instructions for the DMG, kept CLI docs

Install (for testing)

make app    # builds .build/XDR Boost.app
make dmg    # builds .build/XDR-Boost.dmg

Open the DMG, drag to Applications, launch. Toggle "Start at Login" from the menu bar.

- Add make app / make dmg targets for building distributable .app bundle and disk image
- Add Start at Login menu toggle using SMAppService (macOS 13+), shown only in .app mode
- Add Info.plist for app bundle metadata (LSUIElement, bundle ID)
- Add AppIcon.icns with all required icon sizes
- Add .gitignore for build artifacts
- Update README with download instructions alongside existing CLI docs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant