最初,我尝试将我们的 Adobe AIR Mac 应用程序与 Mac Developer 分发证书进行协同设置,该证书通常以“3rd Parth Mac Developer Application:xxx”开头。后来,我通过https://developer.apple.com/library/mac/technotes/tn2206/_index.html#//apple_ref/doc/uid/DTS40007919-CH1-TNTAG211阅读,其中讨论了通过 codesign 和 spctl 命令验证只需要证书是开发者 ID 证书(我使用'开发者 ID Application:xxx'):

与 Gatekeeper 一样,spctl 默认只接受从 Mac App Store 下载的 Developer ID-signed 应用和应用。它将拒绝使用 Mac App Store 开发或分发证书签名的应用程序。

我的验证命令是:

./check-signature DEPLOY/Moonshine.app DEPLOY/Application.pkg

(c)2014 Apple Inc.保留所有权利。

DEPLOY/Application.app:是

DEPLOY/Application.pkg:是

spctl -a -t exec -vv DEPLOY/Application.app

DEPLOY/Application.app:接受了

source=Developer ID

override=security 禁用

origin=Developer ID 应用:xxx(LS9K97G9DD)

如 Apple 开发者页面中所述,这两个命令都重新调整了正面结果。

当我们将应用程序提交到 App Store 时,我们返回了“test-requirement:代码无法满足指定代码 requirement(s”这样的错误.我们还提供了 Apple 建议的(代码要求)链接:https://developer.apple.com/library/mac/technotes/tn2206/_index.html#//apple_ref/doc/uid/DTS40007919-CH1-TNTAG4,我们开始使用以下命令在本地验证.app 文件:

codesign -vvvv -R="anchor apple" DEPLOY/Applications.app

我们开始收到 Apple 发送给我们的同样错误:

--prepared:/Users/santanu/Documents/Adobe Flash Builder 4.7/ProjectFolder/build/DEPLOY/Application.app/Contents/Frameworks/Adobe AIR.framework/Versions/Current/。 --validated:/Users/santanu/Documents/Adobe Flash Builder 4.7/ProjectFolder/build/DEPLOY/Application.app/Contents/Frameworks/Adobe AIR.framework/Versions/Current/。

DEPLOY/Application.app/:在磁盘上有效

DEPLOY/Application.app/:满足其指定要求

test-requirement:代码无法满足指定的代码 requirement(s)

后来,我还尝试使用 Mac Developer 发行证书(第三方 Mac Developer Application:xxx)代替开发者身份证书,但这并没有改善这种情况。

我现在无法理解在我们的代码签名过程中我们应该使用哪些证书来修复这个'代码无法满足指定的代码要求'错误,或者我们可以解决这个问题的任何其他方式?