Я использую конвейеры Azure для создания приложения для iOS с помощью задачи CordovaBuild
.
У меня есть задача собрать и заархивировать приложение, но при экспорте это не удается.
Сообщение об ошибке:
2019-09-30 14:40:21.223 xcodebuild[1147:11040] [MT] IDEDistribution:
-[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/My App_2019-09-30_14-40-21.222.xcdistributionlogs'. error: exportArchive: "My App.app" requires a provisioning profile.
** EXPORT FAILED **
Error Domain=IDEProvisioningErrorDomain Code=9 ""My App.app" requires a provisioning profile." UserInfo={NSLocalizedDescription="My App.app" requires a provisioning profile., NSLocalizedRecoverySuggestion=Add a profile to the "provisioningProfiles" dictionary in your Export Options property list.}
Removing Xcconfig update hook Error code 70 for command: xcodebuild with args: -exportArchive,-archivePath,My App.xcarchive,-exportOptionsPlist,/Users/vsts/agent/2.155.1/work/1/s/myApp/platforms/ios/exportOptions.plist,-exportPath,/Users/vsts/agent/2.155.1/work/1/s/myApp/platforms/ios/build/device
##[debug]task result: Failed
##[error]Task failed
Непосредственно перед ошибкой задача, похоже, распознает профиль обеспечения, и архив завершился успешно:
(...)
Signing Identity: "iPhone Distribution: My Company SA"
Provisioning Profile: "My App"
(A GUID)
/usr/bin/codesign --force --sign D68D11BE6D7F8E0E210724693023974DB48653AB --keychain=/Users/vsts/agent/2.155.1/work/1/s/myApp/_tasktmp.keychain --entitlements /Users/vsts/Library/Developer/Xcode/DerivedData/My App-fbtgccqcfrmgacdaeoqlfamsmokq/Build/Intermediates.noindex/ArchiveIntermediates/My\ App/IntermediateBuildFilesPath/My\ App.build/Release-iphoneos/My\ App.build/My\ App.app.xcent --timestamp=none /Users/vsts/Library/Developer/Xcode/DerivedData/My_App-fbtgccqcfrmgacdaeoqlfamsmokq/Build/Intermediates.noindex/ArchiveIntermediates/My\ App/InstallationBuildProductsLocation/Applications/My\ App.app
Validate /Users/vsts/Library/Developer/Xcode/DerivedData/My_App-fbtgccqcfrmgacdaeoqlfamsmokq/Build/Intermediates.noindex/ArchiveIntermediates/My\ App/InstallationBuildProductsLocation/Applications/My\ App.app
cd /Users/vsts/agent/2.155.1/work/1/s/mobilityApp/platforms/ios
export PATH="/Applications/Xcode_10.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode_10.3.app/Contents/Developer/usr/bin:/usr/local/lib/ruby/gems/2.6.0/bin:/usr/local/opt/ruby/bin:/usr/local/opt/curl/bin:/usr/local/bin:/usr/local/sbin:/Users/vsts/bin:/Users/vsts/.yarn/bin:/usr/local/go/bin:/Users/vsts/Library/Android/sdk/tools:/Users/vsts/Library/Android/sdk/platform-tools:/Users/vsts/Library/Android/sdk/ndk-bundle:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/usr/bin:/bin:/usr/sbin:/sbin:/Users/vsts/.azcopy"
export PRODUCT_TYPE=com.apple.product-type.application
builtin-validationUtility /Users/vsts/Library/Developer/Xcode/DerivedData/My_App-fbtgccqcfrmgacdaeoqlfamsmokq/Build/Intermediates.noindex/ArchiveIntermediates/My\ App/InstallationBuildProductsLocation/Applications/My\ App.app
Touch build/device/My\ App.app.dSYM
cd /Users/vsts/agent/2.155.1/work/1/s/myApp/platforms/ios
export PATH="/Applications/Xcode_10.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode_10.3.app/Contents/Developer/usr/bin:/usr/local/lib/ruby/gems/2.6.0/bin:/usr/local/opt/ruby/bin:/usr/local/opt/curl/bin:/usr/local/bin:/usr/local/sbin:/Users/vsts/bin:/Users/vsts/.yarn/bin:/usr/local/go/bin:/Users/vsts/Library/Android/sdk/tools:/Users/vsts/Library/Android/sdk/platform-tools:/Users/vsts/Library/Android/sdk/ndk-bundle:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/usr/bin:/bin:/usr/sbin:/sbin:/Users/vsts/.azcopy"
/usr/bin/touch -c /Users/vsts/agent/2.155.1/work/1/s/mobilityApp/platforms/ios/build/device/My\ App.app.dSYM
** ARCHIVE SUCCEEDED **
(...)
Вот моя конфигурация сборки:
pool:
vmImage: 'macos-10.14'
variables:
- name: Configuration
value: release
steps:
- task: DownloadSecureFile@1
name: iosDistributionCertificate
inputs:
secureFile: 'iOS-Distribution-Certificate.p12'
- task: DownloadSecureFile@1
name: ProvisioningProfile
inputs:
secureFile: 'ProvisioningProfile.mobileprovision'
- task: CordovaBuild@1
inputs:
platform: 'ios'
configuration: '$(Configuration)'
cordovaVersion: '8.1.2'
p12: '$(iosDistributionCertificate.secureFilePath)'
p12pwd: '$(iosDistributionCertificateKey)'
provProfile: '$(ProvisioningProfile.secureFilePath)'
removeProfile: true
cwd: '$(Build.SourcesDirectory)'
buildSourceDirectory: '$(Build.SourcesDirectory)'
cordovaArgs: '--buildConfig="$(Build.SourcesDirectory)/build.json"'