如何确定是不是启用沙盒
Posted
技术标签:
【中文标题】如何确定是不是启用沙盒【英文标题】:How to determine if is sandboxing enabled or not如何确定是否启用沙盒 【发布时间】:2015-10-25 21:27:45 【问题描述】:如何在 OSX 应用运行时检查沙盒是否启用?
我需要它来为我的库进行一些可以在不同环境中运行的断言测试。
【问题讨论】:
【参考方案1】:最后我选择了这个解决方法(因为它很简单):
func isSandboxingEnabled() -> Bool
let environment = NSProcessInfo.processInfo().environment
return environment["APP_SANDBOX_CONTAINER_ID"] != nil
【讨论】:
我确认这可以与 Xcode 11 一起使用。如果应用程序没有被沙盒化,这将返回nil
。【参考方案2】:
This might help
在 Finder 中,查看 ~/Library/Containers/ 文件夹的内容。
如果快速启动应用是沙盒化的,现在有一个容器文件夹 以您的应用命名。该名称包括公司标识符 项目,因此完整的文件夹名称将是,例如, com.yourcompany.AppSandboxQuickStart。
系统会为给定的用户创建应用的容器文件夹, 用户第一次运行应用程序。
在活动监视器中,检查系统是否将应用识别为 沙盒。
启动活动监视器(在 /Applications/Utilities 中可用)。
在“活动监视器”中,选择“视图”>“列”。确保沙盒菜单 项目已检查。
在 Sandbox 列中,确认 Quick Start 应用的值 是是的。
为了更容易在活动监视器中找到应用程序,请输入 过滤器字段中快速启动应用程序的名称。
检查应用程序二进制文件是否被沙盒化。
codesign -dvvv --entitlements :- executable_path
【讨论】:
以上是关于如何确定是不是启用沙盒的主要内容,如果未能解决你的问题,请参考以下文章
如何在启用 Mac App Sandbox 的情况下运行 Shell 脚本?