Ошибка CI DevOps для сборки Xamarin для iOS В цепочке для ключей не найдено действительных ключей подписи кода iOS - PullRequest
2 голосов
/ 22 мая 2019

Я создал конфигурацию сборки YAML для своего приложения Xamarin для iOS и предоставил файлы сертификатов (p12 и mobileprovision), но когда конвейер запускается, он завершается ошибкой на этапе сборки приложения.Установка для сертификатов проходит.

Примечание сборка с теми же файлами сертификатов и паролем прекрасно работает в App Center

В DevOps я получаю следующую ошибку:

/Библиотека / Каркасы / Mono.framework / Внешняя / xbuild / Xamarin / iOS / Xamarin.iOS.Common.targets (646,3): ошибка: в цепочке для ключей не найдено действительных ключей подписи кода iOS.Вам необходимо запросить сертификат подписи кодов у https://developer.apple.com. [/Users/vsts/agent/2.150.3/work/1/s/AwesomeApp/AwesomeApp.iOS/AwesomeApp.iOS.csproj]

Ниже приведен мой yaml в DevOps Azure:

- 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, но все еще получаю ошибку.

1 Ответ

3 голосов
/ 22 мая 2019

Если вы не установите свойства следующим образом:

- 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.

...