【问题标题】:How to bundle FinderSync Extension in an App built using py2app如何在使用 py2app 构建的应用程序中捆绑 FinderSync 扩展
【发布时间】:2015-09-24 18:26:43
【问题描述】:

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

py2app 没有捆绑应用程序扩展的方法,所以我创建了一个 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 上搜索过,但找不到解决方案。

我在这里错过了什么?

【问题讨论】:

  • 你的扩展代码签名了吗?

标签: macos py2app findersync


【解决方案1】:

为了使其正常工作,您应该提供插件中的权利文件。

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 捆绑在 Contents/Frameworks 中

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 1970-01-01
    • 1970-01-01
    • 2018-09-21
    • 1970-01-01
    • 1970-01-01
    • 2022-12-11
    相关资源
    最近更新 更多