Я создал конфигурацию сборки 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, но все равно получаю ошибку.
Если вы не устанавливаете свойства следующим образом:
- 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
.
Это сработало, это была очевидная вещь, которую упустили. Спасибо, что указали!
Легко сделать ошибку... Вам также нужно смотреть журнал сборки, чтобы все получилось ?
Спасибо, это имеет смысл, изменено и перестроено сейчас. Давайте посмотрим.