Add Launch at Login functionality to your macOS app in seconds
This package is meant for apps targeting macOS 13 or later. If you need backwards-compatibility, check out the old LaunchAtLogin
package.
macOS 13+
Add https://github.com/sindresorhus/LaunchAtLogin-Modern
in the Swift Package Manager tab in Xcode.
Put the toggle in your Settings
scene. That's it.
import SwiftUI
import LaunchAtLogin
@main
struct MyApp: App {
var body: some Scene {
Settings {
Form {
LaunchAtLogin.Toggle()
}
}
}
}
The LaunchAtLogin.Toggle
view works similarly to the built-in Toggle
except that is has a predefined binding and label.
The default label is "Launch at login"
, but it can be overridden:
import SwiftUI
import LaunchAtLogin
struct SettingsScreen: View {
var body: some View {
LaunchAtLogin.Toggle("Launch at login ")
// Or
LaunchAtLogin.Toggle {
Text("Launch at login ")
}
}
}
You can also access the state directly:
import LaunchAtLogin
print(LaunchAtLogin.isEnabled)
//=> false
LaunchAtLogin.isEnabled = true
print(LaunchAtLogin.isEnabled)
//=> true
The Mac App Store guidelines require launch at login functionality to be enabled in response to a user action. Your app will be rejected if you set the state to true by default.
This is a new repo as the old package had a lot of bloat in its Git history. I also took the opportunity to make a more minimal API optimized for SwiftUI apps.