Я пытаюсь заставить Azure Pipelines работать с нашим iOS проектом. Я создал более простой проект, и все работает нормально в более простом проекте, но наше основное приложение использует OneSignal для уведомлений. Это означает, что есть дополнительная цель и другой профиль обеспечения. Прочитав все, что я могу найти о профилях подготовки и о том, как настроить файл yaml, я в растерянности.
Лучшая информация, которую я смог найти, это здесь
Мой файл YAML в настоящее время выглядит так:
pool:
vmImage: 'macOS-10.14'
variables:
- group: ios-pipeline
- name: configuration
value: 'Release'
- name: sdk
value: 'iphoneos'
steps:
- task: InstallAppleCertificate@2
inputs:
certSecureFile: '$(p12FileName)'
certPwd: '$(p12Password)'
keychain: 'temp'
deleteCert: true
- task: InstallAppleProvisioningProfile@1
inputs:
provisioningProfileLocation: 'secureFiles'
provProfileSecureFile: '$(oneSignalProvProfile)'
- task: InstallAppleProvisioningProfile@1
inputs:
provisioningProfileLocation: 'secureFiles'
provProfileSecureFile: '$(provisioningProfile)'
- task: CocoaPods@0
inputs:
forceRepoUpdate: false
- task: Xcode@5
inputs:
actions: 'build'
xcWorkspacePath: '**/PROJECT_NAME.xcworkspace'
scheme: 'SCHEME_NAME'
packageApp: true
exportOptions: 'plist'
exportOptionsPlist: '**/DevOpsOptions.plist'
signingOption: 'auto'
teamId: 'OUR_TEAM_ID'
Ссылка на файл plist в сборке задача содержит следующее:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>provisioningProfiles</key>
<dict>
<key>APP_BUNDLE_ID.OneSignalNotificationServiceExtension</key>
<string>THE UUID FOR THIS PROFILE</string>
<key>APP_BUNDLE_ID</key>
<string>THE UUID FOR THIS PROFILE</string>
</dict>
<key>signingCertificate</key>
<string>iOS Distribution</string>
<key>signingStyle</key>
<string>manual</string>
<key>method</key>
<string>app-store</string>
<key>teamID</key>
<string>OUR_TEAM_ID</string>
</dict>
</plist>
Когда я пытаюсь запустить эту конфигурацию, я получаю следующую ошибку:
❌ error: No profiles for 'MAIN_APP_BUNDLE_ID' were found: Xcode couldn't find any iOS App Development provisioning profiles matching 'MAIN_APP_BUNDLE_ID'. Automatic signing is disabled and unable to generate a profile. To enable automatic signing, pass -allowProvisioningUpdates to xcodebuild. (in target 'MAIN_APP_BUNDLE_ID' from project 'PROJECT_NAME')
❌ error: No profiles for 'OneSignalNotificationServiceExtension_BUNDLE_ID' were found: Xcode couldn't find any iOS App Development provisioning profiles matching 'OneSignalNotificationServiceExtension_BUNDLE_ID'. Automatic signing is disabled and unable to generate a profile. To enable automatic signing, pass -allowProvisioningUpdates to xcodebuild. (in target 'OneSignalNotificationServiceExtension_BUNDLE_ID' from project 'PROJECT_NAME')
Я также пробовал использовать параметр подписи вручную, используя:
- task: Xcode@5
inputs:
actions: 'build'
xcWorkspacePath: '**/WORKSPACE_NAME.xcworkspace'
scheme: 'SCHEME_NAME'
packageApp: true
signingOption: 'manual'
signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'
Когда я использую эту задачу сборки, я получаю сообщение об ошибке о том, что для OneSignalExtension не установлен профиль подготовки. Я здесь порчу дохлую лошадь или кому-нибудь удалось заставить это (или что-то подобное) работать? Спасибо за любую помощь, которую может мне дать!