如何在使用py2app构建的应用程序中捆绑FinderSync扩展

时间:2015-09-17 02:58:06

标签: macos py2app findersync

我正在尝试在使用FinderSync Extension构建的应用中添加py2app

py2app没有捆绑App Extensions的配方,所以我创建了一个Cocoa项目并添加了一个FinderSync扩展目标。在构建appex之后,我将appex复制到使用Plugins文件夹下的py2app构建的应用程序。

使用授权文件将FinderSync扩展设置为沙箱,但是当我启动主应用程序时,我在控制台应用程序上显示以下消息。

  

9/17/15 10:33:50.212 AM pkd [309]:忽略错误配置的插件   /Applications/Test.app/Contents/Plugins/TestFinderSync.appex:插件   必须沙箱

我搜索过Stack Overflow但找不到解决方案。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:3)

为了使其工作您应该从插件中提供权利文件。

MyPlugin.entitlements

<?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>

并使用您的证书对插件进行编码:

codesign --sign <cert> --entitlements <path to entitlements file> --force <path to bundle>/Contents/PlugIns/MyPlugin.appex

此外,如果您正在从Swift源构建插件,请确保在内容/框架中捆绑所有必需的Swift * dylib

希望这有帮助