Macos 通过一次性授权更改系统代理

Macos 通过一次性授权更改系统代理,macos,configuration,authorization,system,Macos,Configuration,Authorization,System,我正在尝试使用身份验证更改系统代理设置。可以成功更改系统代理,但当我的应用程序重新启动时,始终会弹出auhorizating对话框(需要用户名和密码) 我怎样才能一劳永逸地授权 我在GitHub上有一个带有源代码的演示应用程序: 详情: 演示应用程序说明 用于更改系统代理设置的演示 问题 点击“启用系统代理”后,会弹出一个请求auhorization的对话框,后续点击不会再次弹出,可以。 但如果我们退出并重新启动该应用程序,将再次弹出auhorizating对话框 我们如何才能一劳永逸地授权 复

我正在尝试使用身份验证更改系统代理设置。可以成功更改系统代理,但当我的应用程序重新启动时,始终会弹出auhorizating对话框(需要用户名和密码)

我怎样才能一劳永逸地授权

我在GitHub上有一个带有源代码的演示应用程序:

详情:

演示应用程序说明 用于更改系统代理设置的演示

问题 点击“启用系统代理”后,会弹出一个请求auhorization的对话框,后续点击不会再次弹出,可以。 但如果我们退出并重新启动该应用程序,将再次弹出auhorizating对话框

我们如何才能一劳永逸地授权

复制步骤
  • 启动演示应用程序“SystemProxySettingsDemo”
  • 点击“启用系统代理”按钮,弹出“启用系统代理”对话框
  • 系统网络首选项中的SOCKS代理设置将更改为主机:127.0.0.1,端口:8888
  • 单击“禁用系统代理”按钮以清除系统网络首选项代理
  • 退出应用程序,然后再次启动它
  • 点击“启用系统代理”按钮,将再次弹出“启用系统代理”对话框
  • 工具书类
  • GitHub存储库:
  • 苹果官方样本:
  • 文件“ViewController.swift”:创建授权参考、请求授权、系统网络首选项代理设置
  • 功能定义:

    // requesting authorization with “AuthorizationCopyRights”
    // set system network preferences proxy with “SCPreferencesCreateWithAuthorization” and “SCPreferencesPathSetValue”
    func socksProxySet(enabled: Bool)`
    
    四,。文件“CommonAuthorization.swift”:设置/获取授权策略数据库条目 5.文件“codinnDemoRightRemove.sh”:清除属于演示应用程序的策略数据库条目

    其他说明:
  • 我已尝试使用“AuthorizationRightSet”(将策略数据库规则属性“timeout”设置为0或3600,或删除属性“timeout”)存储策略数据库的授权权限,但它不起作用
  • 还尝试使用“kAuthorizationRuleClassAllow”或“KauthorizationRuleAuthenticationatesAdmin”作为函数“AuthorizationRightSet”的参数“rightDefinition”的值,但也不起作用

  • 维护更改这些设置的持久授权的最佳方法是创建一个以root用户身份运行的launchd守护程序。这样的守护进程可以随时更改系统配置首选项,无需进一步授权。
    苹果样品参考: