swift - 从 MacOS Swift 应用程序以 sudo 身份启动进程
问题描述
我对使用 Apple 很陌生,更不用说为他们开发应用程序了,而是想创建一个简单的应用程序来学习一点点语言。
我正在尝试在应用程序中打开文件,但该应用程序需要以管理员权限打开。我已经测试了在命令中运行以通过运行以下命令来证明该概念有效:
sudo open /private/etc/apache2/extra/httpd-vhosts.conf -a TextEdit
正如预期的那样,在终端中要求输入密码,然后打开带有可编辑文件的应用程序。
然后我尝试执行以下 Swift 来做同样的事情:
let fileToOpen : String = txtFileToOpen.stringValue;
let task = Process();
task.launchPath = "/usr/bin/env"
task.arguments = ["sudo", "open", fileToOpen, "-a", "TextEdit"];
task.launch();
我期待因为我在应用程序而不是终端中运行上述内容,所以我会得到 Apple 对话框,询问我的管理员密码以授予从我的应用程序运行上述内容的权限,但不幸的是,这不起作用,而是我得到错误:
env:sudo:不允许操作
有没有办法可以执行上述操作并提示管理员密码以允许我的进程从我的应用程序运行?
解决方案
推荐阅读
- python-3.x - 如何使断言不会在python中引发错误
- google-chrome - Chrome 调试器显示“e:ReferenceError:找不到变量”
- java - JFileChooser 图像渲染率
- javascript - 如何获取数据表数组的确切位置?
- airflow - Airflow Kubernetes Executor 错误(找不到 dag_id)
- android - 如何执行更好的 SwiftRealm 迁移价值
- spring - 使用指定分片的数据
- javascript - 下一个 js、getServerSideProps 和下一个导出
- spring - 如何基于一对多和多对一关系表Spring JPA进行过滤
- javascript - 如何从服务器获取 myshopify 自定义页面内容