解码Mac App Store指定的要求

时间:2015-03-25 09:12:36

标签: macos mac-app-store codesign

我的应用程序中有以下指定要求:

(
    anchor apple generic
    and certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ 
or
    anchor apple generic
    and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */
    and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */
    and certificate leaf[subject.OU] = <redacted_team_id>
)
    and identifier "com.company.app"

现在我正在尝试针对此DR验证我的应用的开发版本。 “apple generic”根证书检查工作正常,捆绑标识符检查工作正常。第一个分支(6.1.9)中的证书检查会查找“Apple Mac App Signing(Release)”证书,因此失败。这是预期的开发版本。

据我了解DR,第二个分支(检查证书字段6.2.6和6.1.13)应该适用于开发版本,但两个证书字段检查都失败了:

$ codesign --verify -R="certificate 1[field.1.2.840.113635.100.6.2.6]" MyApp.app
test-requirement: code failed to satisfy specified code requirement(s)
$ codesign --verify -R="certificate leaf[field.1.2.840.113635.100.6.1.13]" MyApp.app
test-requirement: code failed to satisfy specified code requirement(s)

我的问题是:6.2.6和6.1.13证书字段究竟是什么?为什么我的(正确签名的)开发版本不符合它们?

1 个答案:

答案 0 :(得分:0)

6.2.6和6.1.13证书字段与使用开发者ID证书签名的应用程序相关。开发版本与它们不匹配,因为它是使用普通的Mac开发证书签名的。