0

我的问题是关于从 macOS 上的其他应用程序调用经过公证的应用程序。

通常,如果将两个应用程序打包在一起,说是一个.dmg包,然后是“公证”和“装订”,那么从另一个应用程序调用一个应用程序绝对没有问题。macOS 的 Gatekeeper 知道附加到.dmg包的公证票证涵盖了这两个应用程序。

但是由于与这里无关的原因,我们将被调用的应用程序(我们称之为“ app A ”)放入一个 jar 中。然后,主应用程序将从 jar 中即时提取“app A”,然后调用它。与“正常”场景不同,签名和公证的.dmg包现在将包含 {main app, jar contains " app A "}。

显然,我们在将“ app A ”放入罐子之前对其进行签名和公证。
但是不可能将公证票附加到“ app A ”二进制文件(不可能“装订”它)。这意味着我们的“ app A ”将在 Apple ID 数据库中的某个地方注册,但如果最终用户没有连接到 Internet,我们的主应用程序可能无法正确调用“ app A ”。

总结一下:

  • 正常情况,没问题:.dmg package = {main app, app A },main app 调用app A.dmg包附带的公证票“涵盖”主应用程序和“应用程序 A ”。因此,从主应用程序调用“应用程序 A ”从来都不是问题。
  • 我的情况:.dmg package = {main app, jar contains app A },主应用程序从 jar 中动态提取应用程序 A,然后调用它.dmg包附带的公证票不应该涵盖“ app A ”,因为.dmg包的公证不会查看 jar 档案内部。因此,如果最终用户未连接到 Internet,则从主应用程序调用“应用程序 A ”可能会出现问题。

是否有文档可以明确说明此问题?
我有哪些选择?

4

0 回答 0