【问题标题】:Remove Sandboxing删除沙盒
【发布时间】:2011-08-10 21:55:53
【问题描述】:

我还有一个关于应用沙盒的问题。所以我需要访问用户的主目录,同时应用程序应该能够关闭 Mac。这要求不使用沙盒。

我的问题是我不知道如何删除沙盒并能够将应用程序提交到 Mac App Store。我认为档案是沙盒的,因为我打开过一次..

如何正确地从档案中移除沙盒?

感谢您的帮助!

【问题讨论】:

  • 您的问题是如何从用户机器上的应用程序中删除沙盒,或者如何通过 Xcode 中的设置删除沙盒并构建新的应用程序以进行分发?
  • @sbooth 如何通过 Xcode 中的设置删除沙盒并构建一个新的分发应用程序 - 是的,正是 :) 希望现在有人能够帮助我。我不想破解机器,我只想在应用商店中获取我的应用;)
  • 自从提出这个问题后,Apple 已经添加了一条规则,要求其 App Store 中的所有应用程序都必须进行沙盒处理。关闭沙盒不再是您想要在 Apple 的 App Store 中发布的任何应用程序的选项。

标签: cocoa macos sandbox


【解决方案1】:

在 Xcode 11 上,您可以通过从“签名和功能”选项卡中删除沙盒来关闭它:

【讨论】:

    【解决方案2】:

    如果我理解您的要求正确,您需要从项目中删除 entitlements.plist 并确保 Xcode 中目标的 Summary 视图已关闭沙盒:

    【讨论】:

    • 谢谢,但我的问题是我正在尝试接收 [USER]/Documents 目录的内容:[[NSFileManager defaultManager] contentsOfDirectoryAtPath:[NSHomeDirectory() stringByAppendingPathComponent:@"/Documents/"] error:NULL];,但这在审查机器上返回 nil。在我的它工作正常。所以正是这条线导致了问题,我认为禁用沙盒是不够的,或者你可以告诉我我做错了什么。
    • @user610246:你做错的是伪造路径。您不能只是编造任何您想要的路径并在被沙盒化时访问它;沙盒的主要功能之一是它限制您只能访问您的容器以及用户明确交给您的任何内容(通过“打开”或“保存”面板或拖放)。您需要向文件管理器询问 Documents 目录的正确 URL,对于沙盒应用程序,该 URL 位于容器目录中。
    【解决方案3】:

    正如 Derek Wade 指出的那样,您可以通过使用 HexFiend 等十六进制编辑器编辑二进制文件本身来制作像 GarageBand X 这样的应用程序(由于沙盒,它与 Amplitube 等第三方插件的行为令人讨厌)不在沙盒中运行。寻找:

    <key>com.apple.security.app-sandbox</key>
    

    紧接着你会看到真正的标签,正如我建议的那样,我切换到“fals”(没有额外的字节),现在 GarageBand 将愉快地与第三方 VST 插件交互。呵呵。

    【讨论】:

    【解决方案4】:

    我发现如果你进入 .app 包,在 Contents/MacOS 下,应该有一个与你的应用名称匹配的二进制文件。将该文件复制到您的桌面。使用 TextEdit 编辑文件的桌面副本。您应该在文件中找到应用程序权利的文本表示 (xml)。找到 Sandbox 授权标志(通常设置为 )并将其更改为 。编辑时必须解锁文件。保存文件(位于桌面上)。重命名 .app 包中的原始文件(即将 .old 附加到文件名)。将桌面文件复制回 .app 包位置(您可能需要对其进行授权)。这应该会移除沙盒。

    【讨论】:

    • 您知道应用程序修改后的二进制文件因此导致签名无效的后果是什么吗?
    • 如有必要,您可以退出应用程序。
    • 我发现这给了我错误信息:“您没有打开应用程序“应用程序名称”的权限。
    【解决方案5】:

    如果用户通过沙盒运行您的应用程序,您将无法移除沙盒。
    这就是重点——你不觉得吗?

    【讨论】:

    • 我正在准备一个新的二进制文件,我认为可以删除沙箱吗?还是我完全错了?
    • 但用户(审核团队)每次使用后都会恢复他的 Mac。那也不可能吗?或者在另一台机器(运行 Mac OS X Snow Leopard)上构建它?
    • 正如我之前所说的 - 无论如何,除非你在沙盒程序中发现错误(你应该立即报告) - 你不能离开它。
    猜你喜欢
    • 2018-05-09
    • 2021-07-17
    • 1970-01-01
    • 2016-03-12
    • 2014-03-20
    • 1970-01-01
    • 1970-01-01
    • 2017-12-23
    • 2012-07-29
    相关资源
    最近更新 更多