【问题标题】:grant OSX sandboxed finder sync extension persistent write access授予 OSX 沙盒查找器同步扩展持久写入权限
【发布时间】:2016-11-23 06:53:41
【问题描述】:

我编写了一个简短的 swift 代码来向查找器添加一个按钮,该按钮通过系统 touch 调用在当前目录中创建一个新的空白文件。该扩展程序可以正常获取当前目录(通过FIFinderSyncController.defaultController().targetedURL()),但touch 命令由于沙盒而失败。如何请求写入权限?我的代码不会触发用户选择的文件选项。

【问题讨论】:

    标签: swift macos sandbox findersync


    【解决方案1】:

    据我所知,这在 Finder 同步扩展中是不可能的。但是,作为解决方法,您可以将此功能转移到主应用程序 - 首先要求用户将启用功能的驱动器拖动到应用程序主窗口,保存安全书签,然后将命令从 Finder 扩展发送到主应用程序。

    【讨论】:

      【解决方案2】:

      您应该能够使用here 所述的临时异常权利。更具体地说,两个权利之一就足够了:

      com.apple.security.temporary-exception.files.home-relative-path.read-write com.apple.security.temporary-exception.files.absolute-path.read-write

      如文档中所述,如果您计划将应用提交到 App Store,则应提交需要临时例外权利的理由。 (我从来没有经历过这个过程,所以我不确定这个过程是怎样的)。

      【讨论】:

      • 此时,如果您使用临时例外权利,Apple 将拒绝您的应用。您现在唯一可以证明它的方法是提交错误报告。没有错误报告 = 没有批准。
      【解决方案3】:

      据我所知,这是不可能的,而且这不是 Finder 同步扩展的目的。苹果说here:

      确保 Finder Sync 扩展点适合您计划提供的功能。最好的 Finder 同步扩展支持将本地文件夹的内容与远程数据源同步的应用程序。 Finder Sync 并非用于修改 Finder 用户界面的通用工具。

      如果您想修改 Finder 以达到您的目的,您必须:

      • 使用临时例外权利,这将事实上导致您的应用被拒绝;或
      • 重新考虑您的方法

      我建议后者。 Apple 在每次发布时都越来越难以修改系统(无论好坏)。如果您需要此功能,请提交错误报告来请求它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-06-30
        • 2015-07-28
        • 2016-04-12
        • 1970-01-01
        • 2016-09-09
        • 2016-11-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多