##[error]Error: /usr/local/bin/openssl failed with return code: - Azure devops - Xamarin iOS

##[error]Error: /usr/local/bin/openssl failed with return code: - Azure devops - Xamarin iOS

我在 YAML 中创建和 运行 我的管道时遇到此错误。我能够成功 运行 我在经典编辑器中创建的管道。

- task: InstallAppleCertificate@2
  displayName: 'Install an Apple certificate'
  inputs:
    certSecureFile: ******-****-****-****-*********
    certPwd: ''
    setUpPartitionIdACLForPrivateKey: false

对于 certSecureFile,我尝试了两种安全文件代码,还尝试给出了它的名称 (AFP_Distribution_Certificate.p12)。但最终得到了同样的错误。

对我们来说,certSecureFile 是安全文件中的 Name 属性(您可以在安全文件中重命名它)。

在我们用于 iOS 构建的 YAML 管道中,它看起来像这样:

- task: InstallAppleCertificate@2
  inputs:
    certSecureFile: ${{parameters.certSecureFile}}
    certPwd: ${{parameters.certPwd}}
    keychain: 'temp'

参数为:

certSecureFile 是库/安全文件区域中安全文件的“名称”。

此安全文件是一个 .p12 文件 - 它是导入从 Apple 下载的 .cer 文件后从 Keychain Access 导出的 私钥 。 (看来你的也是)。

我们的“更新证书”文档有关于确保证书具有相同名称的具体说明 - 我们重命名以前的证书并使用“the”名称命名新证书。类似于 myapp_certificate.p12 但它可以是任何东西。

certPwd 参数来自通过库/变量组存储的凭据组。它必须与您从钥匙串访问导出时使用的密码相匹配。强烈建议您不要继续使用''

我不知道我们的 keychain: temp 来自哪里,但我怀疑这与 openSSL 有关。

(如果您还没有解决这个问题,可能值得将完整的错误消息也放在问题的正文中)