【发布时间】:2020-06-05 10:53:55
【问题描述】:
我真的很困惑如何正确复制文件并授予执行权限,例如来自沙盒应用程序的 AppleScript 文件。我已经阅读了几篇文章和主题,但我阅读的越多,它就越让我感到困惑。
任务
我的应用需要从.scpt 文件运行一个非常简单的AppleScript。为此(如果我做对了),我需要将此文件复制到Users/thisUser/Library/Application \Scripts/.com.developerName.appName/。在我可以与此文件夹交互之前,用户需要授予对该文件夹的访问权限。这可以通过向用户显示NSOpenPanel 来完成,他可以在其中选择路径。确认应用程序可以访问该路径后,我可以复制文件并稍后运行脚本(应用程序沙箱 用户选择的文件 必须是读/写)。到目前为止一切顺利。
问题
我发现显示一个带有空文件夹的 Finder 窗口来选择对用户非常不友好,所以我想知道是否还有什么可以做的。关于这个问题,我发现的最接近的是拖放文件夹“进入应用程序” - 可以在here. 找到详细信息
我想我不是唯一一个创建需要运行特定脚本的(沙盒)应用程序的人,我不敢相信上述方法是唯一可能的解决方案!?因此,
我能不能只拥有一个带有“确定”按钮的窗口和上面的一些信息,应用程序需要权限才能写入该文件夹而不显示整个 Finder 窗口?
当我四处寻找解决方案时,我还发现了应用程序本身的几个设置。不幸的是,这里的文档非常有限,我无法真正找出具体设置的实际作用以及如何测试它们(诚然,这是因为这是我第一个用于 OSX 的应用程序,我基本上不知道我是什么正在做)。其中之一是应用构建阶段设置中的复制文件选项:
这对我来说确实很有希望,因为我认为如果我安装应用程序,它会自动将文件复制到脚本目标(可能带有某种用户提示)并且我可以使用它。但它什么也没做。即使我取消选择仅在安装时复制设置,任何时候都不会发生复制。我还尝试了下拉菜单中提供的不同目标文件夹
不幸的是我也在这里
- 找不到目的地是什么
- 也没有将该文件复制到
build上的任何目标文件夹。
我知道这里的人不太喜欢详细回答这样的问题,因为这可能是我方面缺乏知识,但如果有人能在至少帮助我进入正确的方向并引导我找到一些解决我的问题的资源!
谢谢!
【问题讨论】:
标签: xcode macos xcode11 appstore-sandbox