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

标签 macos py2app findersync

我正在尝试添加 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/

相关文章:

java - Signjar 不支持 OSX java 版本 "sigalg"的 "1.6.0_37"属性

node.js - Homebrew 安装 Node.js : Command Not Found

python - 如何在 mac osx 上通过 Packages 安装的应用程序中编辑文件

swift - 授予 OSX 沙盒查找器同步扩展持久写入访问权限

在 OSX 上使用 C 编译或使用 libxml

python - 从 Ubuntu 在 OSX 上部署 Python 应用程序+依赖项

python - Py2app:不允许操作

xcode - 如何在 Xcode 中调试 FinderSync 扩展

iframe 中的 Java Applet 无法在 Mac Safari 中加载