LaunchAtLogin
Add "Launch at Login" functionality to your macOS app in seconds
It's usually quite a convoluted and error-prone process to add this. No more!
This package works with both sandboxed and non-sandboxed apps and it's App Store compatible and used in my Lungo and Battery Indicator apps.
You might also find my create-dmg
project useful if you're publishing your app outside the App Store.
Requirements
- macOS 10.12+
- Xcode 10+
- Swift 4.2+
Install
Carthage
github "sindresorhus/LaunchAtLogin"
CocoaPods
pod 'LaunchAtLogin'
Usage
Add a new "Run Script Phase" below "Embed Frameworks" in "Build Phases" with the following:
Carthage:
"${PROJECT_DIR}/Carthage/Build/Mac/LaunchAtLogin.framework/Resources/copy-helper.sh"
CocoaPods:
"${PROJECT_DIR}/Pods/LaunchAtLogin/LaunchAtLogin/copy-helper.sh"
Use it in your app:
import LaunchAtLogin
print(LaunchAtLogin.isEnabled)
//=> false
LaunchAtLogin.isEnabled = true
print(LaunchAtLogin.isEnabled)
//=> true
Note that the Mac App Store guidelines requires "launch at login" functionality to be enabled in response to a user action. This is usually solved by making it a preference that is disabled by default.
How does it work?
The framework bundles the helper app needed to launch your app and copies it into your app at build time.
Related
- Defaults - Swifty and modern UserDefaults
- Preferences - Add a preferences window to your macOS app in minutes
- DockProgress - Show progress in your app's Dock icon
- More…
License
MIT © Sindre Sorhus