问题标签 [appstore-sandbox]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - Mac 沙盒应用程序失去对其他应用程序的文件权限
我正在开发一个当前被沙盒化的应用程序。它充当基本的文本编辑器。最近,我想测试当我在我的应用程序和另一个应用程序中同时打开一个文件时会发生什么,在一个应用程序中进行更新,然后在另一个应用程序中查看更新。我正在使用Coda
或BBEdit
作为我的替代编辑器。如果我关闭沙盒——那么这个问题就不存在了。但是,由于从 3 月 1 日起,应用程序需要被沙盒化,我宁愿实施解决方案,也不愿观望。
当我打开这两个文件并在我的应用程序中进行编辑然后切换到另一个应用程序时,更改会反映出来,以便这些编辑器具有刚刚从我的应用程序保存的版本。但是,如果我执行相反的操作,即从他们的应用程序中保存然后转移到我的应用程序 - 不高兴。在不执行任何操作的情况下,控制台会报告两个特定错误:deny file-issue-extension
和deny file-write-data
. 该应用程序似乎正在失去编辑文档的权限,因为在我的应用程序中打开文档后,它被外部编辑器更改。如果我尝试将文件保存在我的应用程序中,它会要求复制文档,因为它无法访问原始文档。这不会反过来发生,因为这些应用程序没有被沙盒化,因此具有我的应用程序没有的权限。如果您不想要这种行为,您似乎也无法阻止其他应用程序进行更改。
developer.apple.com 上的文档没有提到这种情况。我不确定这是否是预期的行为。如果是,那么我可以告诉我的用户文档权限已丢失,他们应该保存新版本或重新打开文件。如果它不是预期的行为,那么 NSDocument API 中的什么方法会在文件丢失后授予对文件的权限?我假设答案是前者,这是有意的,但任何人都可以确认并且有文件吗?
macos - 如何在 Mac 沙盒应用程序上保留文件或文件夹列表?
我想知道是否可以在沙盒应用程序上保留之前打开的文件或文件夹列表,而无需重新打开它们或复制到它自己的库中?
提前致谢
macos - Mac App Store 沙盒 - 编写新文件?
我一直在玩我想提交到 Mac App Store 的应用程序,部分功能只是抓取用户通过拖动或打开选择的文件,并将修改后的文件保存到与原始文件相同的目录文件(但文件名不同)。
我不想使用“保存”对话框,因为这会破坏我正在构建的应用程序的实用程序,但看起来这可能是允许应用程序(根据沙盒要求)编写将文件作为新文件复制到磁盘上的任意位置(在本例中为任意位置,与现有文件位于同一文件夹中)。
有什么办法可以在不禁用沙盒的情况下解决这个问题?另外,如果我今天提交的应用程序没有打开授权/沙盒,它会被 Apple 批准(假设它通过所有其他要求),还是他们已经拒绝了非沙盒应用程序?
objective-c - 沙盒和 NSTask
我正在尝试在提交到 Mac App Store 之前对我的应用程序进行沙箱处理,并且我需要打开一个 dmg 文件。我尝试了以下方法,但我不知道它是否应该与 Apple Sandbox 一起使用。
如果我将完整路径粘贴到终端中,它可以工作,如果我从应用程序运行,我会收到以下错误:
谢谢你的帮助!S。
cocoa - 带有 NSTask 的沙箱
我启用了沙盒并将/sbin/ping与 NSTask 一起使用:
一切都很好,我得到了预期的输出。
我还想将/usr/sbin/traceroute与 NSTask 一起使用:
但任务以以下消息终止:NSTask:为路径“/usr/sbin/traceroute”创建任务失败:22,“无效参数”。终止临时进程。* 同时沙盒日志:deny denied-exec-sugid
为什么它适用于ping,但不适用于traceroute?以及如何使其与traceroute一起使用?
谢谢!
objective-c - Mac 应用程序沙盒和 forkpty()
我正在寻找沙盒应用程序以符合 Mac App Store 的 3 月 1 日沙盒要求。我的应用程序包括一个内置的终端模拟器,它利用forkpty()
调用在伪 tty 环境中启动进程。不幸的是,此调用在沙箱下失败,并显示错误“不允许操作”,尽管fork()
调用工作正常。大概该forkpty()
调用需要对 /dev/ 目录的读/写访问权限以创建伪 tty(根据手册页)。我尝试添加一个具有对 / 的读/写访问权限的临时沙盒权利 (com.apple.security.temporary-exception.files.absolute-path.read-write),现在我确实可以在文件系统,但forkpty()
调用仍然失败并出现相同的错误。有谁知道我怎么可能得到forkpty()
在沙箱下工作?
我的应用程序是一个带有内置终端模拟器和文件浏览器的编程文本编辑器,因此它本质上需要访问整个文件系统。除了forkpty()
问题之外,这种临时权利似乎可以满足我的需要。但是,Apple 会接受具有如此松散定义的临时例外权利的应用程序吗?
提前谢谢各位。我真的希望我能启动并运行这个沙盒,所以我继续通过 App Store 分发我的应用程序。
macos - 如何在没有沙盒的情况下运行沙盒 OS X 应用程序?
我有一个使用沙盒运行的应用程序。如何在没有沙盒的情况下运行它?假设我不能在关闭沙盒的情况下重新编译应用程序。
xcode - 启用沙盒时应用无法加载
我有一个应用程序正在访问其捆绑包中的 SQLite 数据库和其他一些数据文件。除此之外,没有文件系统、网络或硬件访问。当我打开权利和沙箱我的应用程序时,它不会启动。我在 Xcode 中点击播放,显示应用程序正在运行,但没有显示窗口,并且没有输出记录到 Xcode 中的调试控制台。
我怎样才能弄清楚什么是破坏?
objective-c - 如何为沙盒 Mac 应用程序设计 Growl.framework
我正在尝试在 App Store 中提交 Mac 应用程序以供审批,但与 Growl 链接会导致验证错误。我正在尝试从命令行重新设计,但出现以下错误:
我试过重新下载框架,但没有运气。有人看到我做错了什么吗?
macos - 如何在 Lion 的沙盒应用中发送分布式通知?
我无法在我尝试在 Lion 中沙箱的应用程序中发送分布式通知。得到……</p>
…在控制台的system.log
. 是否可以添加任何权利以允许通知。
是否有可能做到这一点,如果可以,怎么做?