如何允许我的命令行应用访问任意文件夹?

时间:2018-12-27 06:18:27

标签: sandbox xcode10 macos-mojave command-line-tool osx-gatekeeper

我正在使用Xcode在Swift中构建命令行应用程序。以前可以正常使用,但是升级到Mojave后,它在Macbook上不再可以正常运行,尽管奇怪的是,我的iMac都可以运行10.14.2。

当代码尝试创建目录时,它失败并显示:

  

NSCocoaErrorDomain代码= 513“您无权保存   文件夹“桌面”中的文件“ outputs-Bettermagick”。   UserInfo = {NSFilePath = / Users / kartick / Desktop / outputs-Bettermagick,   NSUnderlyingError = 0x101248c90 {Error Domain = NSPOSIXErrorDomain Code = 13   “权限被拒绝”}}

我尝试了以下操作:

  • 将Xcode添加到“系统偏好设置”的“全盘访问”列表中
  • 将我的二进制文件添加到此列表中
  • 添加我的二进制文件debugserver的父进程。
  • 添加终端,尽管我没有从终端运行该应用。我通过按Cmd-R从Xcode运行它。
  • sudo spctl --master-disable

我的应用仍然因上述错误而崩溃。我该如何告诉macOS不要对我的应用进行沙箱处理?我既是该计算机的开发人员又是该计算机的所有者,因此我应该能够做我想做的任何事情。此应用不可用于外部分发。

我应该重启进入恢复模式并禁用SIP吗?

我正在运行Xcode 10.1(10B61)。


关于堆栈溢出还有其他问题,但是它们提到了GUI应用程序,而不是命令行应用程序。例如,他们建议将字符串添加到Info.plist,但此应用程序没有一个。所以这个问题不一样。

0 个答案:

没有答案