美文网首页
macOS Ventura 13.0 开机自动启动失效

macOS Ventura 13.0 开机自动启动失效

作者: iOS资深入门 | 来源:发表于2022-10-26 21:43 被阅读0次

    背景

    更新完系统,发现自己一个mac应用开机自启失败。
    表现为方法调用返回 false

    SMLoginItemSetEnabled(loginItemIdentifier as CFString, state) 
    

    查询发现macOS 13.0 更新了一个新类 SMAppService,使用这个类调用register() and unregister()

    image.png

    解决办法

        // 创建登录项
        @available(macOS 13.0, *)
        private func loginItem() -> SMAppService {
            // The bundle identifier of the helper application bundle   
            return SMAppService.loginItem(identifier: loginItemIdentifier)
        }
        
        // 注册登录项
        @available(macOS 13.0, *)
        func addLoginItem(complate: (_ result: Bool) -> ()) {
            do {
                try loginItem().register()
                saveLoginAutoLaunchState(state: true)
                complate(true)
            } catch {
                print(error)
                complate(false)
            }
        }
        
        // 移除登录项
        @available(macOS 13.0, *)
        func removeLoginItem(complate: (_ result: Bool) -> ()) {
            do {
                try loginItem().unregister()
                saveLoginAutoLaunchState(state: false)
                complate(true)
            } catch {
                print(error)
                complate(false)
            }
        }
    

    Xcode 需要更新到14.1。正式暂时没更新,可以用RC版

    官方文档
    https://developer.apple.com/documentation/servicemanagement/smappservice

    相关文章

      网友评论

          本文标题:macOS Ventura 13.0 开机自动启动失效

          本文链接:https://www.haomeiwen.com/subject/ddmttdtx.html