问题标签 [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.

0 投票
1 回答
1688 浏览

macos - 控制台未在 Apple 的快速启动中显示 Mac OS 应用沙箱违规

我正在逐步完成这个 Apple 教程以启用沙盒。我已经成功地完成了这些部分,创建了 Xcode 项目,启用了应用程序沙盒,创建了证书,指定了代码签名身份并确认了应用程序是沙盒的。

然后,当我尝试诊断故意违规时,控制台中没有像指南描述的那样出现任何内容。启用应用沙盒已勾选,但其下方没有任何内容(例如,允许传出连接)。权利文件表明沙盒已启用,该应用程序未显示 Apple 网站,活动监视器表示该应用程序已被沙盒化。

我正在使用Console.app,查看所有消息(如本教程的诊断应用程序沙盒违规部分中所述)。我希望看到来自 的消息sandboxd,但看不到与沙盒相关的任何内容。应用程序本身的行为与教程中描述的完全一样,在未沙盒时显示 Apple 网站,然后在沙盒时不显示。

我在 Mac OS 10.8.2、Xcode 4.5.1 上。我错过了什么?

0 投票
2 回答
1417 浏览

macos - 无法为文件获取应用范围的书签 - OS X 沙盒

我一直在网上搜索和 Apple 的帮助,以寻求有关这方面的某种指导,但最终还是失败了。我想知道是否有人遇到过类似的情况,或者可能对正在(或没有)发生的事情有所了解。

我正在尝试为应用程序在以后的会话中调用的文件获取应用程序范围的书签。在用户选择后,我可以确认路径本身已正确添加到沙箱中,因为我可以在会话期间打开(并重新打开)它。

但是,尝试获取安全范围的书签以稍后访问它是行不通的。

这就是我正在做的事情:

我已经尝试过使用url从字符串生成的path方法以及仅使用例如 NSSavePanel 的结果对其进行测试URL。(由于遗留原因,该字符串path是我希望能够使用的字符串。)

我不得不使用 for 的值bookmarkDataWithOptions而不是常量,因为由于一些其他遗留代码的原因,我不得不使用NSURLBookmarkCreationWithSecurityScope不可用的 10.6 SDK 进行编译。

我可以确认路径指向有问题的文件为“/Users/me/Documents/document.ext”,并且NSURL似乎正确初始化(或至少反映了相同的路径)。

该应用程序包括权利com.apple.security.files.bookmarks.app-scope

无论如何,这是行不通的。该代码导致 abookmarkData为 0x0 和 anerror为 0x0,控制台显示:ScopedBookmarkAgent: Failed to retrieve app-scope key, aborting.

如果我更改relativeToURL为isurl而不是nil并将权利更改为com.apple.security.files.bookmarks.document-scope,那么它似乎可以正常工作 - 也就是说,bookmarkData至少获得一个非零值并且不会记录任何错误。但我很确定这不是我想要的(即文档范围的书签)。

有什么明显的我做错了吗?

0 投票
1 回答
1375 浏览

cocoa - 如何将 Webkit 插件添加到我的沙盒 OS X 应用程序 WebView?

我是 OS X 应用程序开发的新手,所以请耐心等待.....我有一个 OS X 应用程序,它广泛使用 WebView 为用户提供依赖于浏览器插件的视频会议/屏幕共享功能。当我禁用沙盒时,视频插件可以工作,但我们想在 OS X App Store 中分发我们的应用程序,并且需要让它与沙盒 WebView 一起工作。

我的问题是,如何启用沙盒并让我的沙盒 WebView 包含浏览器插件?我可以将插件与应用程序捆绑在一起并使用包含的插件初始化 WebView 吗?Apple 开发人员文档或互联网上的某处是否有此示例?

0 投票
3 回答
3552 浏览

ios - iOS GameCenter 排行榜仅在沙盒模式下显示我的分数

我在沙盒模式下为我的游戏创建了排行榜。然后我尝试使用不同的游戏中心帐户玩游戏。但我只能看到当前登录帐户的分数。这是对的吗?或者我错过了什么?如何用一堆记录填充沙盒排行榜来测试我的游戏?

谢谢!

0 投票
2 回答
2512 浏览

cocoa - Application Sandbox: renaming a file doesn't work

I have a basic Cocoa app that let's the user manage a list of files. Files are added via drag & drop and I persist the access permissions in a secure bookmark across application restarts.

So far so good. The app is allowed to read and write to the user's files, but renaming fails with a permission error claiming that my app is not allowed to access the parent folder.

Code:

Error:

I swear that this used to work just yesterday, nothing changed... (see update below)

Anyway. I would assume that if a user allows access to a file via an Open dialog or drag & drop that a sandboxed application should be allowed to rename the file.

UPDATE:

I finally managed to track this down to a change in my code:

I can reproduce the error when I call NSFileCoordinator.item(at: newSrcUrl, willMoveTo: newDstUrl) before performing the actual move. If I skip this step, everything works again without any errors in the console.

The full code:

item(at oldURL: URL, willMoveTo newURL: URL) seems to be intended when changing the document's filename extension (e.g. .rtf to .rtfd), which is not the case for my app. Only the file name changes, not the file extension. I figured it would be best practice to call the will/didMove methods, but looks like there are side effects.

To recap, all my app does is to ask the user to open a folder (via NSOpenPanel so my app gets permission to write to that folder), then my app creates a file in that folder and later on renames it.

0 投票
1 回答
190 浏览

objective-c - 在 OS X App Sandbox 中更新文件的最佳实践

我知道将非沙盒应用程序迁移到应用程序沙盒的方法,尽管我想知道一旦已经在应用程序沙盒容器中更新文件(主要是首选项列表)的最佳实践是什么?

最终,如果有一种类似的方法可以NSUserDefaults在应用程序沙箱容器中更新我的偏好列表,这就是我想要做的。

我读过的资料:

应用沙盒设计指南

NSUserDefaults 类参考

应用沙盒

0 投票
2 回答
1659 浏览

macos - 如何在没有 Mac 开发者计划帐户的情况下测试应用程序沙盒

我可以在没有 iOS 开发者计划帐户的情况下使用模拟器为 iOS 进行开发(我只是无法在设备上运行。)是否有等效的方式为 Mac 开发者计划的东西工作?在注册付费帐户之前,我想测试我的一些实用应用程序的沙盒兼容性(以及因此 App Store 分发)。如果我的应用程序不工作或至少不容易修复,那 99 美元就不值了。

我可以启用哪些项目设置来强制沙盒?我希望代码签名不起作用。

0 投票
0 回答
258 浏览

macos - mac 沙盒权利和相关功能的时间表

我知道沙盒是在 Mac OS X Lion (10.7) 中引入的,但临时异常权利,特别是 com.apple.security.temporary-exception.files.home-relative-path.read-write,是在后来的 10.7.x 中引入的更新(哪一个?)

10.7.3 中引入了类似的安全范围书签。

我的 Mac 应用程序(目前没有沙盒)是一个基于文档的应用程序,它创建的文档引用了用户 Mac 上的图片。一旦用户在他的文档中使用了一些图片,我们只需在该文档中保存所用图片的路径(例如 /Users/myname/Desktop/pic.jpg)。当用户退出应用程序并重新打开保存的文档时,我们的应用程序可以简单地使用文档中的路径访问图片。由于我们的应用程序没有沙盒化,因此适用于所有版本 10.6.x、10.7.x 和 10.8.x

我们现在想对我们的应用程序进行沙箱处理,并确保它继续在 Mac OS X 的所有版本(10.6.x、10.7.x 和 10.8.x)上运行。为了实现这一点,我们将

  1. 请求临时异常权利,特别是 com.apple.security.temporary-exception.files.absolute-path.read-write,这将启用 10.7.3 及更高版本的随机文件访问。但是我们为 10.7、10.7.1 和 10.7.2 做些什么呢?

  2. 在 10.7.3 之后,我们将开始使用安全范围的书签。

0 投票
1 回答
196 浏览

macos - 哪个版本的 Mac OS X 首次包含临时例外权利?

我知道沙盒是在 Mac OS X Lion (10.7) 中引入的,但临时异常权利,特别是 com.apple.security.temporary-exception.files.home-relative-path.read-write 是在后来的 10.7.x 中引入的更新。哪个 10.7.x 更新?

0 投票
1 回答
1667 浏览

objective-c - 如何在沙盒 mac 应用程序中获取用户的图片目录?

我有一个 com.apple.security.assets.pictures.read-write 权利设置为 YES 的 sanboxed mac 应用程序。因此,我可以访问用户实际的 /Users/username/Pictures 目录。

我想以编程方式获取此目录的路径,我该怎么做?

我目前执行以下操作,但它会导致沙箱容器图片位置。