即使允许连接,macOS沙箱也会停止scp进程

问题描述

我正在尝试编写一个调用scp的macOS应用程序,以将文件复制到服务器。我设置并运行带有适当参数的Process对象,但出现此错误

2020-09-22 16:28:53.582974-0400 scp [5370:78175] [未指定]与Containermanagerd的xpc连接无效。重试尝试0 of 6
[最后一行重复几次] 2020-09-22 16:28:53.588025-0400 scp [5370:78175] [未指定] container_create_or_lookup_for_current_user:错误=((container_error_t)51)xpc_INVALID_REPLY
主机密钥验证失败。
连接断开

let scpTask = Process()
scpTask.launchPath = "/usr/bin/scp"
let pathToKey = "/Users/me/Library/Containers/com.foo.MyApp/Data/Documents/backup_id_rsa"
let filetoUpload = "/Users/rob/Library/Containers/com.foo.MyApp/Data/Documents/Backup.2020.09.22.tgz"
scpTask.arguments = [
    "-i",pathToKey,filetoUpload,"[email protected]"
]
scpTask.launch()

如果我从外壳程序运行完全相同的scp命令,它将成功。如果我关闭沙箱,则上面的代码成功。

所以,这与沙箱有关,但允许传入和传出网络连接。这是Xcode中的屏幕:

是什么原因导致该错误?如何在仍使用“应用程序沙箱”的情况下解决错误

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)