沙盒MacOS命令行工具

我尝试在Xcode 11.2的Mojave 10.14.6上构建沙盒MacOS命令行工具。这只是一个简单的单一目标工具,可以将 Hello World 打印到标准输出。

当我将功能 App Sandbox 添加到目标时,该工具仍将构建,但无法运行。在Xcode中运行时,在调试器中,我会在尝试启动沙箱的代码上下文中看到错误:

Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP,subcode=0x0)

从命令行运行该工具时,我得到

Illegal instruction: 4

使用codesign -d --entitlements - ./HelloWorldCli列出权利,我得到

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.automation.apple-events</key>
<true/>
<key>com.apple.security.files.user-selected.read-only</key>
<true/>
<key>com.apple.security.get-task-allow</key>
<true/>

现在的问题是:是否可以在沙箱模式下创建MacOS命令行工具?有道理吗?如果是,我必须更改什么才能应用应用沙箱功能?如果不是,为什么有突出的选项将 App Sandbox 功能应用于命令行工具项目?然后,我有什么选择向Xcode中的命令行工具添加诸如钥匙串访问之类的权利?

pan1955 回答:沙盒MacOS命令行工具

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3143962.html

大家都在问