我正在尝试添加 FinderSync Extension在使用 py2app 构建的应用程序中。
py2app 没有捆绑应用程序扩展的方法,因此我创建了一个 Cocoa 项目并添加了 FinderSync 扩展目标。构建 appex 后,我将 appex 复制到 Plugins 文件夹下使用 py2app 构建的应用程序。
FinderSync 扩展设置为使用权利文件进行沙箱处理,但当我启动主应用程序时,控制台应用程序上显示以下消息。
9/17/15 10:33:50.212 AM pkd[309]: ignoring mis-configured plug-in at /Applications/Test.app/Contents/Plugins/TestFinderSync.appex: plug-ins must be sandboxed
我在 Stack Overflow 上搜索过,但找不到解决方案。
我在这里缺少什么?
最佳答案
为了使其正常工作,您应该提供插件中的权利文件。
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*dylibs
希望这有帮助
关于macos - 如何在使用 py2app 构建的应用程序中捆绑 FinderSync 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32621928/