Swift 3 OS X 应用程序在启动时启动

Posted

技术标签:

【中文标题】Swift 3 OS X 应用程序在启动时启动【英文标题】:Swift 3 OS X app launch on startup 【发布时间】:2017-07-29 10:50:16 【问题描述】:

我刚刚在 Swift 3 for OS X 中编写了我的第一个应用程序。如何配置此应用程序以在用户登录时启动?

【问题讨论】:

Make Swift Cocoa app launch on startup on OS X 10.11的可能重复 不,这不是我的帖子。 澄清了自动启动是目标。 @Musyanon 同意这不是你的帖子,但它似乎回答了你的问题。 @Richard 我已经看过这篇文章,但是解决方案使用的是旧版本的 Swift 并且不适用于 Swift 3 我已经尝试过 :( 【参考方案1】:

这对我有用,但有一些限制。首先,应用程序必须位于 Applications 文件夹中。其次,我看到它建议在目标应用程序包中包含一个“帮助”应用程序以执行实际启动……但我必须承认我不知道为什么这是必要的。

if SMLoginItemSetEnabled(appBundleIdentifier as CFString, true) 
    log.info("Successfully added login item.")
 else 
    log.warning("Failed to add login item.")

最后一个参数告诉系统是添加 (true) 还是删除 (false) 启动的应用程序。谷歌SMLoginItemSetEnabled了解更多详情。否则我自己也在为此苦苦挣扎,我欢迎有人对此进行扩展。

【讨论】:

应用程序不能以这种方式使用它们自己的包标识符,因此许多人选择使用第二个目标。参考:theswiftdev.com/2017/10/27/how-to-launch-a-macos-app-at-login

以上是关于Swift 3 OS X 应用程序在启动时启动的主要内容,如果未能解决你的问题,请参考以下文章

如何检测 OS X 应用程序是不是已经启动

开发人员 ID 签名的 OS X 应用程序在启动时因代码签名无效而崩溃

如何在 OS X 上写入本地应用程序支持目录

苹果 OS X制作u盘启动盘

在 swift 3 中启动应用程序时,如何在另一个 ViewController 中预加载 UIWebView?

如何在Mac OS X上面指定Eclipse启动时用指定的某一版本JDK