Skip to content

Migrate from Carthage to Swift Package Manager#204

Open
chxbca wants to merge 2 commits into
Mortennn:masterfrom
chxbca:master
Open

Migrate from Carthage to Swift Package Manager#204
chxbca wants to merge 2 commits into
Mortennn:masterfrom
chxbca:master

Conversation

@chxbca

@chxbca chxbca commented May 5, 2026

Copy link
Copy Markdown

Changes

This PR migrates the project from Carthage to Swift Package Manager (SPM) for better dependency management and Apple Silicon support.

Key Changes

  • Dependency Management: Replaced Carthage with SPM for all dependencies

    • LaunchAtLogin 5.0.0+
    • Defaults 7.0.0+
    • Settings (formerly Preferences) 3.0.0+
    • Sparkle 2.0.0+
  • MASShortcut Integration: Integrated as a local framework (no SPM support available)

    • Fixed deprecated NSEventModifierFlag constants
    • Added necessary Foundation/AppKit imports
    • Excluded test files from build
  • API Updates: Updated to Settings 3.x API

    • PreferencePaneSettingsPane
    • PreferencesWindowControllerSettingsWindowController
    • Updated property names and method signatures
  • Deployment Target: Bumped to macOS 10.15 (required by Defaults 7.x)

  • Build Configuration: Updated swiftgen path for Apple Silicon compatibility

Testing

  • ✅ Build succeeds on Apple Silicon
  • ✅ All dependencies correctly linked
  • ✅ No compilation errors

Documentation

Added MIGRATION.md with detailed migration notes and APPLE_SILICON_SUPPORT.md for Apple Silicon specific information.

Closes #XXX (if there's a related issue)

chxbca added 2 commits May 5, 2026 22:56
- Replace Carthage with SPM for dependency management
- Integrate MASShortcut as local framework (no SPM support)
- Update to Settings 3.x API (renamed from Preferences)
- Fix deprecated NSEventModifierFlag constants in MASShortcut
- Bump deployment target to macOS 10.15 (required by Defaults 7.x)
- Update swiftgen path for Apple Silicon
- Remove Carthage files and bootstrap script
- Rename 'preferences' to 'panes' for consistency with Settings API
- Rename 'preferencesWindowController' to 'settingsWindowController'
- Extract showGeneralSettings() method to reduce duplication
- Remove repeated preferencesWindowController.show(pane:) calls
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