Вот упрощенный конвейер YAML:
Код: Выделить всё
trigger:
- main
variables:
- group: _secrets
- name: projectPath
value: 'MyApp.xcodeproj'
- name: scheme
value: 'MyApp DEV'
- name: configuration
value: 'Development'
- name: archiveOut
value: '$(Build.SourcesDirectory)/output/MyApp.xcarchive'
- name: exportDir
value: '$(Build.ArtifactStagingDirectory)/IPA'
- name: exportOptionsPlist
value: 'ExportOptions.plist'
stages:
- stage: Build
displayName: "Build & Export IPA"
jobs:
- deployment: build_job
environment: 'ApprovalGate'
pool:
vmImage: macos-latest
strategy:
runOnce:
deploy:
steps:
- checkout: self
- task: InstallAppleCertificate@2
inputs:
certSecureFile: "Certificates.p12"
certPwd: "$(p12_cert)"
- task: InstallAppleProvisioningProfile@1
inputs:
provProfileSecureFile: "myapp_dev.mobileprovision"
- task: Xcode@5
displayName: "Archive (signed)"
inputs:
actions: archive
scheme: $(scheme)
configuration: $(configuration)
sdk: iphoneos
xcWorkspacePath: $(projectPath)
signingOption: manual
signingIdentity: "Apple Distribution"
provisioningProfileName: myapp_dev
useXcpretty: false
args: >
-archivePath "$(archiveOut)"
На этапе архивирования конвейер завершается сбоем из-за нескольких ошибок подписи из Xcode:
Код: Выделить всё
error: Signing for "GoogleSignIn_GoogleSignIn" requires a development team.
Select a development team in the Signing & Capabilities editor.
(in target 'GoogleSignIn_GoogleSignIn' from project 'GoogleSignIn')
error: Signing for "AppAuth_AppAuthCore" requires a development team.
(in target 'AppAuth_AppAuthCore' from project 'AppAuth')
error: Signing for "Datadog_DatadogCore" requires a development team.
(in target 'Datadog_DatadogCore' from project 'Datadog')
...
** ARCHIVE FAILED **
Использование сертификата распространения Apple и профиля обеспечения App Store (поскольку целью является загрузка в TestFlight)
Основная цель приложения и пользовательские платформы имеют действующую команду DEVELOPMENT_TEAM и используют подпись вручную.
Проверено, что сертификат и профиль обеспечения верны установлен по конвейеру (InstallAppleCertificate@2 + InstallAppleProvisioningProfile@1).
Локальные архивы Xcode работают нормально.
Пытался добавить аргументы типа
DEVELOPMENT_TEAM=XXXXXXXXXX или CODE_SIGNING_ALLOWED=NO — безрезультатно.
Неудачные цели: Зависимости диспетчера пакетов Swift (GoogleSignIn, AppAuth, Datadog и т. д.), а не мои собственные цели.
Вопрос
Как я могу запретить зависимостям Swift Package требовать подписания кода на этапе архивирования в конвейере Azure DevOps?
Есть ли способ указать Xcode пропускать подписание платформ SPM, сохраняя при этом подпись приложение вручную?
Подробнее здесь: https://stackoverflow.com/questions/797 ... oglesignin
Мобильная версия