Xamarin iOS生成的DevOps CI错误在密钥链中找不到有效的iOS代码签名密钥

Xamarin iOS生成的DevOps CI错误在密钥链中找不到有效的iOS代码签名密钥,xamarin,xamarin.ios,azure-devops,Xamarin,Xamarin.ios,Azure Devops,我已经为我的Xamarin iOS应用程序创建了YAML构建配置,并提供了证书文件(p12和mobileprovision),但当管道运行时,它在应用程序的构建步骤中失败。证书的安装已通过 注意具有相同证书文件和密码的版本在App Center上运行良好 在DevOps中,我得到以下错误: /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iOS.Common.targets(646,3): 错误:在密钥

我已经为我的Xamarin iOS应用程序创建了YAML构建配置,并提供了证书文件(p12和mobileprovision),但当管道运行时,它在应用程序的构建步骤中失败。证书的安装已通过

注意具有相同证书文件和密码的版本在App Center上运行良好

在DevOps中,我得到以下错误:

/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iOS.Common.targets(646,3): 错误:在密钥链中找不到有效的iOS代码签名密钥。你需要 从请求代码签名证书。 [/Users/vsts/agent/2.150.3/work/1/s/AwesomeApp/AwesomeApp.iOS/AwesomeApp.iOS.csproj]

以下是我在Azure DevOps中的yaml:

- job: iOS
pool:
  vmImage: 'macos-latest'

steps:
- script: sudo $AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh 5_12_0
  displayName: 'Select the Xamarin SDK version'
  enabled: false

- task: NuGetToolInstaller@0

- task: NuGetCommand@2
  inputs:
    restoreSolution: '**/*.sln'

- task: InstallAppleProvisioningProfile@1
  inputs:
    provisioningProfileLocation: 'secureFiles'
    provProfileSecureFile: 'iOS_Distribution.mobileprovision'

- task: InstallAppleCertificate@2
  inputs:
    certSecureFile: 'ios_distribution.p12'
    certPwd: '$(p12-password)'
    keychain: 'temp'

- task: XamariniOS@2
  inputs:
    solutionFile: '**/*.sln'
    configuration: 'Ad-Hoc'
    buildForSimulator: false
    packageApp: false

我在yaml上尝试了各种不同的选项,但仍然出现错误

您不应该这样设置属性:

- task: InstallAppleCertificate@2
    inputs:
    certSecureFile: 'ios_distribution.p12'
    certPwd: '$(P12password)'
    keychain: 'temp'

- task: InstallAppleProvisioningProfile@1
    inputs:
    provisioningProfileLocation: 'secureFiles'
    provProfileSecureFile: 'iOS_Distribution.mobileprovision'

- task: XamariniOS@2
    displayName: Build iOS App 
    inputs:
    solutionFile: '$(SolutionFile)'
    configuration: '$(BuildConfiguration)'
    buildForSimulator: false
    packageApp: true
    # This value is automatically set by the InstallAppleCertificate task
    signingIdentity: $(APPLE_CERTIFICATE_SIGNING_IDENTITY)
    # This value is automatically set by the InstallAppleProvisioningProfile task
    signingProvisioningProfileID: $(APPLE_PROV_PROFILE_UUID)

这里的关键位是
signingIdentity
signingProvisioningProfileID
上的
XamariniOS@2
任务。

谢谢,这很有意义,现在就修改和重建。让我想想。这很管用,这是一件明显的事情,但却被遗漏了。谢谢你的指点!容易犯的错误。。。您还需要查看构建日志以使其成功