macos - OS X 沙盒问题

标签 macos cocoa sandbox

我在 App Store 中有一个 Mac 应用程序,希望在沙盒成为强制要求之前采用它。我遇到了两个问题,希望在这里发帖以深入了解以下情况下的最佳实践:

  • 在我的应用程序中,我使用 NSOpenPanel 提示用户加载专有文件格式。加载文件后,我的应用程序对其进行解析并将 NSURL 列表收集到本地文件。然后这些本地文件被传递给 NSImage 的 initWithContentsOfURL: 方法。不幸的是,加载图像文件的行为会导致沙箱取消该操作。据我了解,发生这种情况是因为用户已明确授予我的应用程序打开 NSOpenPanel 所选文件的权限,但不允许我的专有格式中引用的文件。我该如何处理这种(据说相当常见)的情况?
  • 我的应用程序包中包含一个 unix 可执行文件,我想使用 NSTask 来执行该文件。鉴于脚本包含在我的包中,这在沙箱下合法吗?

如果有人能澄清上述几点,我们将不胜感激。

最佳答案

1) 据我了解,NSURL 对象包含稍后重新访问文件所需的权限,因此,如果您使用硬编码路径,则可以将它们替换为存档的 NSURL 对象。这也是假设用户之前在 NSOpenPanel 中选择了这些文件。

2)您可以运行 NSTask,但它会继承主应用程序的权限。

希望其他人能够提供更多信息。我找到了Mac Developer Boards ,特别是“应用程序沙盒”论坛很有帮助,因为 Apple 员工经常会来。到目前为止,我发现沙盒是一个无法使用的困惑。

关于macos - OS X 沙盒问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8614834/

相关文章:

objective-c - 根据字符串的长度更新 NSTextField 的宽度

c++ - Mac 上的自制 GLFW/GLEW

c++ - dyld:找不到符号:__ZN2cv6imreadERKNSt3 在 MAC OS 10.10 上运行简单代码时

table 下的 cocoa 迷你工具栏(添加、删除)

macos - 当父 View 绘制渐变时,使用 NSBackgroundStyleRaished 文本字段绘制工件

ios - Apple Sandbox APN 服务器上的推送通知性能不佳

macos - 在 Mac OS X(sierra 和 Mojave)中启用 clang 中的 OpenMP 支持

macos - Null 传递给需要非空参数的被调用者

azure - 是否可以在本地环境中创建像Azure一样的沙箱?

web-services - Flex 无法识别 crossdomain.xml 策略文件