我正在使用开发者ID签名在Mac App Store外部分发Mac应用程序。事情以前一直在运作,但在我们的上一次构建中,显然发生了一些变化,导致Gatekeeper在从我们的服务器下载后打开它时拒绝该应用程序。
我们正在使用制作"开发者ID应用程序"证书。据我所知,我们已经按照Distributing Applications Outside the Mac App Store中的说明操作了。
令人困惑的部分是以下recommended for testing网守一致性命令都可以正常执行,并表明没有错。 Xcode组织者的验证也没有投诉。
$ spctl -a -t exec -vv MyApp.app/
MyApp.app/: accepted
source=Developer ID
origin=Developer ID Application: Company Name (248C748VF9)
$ codesign --verify --deep --verbose MyApp.app/
MyApp.app/: valid on disk
MyApp.app/: satisfies its Designated Requirement
$ /Volumes/Signature\ Check/check-signature MyApp.app/
(c) 2014 Apple Inc. All rights reserved.
YES
自上次构建以来发生了一些变化,我们的代码片段被重构为一个新的框架。
更新
通过二次搜索提交历史记录和健康剂量的试错,我将问题分离到单个提交,其中一个新的"复制文件"阶段已添加到我们的主应用程序中,以将XPC服务移动到正确的位置。 XPC服务已被复制到登录项助手应用程序中。删除主应用程序中的构建阶段可以解决问题,但遗憾的是主应用程序确实需要XPC服务才能正常运行,因此简单地删除此阶段并不是一个可行的解决方案。