【问题标题】:Finder Sync extension: cannot communicate through UNIX domain socketFinder Sync 扩展:无法通过 UNIX 域套接字进行通信
【发布时间】:2015-09-17 13:56:32
【问题描述】:

我有以下问题:我正在实现 Finder Sync 插件,它需要与主应用程序通信。以前,当我使用旧的好的 mach_inject 时,它通过 UNIX 域套接字工作得很好。 但是,现在,即使允许 com.apple.security.temporary-exception.files.home-relative-path.read-write 和 com.apple.security.network.client,我也无法连接到套接字,总是收到9/17/15 11:15:34.000 kernel[0]: Sandbox: finderplugin(660) deny network-outbound /Users/nickolay/Library/blablabla/.cmdsckt

有人知道如何解决这个问题吗?也许,需要其他权利或其他套接字路径?

【问题讨论】:

    标签: sockets cocoa ipc finder appstore-sandbox


    【解决方案1】:

    您需要在扩展的权利中添加以下内容。

    <key>com.apple.security.temporary-exception.sbpl</key>
    <array>
        <string>(allow network-outbound)</string>
        <string>(allow network-bind)</string>
    </array>
    

    【讨论】:

    • 谢谢。你能具体说明你从哪里得到这些信息吗?它似乎不存在于 Apple 网站上的 App Sandbox 文档中(或者我看错了?)。
    • 即使我尝试了很多方法来建立通信,最后我还是从 Ashutosh Mehra 的推文中找到了关于 APP 沙盒的推文,这在 Apple 的网站上没有记录。 His Tweet
    • 谢谢,这是非常有价值和有趣的帖子。但是,Apple 可以随时删除该 .sbpl 扩展名(但它仍然存在于 El Capitan 中)。
    【解决方案2】:

    好的,NSXPCConnection 似乎不起作用,所以我最终使用了马赫端口。 IE。 NSMachPort、NSMachBootstrapServer 等等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-26
      • 1970-01-01
      • 1970-01-01
      • 2014-12-13
      相关资源
      最近更新 更多