Swift 是否可以执行macOS应用程序内的二进制文件';s沙箱容器?
是否可以执行macOS应用程序沙盒容器中的二进制文件 作为测试,我尝试使用Swift 是否可以执行macOS应用程序内的二进制文件';s沙箱容器?,swift,macos,process,appstore-sandbox,Swift,Macos,Process,Appstore Sandbox,是否可以执行macOS应用程序沙盒容器中的二进制文件 作为测试,我尝试使用Process()运行PHP二进制文件。当运行在usr/bin/PHP中找到的PHP时,这很好,但是如果我将其复制到应用程序的沙盒容器中,它将不会运行。错误是启动路径不可访问 演示问题的步骤: 将其放入裸沙盒应用程序的ViewController: let path = "/usr/bin/php" let process = Process() process.launchPath = path process.arg
Process()
运行PHP二进制文件。当运行在usr/bin/PHP
中找到的PHP时,这很好,但是如果我将其复制到应用程序的沙盒容器中,它将不会运行。错误是启动路径不可访问
演示问题的步骤:
ViewController
:
let path = "/usr/bin/php"
let process = Process()
process.launchPath = path
process.arguments = ["-v"]
process.launch()
PHP 7.1.16 (cli) (built: Apr 1 2018 13:14:42) ( NTS )
let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let path = documentsURL.absoluteString + "php"
print(path)
PHP 7.1.16 (cli) (built: Apr 1 2018 13:14:42) ( NTS )
file:///Users/myuser/Library/Containers/com.domain.SandboxedApp/Data/Documents/php
$ cp /usr/bin/php /Users/myuser/Library/Containers/com.domain.SandboxedApp/Data/Documents
PHP 7.1.16 (cli) (built: Apr 1 2018 13:14:42) ( NTS )
2018-07-01 20:08:30.630442+1200沙盒DAPP[43579:20898286]未能在(NSWindow)上设置(contentViewController)用户定义的已检查属性:启动路径不可访问
为什么Process()
不从容器中运行PHP?为什么会有这么奇怪的错误信息
(注意,你可能会问我为什么要这样做。有几个原因,例如我想更深入地了解沙箱权限是如何工作的;我想沙箱一个应用程序,它能够运行用户提供的二进制文件,而不是macOS提供的,也不是在应用程序包中分发的-是的,不打算在MAS上分发,我知道这个breaks(他们的条款)