Ошибка DevOps CI для сборки Xamarin iOS. В цепочке ключей не найдены действительные ключи подписи кода iOS.

Я создал конфигурацию сборки YAML для своего приложения Xamarin iOS и предоставил файлы сертификатов ( 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]

Ниже мой yaml в Azure DevOps:

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

3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
3
0
1 222
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

Спасибо, это имеет смысл, изменено и перестроено сейчас. Давайте посмотрим.

Umair 22.05.2019 16:40

Это сработало, это была очевидная вещь, которую упустили. Спасибо, что указали!

Umair 22.05.2019 17:13

Легко сделать ошибку... Вам также нужно смотреть журнал сборки, чтобы все получилось ?

Iain Smith 22.05.2019 17:37

Другие вопросы по теме

Удаление Tabbar со страницы с вкладками оставляет пустое место. Как это удалить?
Обнаружить всплывающую навигацию в контроллере целевого представления
Как создать эффект Haptics с помощью Xamarin.iOS?
Не может показать alertcontroller, когда страница отображается с использованием PushModalAsync
Ошибка «Попытка представить Xamarin_Forms_Platform_iOS_ModalWrapper, чье представление не находится в иерархии окон» с помощью UIImagePickerController
Приложение Xamarin для iOS аварийно завершает работу сразу после запуска
Как проверить, установлены ли приложения, которые позволяют загружать не из магазина, но не требуют полного джейлбрейка: iNoJB, TweakBox, Zestia, Emus4u на устройстве iOS
Xamrin.ios рисует круглую полосу прогресса от верхнего края вместо правого края
Невозможно удалить из очереди ячейку с идентификатором, необходимо зарегистрировать перо или класс для идентификатора или подключить ячейку-прототип в раскадровке
Как я могу отладить ошибку компоновщика Xamarin watchOS