xamarin - Xamarin iOS 构建的 DevOps CI 错误 在钥匙串(keychain)中找不到有效的 iOS 代码签名 key

标签 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): error : No valid iOS code signing keys found in keychain. You need to request a codesigning certificate from https://developer.apple.com. [/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)

此处的关键位是 XamariniOS@2 任务上的 signingIdentitysigningProvisioningProfileID

关于xamarin - Xamarin iOS 构建的 DevOps CI 错误 在钥匙串(keychain)中找不到有效的 iOS 代码签名 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56258438/

相关文章:

javascript - 在 ios 上的 m.youtube.com 上导航的 uiwebview 上获得点击链接

xamarin.ios - 在单点触控中自动构建

c# - 使用带有进度对话框的异步任务的 Xamarin.forms Web 服务调用

npm - Azure DevOps gulp 步骤失败,未找到本地模块

c# - 消息错误 : System. InvalidCastException:指定的转换无效 10

amazon-web-services - 如何在使用 HashKey + RangeKey 组合时使用 HashKey 从 DynamoDB 获取项目列表?

azure-devops - Azure Devops 扩展操作

Git 错误 : RPC failed; result=22, HTTP 代码 = 404

尝试从相机添加附件时 iOS 11 应用程序崩溃

c# - Xamarin iOS WkWebView 和 WebRTC 麦克风无法在后台工作