首页 > 解决方案 > 在 Mac OS X 中基于每个应用程序禁用“从 Internet 下载的应用程序”消息

问题描述

我对 MacOs 开发很陌生。我正在制作包含四个模块(目标应用程序)的 mac 应用程序。我需要在需要时启动所有子模块。所以我在下面使用。

NSString *filePath = [[NSBundle mainBundle] pathForResource:appName ofType:extension];
NSWorkspace *workSpace = [NSWorkspace sharedWorkspace];
NSString *appPathIs = [workSpace fullPathForApplication:filePath];
[workSpace launchApplication:appPathIs];

每次我从系统弹出从互联网下载的应用程序时启动模块时都会出现问题。我需要取消这个弹出窗口。

我经历了这么多,我尝试了一切,但我仍然无法解决这个问题。下面是我用过的东西。

  1. http://osxdaily.com/2010/09/12/disable-application-downloaded-from-the-internet-message-in-mac-os-x/
  2. 通过 NSTask 启动应用程序。

如果我使用 system("open -n applicationPath") 弹出没有第一次进入。但是,当我尝试第二次启动应用程序时,问题不会重新启动。

请尝试帮助我。提前致谢。

标签: objective-cmacos

解决方案


最后!我找到了解决方案。当我们从从网站下载的 dmg 文件运行应用程序时。它在 ROM 中运行。所以我们不能改变ROM文件夹中的文件属性。

所以我们将这些文件从 ROM 文件夹复制到用户定义的文件夹,然后我们应用

 xattr -d -r com.apple.quarantine /userdefinedPath/to/application/

然后我们可以避免子应用程序的弹出。


推荐阅读