2

我有一个 MacOS 应用程序,想在 AppStore 之外作为 DMG 文件分发给 beta 用户。

我已经阅读了一些关于如何公证应用程序的文章,并按照步骤成功公证 DMG 文件,没有任何问题。

我的开发机器运行在 MacOS 10.14 上,XCode 版本是 10.1。

但是,当我尝试在另一台运行 MacOS 10.14.5 的测试机器上检查经过公证的 DMG 文件时(通过 AirDrop 发送文件,或从我的网站下载),我仍然看到来自 GateKeeper 的弹出消息“'myApp.dmg ' 无法打开,因为 Apple 无法检查它是否存在恶意软件。” 在那台机器上。

Gatekeeper 似乎无法正常检查经过公证的 DMG 文件。有没有人有同样的问题以及如何解决这个问题?

4

1 回答 1

0

简短的回答

这可能是由于RPATH引用了 App 捆绑包之外的路径。删除此 RPATH 将解决该问题。

检查日志文件

您可以在Console.app. 请注意,在尝试打开被阻止的应用程序之前,您应该打开 Console.app,否则可能不会记录所有消息。您应该XprotectService在设备的日志中查找进程(即在 Console.app 的左侧栏中选择您的设备)。如果 RPATH 确实是问题所在,您应该找到这样的记录:

XprotectService:[com.apple.xprotect:xprotect] 文件 /path/to/your/executable/or/library 在 rPathCmd /rpath/causing/the/problem 上失败(rpath 解析为:(找不到路径),bundleURL:/path /to/your/bundle.app)

检查这些日志文件也可能为您提供解决其他问题的关键。

请注意,我从 Apple 工程师那里收到了以下信息:

Gatekeeper 不会通过 UI 通知用户错误的细节,尽管它在日志中供开发人员查看。公证过程纯粹是关于检测恶意软件,不会复制 Gatekeeper 的执行。您仍然需要对软件进行公证并使用 Gatekeeper 进行测试。

我们希望在未来为开发人员提供更好的工具来预检其中一些常见错误。

联系苹果

如果您无法通过上述信息解决您的问题,您可能需要使用反馈助手联系 Apple 。他们的反应不是很快(约 1-2 周),但答案很中肯。

于 2019-12-02T20:30:55.367 回答