gpt4 book ai didi

flutter - dart/flutter 使用 sudo 运行进程

转载 作者:行者123 更新时间:2023-12-03 03:04:03 26 4
gpt4 key购买 nike

我想为 mac 桌面开发一个 flutter 应用程序并使用 sudo powermetrics 访问 macs powermetrics有没有办法在第一次运行时向用户询问此命令的 sudo 权限?

最佳答案

嗨,我只是在玩 flutter ,我正在解决同样的问题。
一般来说,我们需要从 bash 调用的 GUI 版本的 sudo。
运行需要 sudo 的 dscacheutil 的 bash commnad 示例:

/usr/bin/osascript -e 'do shell script "dscacheutil -flushcache  2>&1 etc" with administrator privileges'
然后我试图通过 Process.run() 运行这个命令,但没有成功。然后我创建了测试 bash 脚本,并尝试使用 Process.run() 直接运行 bash 脚本。它告诉我然后我没有特权。
所以我不得不在 Xcode 中将我的 App Sandbox 值更改为 NO。
我们必须打开 Runner.xcodeproj直接在 macos文件夹。
enter image description here
然后将 App Sandbox 更改为 NO:
enter image description here
不,我们必须准备我们的 bash 脚本:
#!/bin/bash
/usr/bin/osascript -e 'do shell script "dscacheutil -flushcache 2>&1 etc" with administrator privileges'
将它保存在某个地方,最后一步我们可以在 Flutter 中调用这个 bash 脚本。
void main() {

Process.run('/Users/nikix/Desktop/bash_test.sh',[]).then((result){
stdout.write(result.stdout);
stderr.write(result.stderr);
});
}
现在我正在使用 sudo 获得 GUI 提示,它似乎可以工作。但我真的不知道这是否是正确的方法。我在 flutter 方面很新。
更新:
我曾尝试构建 flutter 应用 flutter build macos但无法运行 bash 脚本。然后我找到了 this package called process_run
然后我能够从构建的应用程序运行自定义 bash 脚本
在您的 yaml pubspec.yaml 添加该包:
dependencies:
flutter:
sdk: flutter
process_run: any
下一步是允许 Sanbox 应用程序在 xcode 中发布应用程序版本:
enter image description here
最后一步在 Dart 中运行我们的 bash 代码:
import 'package:process_run/shell.dart';
void main() {

var shell = Shell();

shell.run("""
#!/bin/bash
/usr/bin/osascript -e 'do shell script "dscacheutil -flushcache 2>&1 etc" with administrator privileges'
""").then((result){
print('Shell script done!');
}).catchError((onError) {
print('Shell.run error!');
print(onError);
});
};

关于flutter - dart/flutter 使用 sudo 运行进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62270898/

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