我有一个MacOS应用程序,想以DMG文件形式在AppStore之外分发给Beta用户。
我已经阅读了一些有关如何对应用程序进行公证的文章,并按照以下步骤成功地对DMG文件进行了公证。
我的开发计算机在MacOS 10.14上运行,并且XCode版本是10.1。
但是,当我尝试在另一台运行MacOS 10.14.5的测试机上检查经过公证的DMG文件时(通过AirDrop发送文件,或从我的网站下载),我仍然看到GateKeeper的弹出窗口,显示消息“'无法打开myApp.dmg',因为Apple无法检查它是否包含恶意软件。”在那台机器上。
似乎Gatekeeper无法正常检查经过公证的DMG文件。是否有人遇到相同的问题以及如何解决?
答案 0 :(得分:0)
简短答案
这可能是由于RPATH
引用了App Bundle之外的路径。删除此RPATH将解决问题。
检查日志文件
您可以在Console.app
中找到有关拒绝的其他信息(尝试启动被阻止的应用程序之后)。请注意,在尝试打开被阻止的应用程序之前,应先打开Console.app,否则可能不会记录所有消息。您应该在设备的日志中查找过程XprotectService
(即,在Console.app的左侧栏中选择设备)。如果RPATH确实是问题所在,则应该找到这样的记录:
XprotectService:[com.apple.xprotect:xprotect]在rPathCmd / rpath / cause / the / problem上文件/ path / to /您的/可执行文件/或/库失败(rpath解析为:(未找到路径),bundleURL :/path/to/your/bundle.app)
检查这些日志文件也可以为您提供解决其他问题的钥匙。
请注意,我从Apple工程师那里收到了以下信息:
Gatekeeper不会通过UI通知用户有关 错误,尽管它在日志中供开发人员查看。的 公证过程完全是关于检测恶意软件的 并且不复制Gatekeeper强制执行。你仍然需要 经公证的软件,并使用Gatekeeper进行测试。
我们希望将来为开发人员提供更好的工具 预检一些常见错误。
联系苹果
如果使用上述信息无法解决问题,则可能需要使用Feedback Assistant与Apple本身联系。他们的回复速度不是很快(〜1-2周),但是答案很明确。