gpt4 book ai didi

swift - 使用 applescript 将我的应用程序添加到登录项,但遇到奇怪的权利权限问题

转载 作者:行者123 更新时间:2023-11-30 10:46:22 25 4
gpt4 key购买 nike

我使用此代码在应用程序启动时将我的应用程序添加到登录项中

         if tempVarForAddTologinItemAtLaunch == true{
DispatchQueue.global(qos: .background).async{
var error: NSDictionary?
if let scriptObject = NSAppleScript(source: "tell application \"System Events\" \n if exists login item \"" + Bundle.main.bundleIdentifier! + "\" then \n delete login item \"myApp\" \n end if \n make new login item at end of login items with properties {name:\"" + Bundle.main.bundleIdentifier! + "\", path:\"" + String(Bundle.main.bundleURL.absoluteString).replacingOccurrences(of: "file://", with: "").dropLast().replacingOccurrences(of: "%20", with: " ") + "\", hidden:false} \n end tell \n") {
if let outputString = scriptObject.executeAndReturnError(&error).stringValue {print(outputString)} else if (error != nil) {print("error: ", error!)}
}
}
}

我在控制台中不断收到此错误如果我在另一个用户的帐户中尝试我的应用程序,代码将不起作用

2019-04-15 20:31:45.474846-0400 myApp[11185:13342142] 跳过了脚本添加“/Library/ScriptingAdditions/SASyphonInjector.osax”,因为它不受 SIP 保护。

最佳答案

关于 SASyphonInjector.osax 错误消息,正如 vadian 所说,这与您的代码无关。

vadian:“在 10.14 Mojave 中,Apple 不再允许添加第三方脚本。”

这并不完全正确。第三方 OSAX 仍然是允许的,但它们必须经过共同签名并嵌入到使用它们的应用程序中(必须使用相同的身份进行签名)。然而,OSAXen 不能再安装在全局“ScriptingAdditions”文件夹中,也不能将它们加载到一个进程中,然后从另一个进程中调用(这是一个巨大的代码注入(inject)漏洞,苹果在几十年前就应该关闭)。还有更多detailed writeup here ,由深夜软件转交。

不幸的是,Apple 仍然允许远程调用 StandardAdditions 命令,因此恶意代码仍然可以[例如]在 iTunes 和 App Store 等熟悉的应用程序中显示虚假的“请输入您的 Apple 密码:”对话框。但假设 OSAXen 最终会完全消失。

有问题的 OSAX 来自 this project ,它使用它将自己的功能注入(inject)其他应用程序。您可以安全地忽略它现在生成的日志错误,不过清理现已失效的“ScriptingAdditions”文件夹以使其永远保持沉默也没什么坏处。

关于swift - 使用 applescript 将我的应用程序添加到登录项,但遇到奇怪的权利权限问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55699009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com