如何检查OSX应用程序运行时是否启用了沙盒?
我需要它来为我的库进行一些可以在不同环境中运行的断言测试。
答案 0 :(得分:3)
在Finder中,查看〜/ Library / Containers /文件夹的内容。
如果快速启动应用程序是沙盒,则现在有一个容器文件夹 以您的应用命名。该名称包含该公司的标识符 项目,所以完整的文件夹名称将是,例如, com.yourcompany.AppSandboxQuickStart。
系统为给定用户创建应用程序的容器文件夹 用户第一次运行应用程序。
在“活动监视器”中,检查系统是否将应用识别为 沙盒。
启动活动监视器(在/ Applications / Utilities中可用)。
在“活动监视器”中,选择“视图”>列。确保沙盒菜单 项目已经过检查。
在Sandbox列中,确认“快速启动”应用的值 是是的。
为了便于在“活动”监视器中找到该应用,请输入 “过滤器”字段中的“快速启动”应用程序的名称。
- 醇>
检查应用程序二进制文件是否为沙箱。
codesign -dvvv --entitlements :- executable_path
答案 1 :(得分:2)
最后我选择了这种解决方法(因为它很简单):
func isSandboxingEnabled() -> Bool {
let environment = NSProcessInfo.processInfo().environment
return environment["APP_SANDBOX_CONTAINER_ID"] != nil
}