Apple Mac应用商店

时间:2015-11-04 04:17:48

标签: python macos sandbox code-signing entitlements

我正在为应用的沙箱创建权利密钥。我在权利密钥com.apple.security.temporary-exception.sbpl上遇到了一些问题。我需要向此密钥添加五个例外,它们是ipc-posix-semfile-issue-extensionmach-lookupfile-write-createfile-read-data。因为我在Xcode之外创建这个应用程序(我使用的是Python),所以我必须手动创建授权文件。我已经“成功”了,但Apple似乎不喜欢我的格式化。

以下是原始代码:

<?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.files.user-selected.read-write</key>
    <true/>
    <key>com.apple.security.temporary-exception.sbpl</key>
    <string>
            (begin
                (allow ipc-posix-sem)
                (allow file-issue-extension)
                (allow mach-lookup)
                (allow file-write-create)
                (allow file-read-data))
        </string>
</dict>
</plist>

在被com.apple.security.temporary-exception.sbpl拒绝后,我做了以下修订:

<?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.files.user-selected.read-write</key>
    <true/>
    <key>com.apple.security.temporary-exception.sbpl</key>
    <array>
        <string>(allow ipc-posix-sem)</string>
        <string>(allow file-issue-extension)</string>
        <string>(allow mach-lookup)</string>
        <string>(allow file-write-create)</string>
        <string>(allow file-read-data)</string>
    </array>
</dict>
</plist>

我的问题是:我的新格式是否是使用.sbpl权利的正确方法?品尝我的应用程序后,它可以使用这个新的权利文件,现在我需要知道的是Apple是否可以接受。

我找到了herehere两个权利文件的示例,我相信我的文件在查看后会正确设置。

1 个答案:

答案 0 :(得分:1)

我找到了另一个Sandbox权利file in GitHub,您的格式看起来正确。

我认为另一个问题可能是您需要在“mach-lookup”之类的命令之后提供参数。我正在查看Apple Sandbox Guide unofficial documentation found here