Shell 脚本不会在 MacOS 上使用 Process.Start() 执行 - Flutter

Shell script won't execute with Process.Start() on MacOS - Flutter

我一直在尝试使用我的 flutter 应用程序在 Windows 和 MacOS 上启动和停止 shell 脚本。在 Windows 上,我可以 运行 使用 Process.start() 批处理文件,然后成功终止它,但是在 Mac 上,我的 shell 脚本似乎从来没有开始。

我的 shell 脚本使用终端(脚本在目录 /Users/user/testPath 中)使用 './test.sh' 工作正常。我已经应用了 'chmod +x' 但是当使用这些变体中的任何一个时我完全没有得到 运行ning:

testProcess = await Process.start("test.sh", [""], runInShell: true, workingDirectory: "/Users/user/testPath");
testProcess = await Process.start("./test.sh", [""], runInShell: true, workingDirectory: "/Users/user/testPath");
testProcess = await Process.start("bash", ["test.sh"], runInShell: true, workingDirectory: "/Users/user/testPath");

使用 'say' 之类的命令可以正常工作,所以似乎只是 shell 脚本似乎没有 运行:

testProcess = await Process.start("say", ["hello"], runInShell: true, workingDirectory: "/Users/user/testPath");

我做错了什么?我知道这可以通过 swift 中的自定义插件来完成,但如果可能的话我宁愿在 dart 中这样做。有什么想法吗?

谢谢。

macOS Flutter 应用程序是 sandboxed by default,所以除非您为您的应用程序禁用了沙箱(我猜这不是这种情况,因为您没有提到)您的应用程序无权访问包含您的 shell 脚本的路径。