2

我正在尝试在使用py2app构建的应用程序中添加FinderSync 扩展

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

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

2015 年 9 月 17 日上午 10:33:50.212 pkd[309]:忽略 /Applications/Test.app/Contents/Plugins/TestFinderSync.appex 中错误配置的插件:插件必须是沙盒

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

我在这里想念什么?

4

1 回答 1

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 源代码构建插件,请确保在 Contents/Frameworks 中捆绑所有必需的 Swift*dylib

希望这可以帮助

于 2015-09-24T10:26:43.273 回答