我正在开发一个应用程序,该应用程序将启动其他应用程序(具体system("javaws ...)
)。
我的问题是,如果我使用 Apple 识别的开发人员密钥对我的应用程序进行签名,如果我的应用程序启动其他未签名的应用程序,Gatekeeper 是否会启动并显示弹出窗口/警告?
(我会自己尝试一下,但我还没有确定的开发人员密钥,我想在申请之前我会在这里询问。
以下是我发现的唯一相关问题:如何为 OSX 和 Gatekeeper 签署(动态)JNLP 文件
不,如果您使用 system(... )启动不同的未签名应用程序,Gatekeeper 将不会显示其他警告。
Gatekeeper 的工作原理是检查.app捆绑包的隔离标志,如果已设置,则在启动该.app捆绑包之前对其进行签名检查。 (当从互联网下载应用程序时,隔离标志存储为扩展属性,例如,使用 Firefox 或 Safari。 当用户从查找器或正在调用的命令行"open"实用程序双击.app时,似乎会发生这种情况。 我不知道任何其他触发网守检查的机制。
您可以使用 system(..) 打开任何您喜欢的东西,而不会遇到网守问题,无论您调用的可执行文件是否在签名的 .app 捆绑包中。 此外,javaws 不应该为它打开的任何内容触发网守检查。