如何使用xcode5在mac应用程序中对捆绑的可执行文件进行编码

我有一个在xCode 5中创建的应用程序,其中包含一个捆绑的可执行文件.我正在尝试将应用程序提交到Mac App Store,但是当我提交它时,它会失败并显示以下消息:

未启用应用程序沙箱 – 以下可执行文件必须在权利属性列表中包含布尔值为true的“com.apple.security.app-sandbox”权利.有关沙盒应用程序的更多信息,请参阅App Sandbox页面.

我创建了一个权利文件(EXECUTABLE_NAME.entitlements),其中包含’com.apple.security.app-sandbox’键,其值为’true’…

<?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/>
    </dict>
</plist>

…但应用程序仍然失败.

我错过了什么(或者我做错了什么)才能将捆绑的可执行文件代码签名?

解决方法

我通过以下方式解决了这个问题:

1).plist文件缺少继承密钥,所以我修改了它:

<?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.inherit</key>
        <true/>
    </dict>
</plist>

它本身就不会完成这项工作,实际上对我执行以下操作的文件进行代码签名:

>归档应用程序
>打开xCode的管理器窗口
>右键单击存档并选择“在Finder中显示”以获取其位置
>使用Terminal.app,导航到其位置,然后在应用程序内部
捆绑/内容/资源/
>运行以下命令:

codesign -f -s“$YOUR_CERTIFICATE_HERE” – entitlements“$THE_ENTITLEMENTS_PLIST”“$THE_EXECUTABLE”

$YOUR_CERTIFICATE_HERE使用您的第三方Mac开发者应用程序证书

完成此操作后,应用程序应上传到iTunes Connect,您将能够在“二进制详细信息”部分下看到相关的代码签名信息.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...