Я пытаюсь перенести процесс сборки приложения из AppCenter в DevOps и у меня возникла проблема с профилями обеспечения.Наше семейство приложений представляет собой основной шаблон, из которого создаются несколько приложений с небольшими изменениями конфигурации, и для каждого приложения требуются разные наборы профилей обеспечения.
В идеале, я хотел бы, чтобы профили автоматически извлекались изРазработчик Apple, но я не могу найти способ связать учетную запись с DevOps.Также я не смог заставить работать Fastae Spaceauth.
Вторая альтернатива, которую я предложил, - это включить файлы .mobileprovision (программно извлекаемые во время выполнения с безопасного хоста) с помощью задачи «Установить профиль обеспечения Apple».и установка источника в «Репозиторий».В моих журналах сборки я вижу, что профили приложения и обеспечения уведомлений правильно импортированы, но во время сборки fastlane (или xcode) жалуется, что не может найти профиль.Идентификаторы комплекта в «Установить профиль обеспечения Apple» и в моей задаче сборки совпадают, поэтому я не уверен, в чем проблема.
Пример YAML:
steps:
- task: NodeTool@0
displayName: 'Use Node 10.15.3'
inputs:
versionSpec: 10.15.3
- task: Bash@3
displayName: 'Run Post Clone '
inputs:
targetType: filePath
filePath: './appcenter-post-clone.sh'
- task: Npm@1
displayName: 'npm install'
inputs:
verbose: false
- task: CocoaPods@0
displayName: 'pod install'
inputs:
workingDirectory: ios
forceRepoUpdate: true
- bash: 'node node_modules/react-native/local-cli/cli.js bundle --entry-file=''index.js' --bundle-output='./ios/main.jsbundle' --dev=false - -platform='ios''
displayName: 'react-native bundle IOS'
#install provisioning profiles via repo
- task: InstallAppleProvisioningProfile@1
displayName: 'Install an Apple provisioning profile'
inputs:
provisioningProfileLocation: sourceRepository
provProfileSourceRepository: ./certs/app.mobileprovision
- task: InstallAppleProvisioningProfile@1
displayName: 'Install an Apple provisioning profile'
inputs:
provisioningProfileLocation: sourceRepository
provProfileSourceRepository: ./certs/notification.mobileprovision
# Install provisioning profiles via secure storage
- task: InstallAppleProvisioningProfile@1
displayName: 'Install an Apple provisioning profile'
inputs:
provProfileSecureFile: 'app.mobileprovision'
removeProfile: false
- task: InstallAppleProvisioningProfile@1
displayName: 'Install an Apple provisioning profile'
inputs:
provProfileSecureFile: 'notification.mobileprovision'
removeProfile: false
# attempt build with fastlane
- bash: |
echo $FASTLANE_SESSION #tried setting spaceauth sessions to login to Apple Developer and fetch provisioning profiles
#fastlane spaceauth login
sudo gem install fastlane
fastlane gym --verbose --workspace "ios/*****.xcworkspace" --scheme "******"
displayName: 'Fastlane build IOS'
# attempt with xcode
- bash: |
xcodebuild "-workspace" "ios/*****.xcworkspace" "-scheme" "******" "-configuration" "Release" "DEVELOPMENT_TEAM=*******" "archive" "-archivePath" "*****.xcarchive" -allowProvisioningUpdates
# attempt with xcode 2 (with no signing)
- bash: |
xcodebuild "-workspace" "ios/*****.xcworkspace" "-scheme" "******" "-configuration" "Release" "DEVELOPMENT_TEAM=*******" "archive" "-archivePath" "*****.xcarchive" -allowProvisioningUpdates CODE_SIGNING_ALLOWED=NO
#resign with fastlane and include the cert. Fails with same error as above
- task: ms-vsclient.app-store.ipa-resign.IpaResign@1
displayName: 'Resign ipa file'
inputs:
ipaPath: output/build.ipa
signFileP12Path: certs/cert.p12
signFileP12Password: '****'
provFileProfilePath: ./certs/app.mobileprovision
# attempt with built in xcode command
- task: Xcode@5
displayName: 'Xcode build'
inputs:
configuration: 'Release DEVELOPMENT_TEAM=******* archive'
xcWorkspacePath: ios/*****.xcworkspace
scheme: ******
xcodeVersion: 10
packageApp: true
archivePath: *****.xcarchive