我有一个MacOS应用程序,并想分发给测试版用户作为AppStore外的DMG文件。
我已经阅读了一些关于如何公证应用程序的文章,并按照这些步骤成功地公证了DMG文件,没有任何问题。
我的开发机器运行在MacOS 10.14上,XCode版本是10.1。
然而,当我尝试在另一台运行在MacOS 10.14.5上的测试机上检查经过公证的DMG文件(通过AirDrop发送文件,或从我的网站下载)时,我仍然看到来自GateKeeper的弹出消息"'myApp.dmg‘无法打开,因为苹果无法检查它是否有恶意软件。“在那台机器上。
检查公证DMG文件时,Gatekeeper似乎无法正常工作。有没有人有同样的问题,如何解决?
发布于 2019-12-03 04:30:55
Short answer
这可能是由于RPATH引用了应用程序包外部的路径。删除此RPATH将解决此问题。
检查日志文件
您可以在Console.app中找到有关拒绝的额外信息(在尝试启动被阻止的应用程序之后)。请注意,在尝试打开被阻止的应用程序之前,您应该打开Console.app,否则可能不会记录所有消息。您应该在设备的日志中查找process XprotectService (即在Console.app的左侧栏中选择您的设备)。如果RPATH确实是问题所在,您应该可以找到这样的记录:
XprotectService:文件/path/to/your/executable/or/library在rPathCmd上失败/r路径/导致/ com.apple.xprotect:xprotect /问题(r路径解析为:(未找到路径),bundleURL: /path/to/your/bundle.app)
检查这些日志文件也可以为您解决其他问题提供一把钥匙。
请注意,我从一位苹果工程师那里收到了以下信息:
网守不会通过UI通知用户错误的细节,尽管它在日志中供开发人员查看。公证过程纯粹是为了检测恶意软件,并不复制网守强制执行。您仍然需要对软件进行公证,并使用Gatekeeper进行测试。
我们希望在未来为开发人员提供更好的工具,以预测一些常见的错误。
联系苹果公司
如果您无法使用上述信息解决您的问题,您可能需要使用Feedback Assistant与苹果联系。他们的反应不是很快(~1-2周),但答案是相当中肯的。
https://stackoverflow.com/questions/57174961
复制相似问题