我正在使用Azure Devops和fastlane为iOS应用程序实现持续集成。它会生成并创建IPA文件,但是,当我在成功创建软件包后尝试上传文件时,出现此错误 消息:“无效的配置文件”。这是应用程序中使用的唯一分发配置文件,并且可以与Xcode正常工作,因此有效。如何解决?
这是我设置Azure Devops(构建管道)的方法。
- master
pool:
vmImage: 'macos-latest'
steps:
- task: InstallAppleCertificate@2
inputs:
certSecureFile: 'iOSDistributionCertificate.p12'
certPwd: 'xxxxx'
keychain: 'temp'
- task: InstallAppleCertificate@2
inputs:
certSecureFile: 'iOSDevelopmentCertificate.p12'
certPwd: 'xxxxx'
keychain: 'temp'
- task: InstallAppleProvisioningProfile@1
inputs:
provisioningProfileLocation: 'secureFiles'
provProfileSecureFile: '5c0e9419-2a5a-4905-ac99-e680efac07a5.mobileprovision'
- task: InstallAppleProvisioningProfile@1
inputs:
provisioningProfileLocation: 'secureFiles'
provProfileSecureFile: '4e932719-f9bd-4d3e-b4e6-08b35260c632.mobileprovision'
- task: ios-bundle-version@1
inputs:
sourcePath: 'BookingApp/info.plist'
versionCodeOption: 'buildid'
versionCode: '$(Build.BuildId)'
versionCodeOffset: '0'
printFile: true
- task: Xcode@5
displayName: 'Build the app using Xcode'
inputs:
actions: 'build'
sdk: 'iphoneos12.4'
configuration: 'Release'
scheme: 'BookingApp'
packageApp: true
xcodeVersion: 10 # Options: 8, 9, 10, default, specifyPath
signingOption: 'auto'
useXcpretty: false # Makes it easier to diagnose build failures
xcWorkspacePath: '**/*.xcodeproj/project.xcworkspace'
- task: AppStoreRelease@1
inputs:
serviceEndpoint: 'Booking App Connection'
appType: 'iOS'
ipaPath: '**/*.ipa'
releaseTrack: 'TestFlight'
installFastlane: false
这是错误消息。
[17:02:55]: Get started using a Gemfile for fastlane https://docs.fastlane.tools/getting-started/ios/setup/#use-a-gemfile
[17:02:56]: Sending anonymous analytics information
[17:02:56]: Learn more at https://docs.fastlane.tools/#metrics
[17:02:56]: No personal or sensitive data is sent.
[17:02:56]: You can disable this by adding `opt_out_usage` at the top of your Fastfile
[17:02:56]: Login to App Store Connect (***)
[17:03:13]: Login successful
/usr/local/lib/ruby/gems/2.6.0/gems/nokogiri-1.6.8.1/lib/nokogiri/xml/document.rb:44: warning: constant ::Fixnum is deprecated
[17:03:16]: Ready to upload new build to TestFlight (App: 1483789798)...
[17:03:16]: Fetching password for transporter from environment variable named `FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD`
[17:03:16]: Going to upload updated app to App Store Connect
[17:03:16]: This might take a few minutes. Please don't interrupt the script.
[17:04:09]: [Transporter Error Output]: ERROR ITMS-90161: "Invalid Provisioning Profile. The provisioning profile included in the bundle BAG.BookingAppTests [Payload/BookingApp.app] is invalid. [Missing code-signing certificate]. A Distribution Provisioning profile should be used when submitting apps to the App Store. For more information, visit the iOS Developer Portal."
[17:04:09]: Transporter transfer failed.
[17:04:09]:
[17:04:09]: ERROR ITMS-90161: "Invalid Provisioning Profile. The provisioning profile included in the bundle BAG.BookingAppTests [Payload/BookingApp.app] is invalid. [Missing code-signing certificate]. A Distribution Provisioning profile should be used when submitting apps to the App Store. For more information, visit the iOS Developer Portal."
[17:04:09]: [iTMSTransporter] [2019-10-16 17:04:09 UTC] <main> DBG-X: parameter ErrorCode = 1102
[17:04:09]: [iTMSTransporter] [2019-10-16 17:04:09 UTC] <main> DBG-X: parameter ErrorMessage = ERROR ITMS-90161: "Invalid Provisioning Profile. The provisioning profile included in the bundle BAG.BookingAppTests [Payload/BookingApp.app] is invalid. [Missing code-signing certificate]. A Distribution Provisioning profile should be used when submitting apps to the App Store. For more information, visit the iOS Developer Portal.
[17:04:09]: [iTMSTransporter] (1102)
[17:04:09]: [iTMSTransporter] [2019-10-16 17:04:09 UTC] <main> ERROR: ERROR ITMS-90161: "Invalid Provisioning Profile. The provisioning profile included in the bundle BAG.BookingAppTests [Payload/BookingApp.app] is invalid. [Missing code-signing certificate]. A Distribution Provisioning profile should be used when submitting apps to the App Store. For more information, visit the iOS Developer Portal."
[17:04:09]: [iTMSTransporter] [2019-10-16 17:04:09 UTC] <main> DBG-X: The error code is: 1102
[17:04:09]: [iTMSTransporter] [2019-10-16 17:04:09 UTC] <main> INFO: Done performing authentication.
[17:04:09]: [iTMSTransporter] 1 package(s) were not uploaded because they had problems:
[17:04:09]: [iTMSTransporter] /var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/d20191016-2378-s6wyrx/1483789798.itmsp - Error Messages:
[17:04:09]: [iTMSTransporter] ERROR ITMS-90161: "Invalid Provisioning Profile. The provisioning profile included in the bundle BAG.BookingAppTests [Payload/BookingApp.app] is invalid. [Missing code-signing certificate]. A Distribution Provisioning profile should be used when submitting apps to the App Store. For more information, visit the iOS Developer Portal."
[17:04:09]: [iTMSTransporter] [2019-10-16 17:04:09 UTC] <main> DBG-X: Returning 1
[17:04:09]: iTunes Transporter output above ^
[17:04:09]: ERROR ITMS-90161: "Invalid Provisioning Profile. The provisioning profile included in the bundle BAG.BookingAppTests [Payload/BookingApp.app] is invalid. [Missing code-signing certificate]. A Distribution Provisioning profile should be used when submitting apps to the App Store. For more information, visit the iOS Developer Portal."
Return status of iTunes Transporter was 1: ERROR ITMS-90161: "Invalid Provisioning Profile. The provisioning profile included in the bundle BAG.BookingAppTests [Payload/BookingApp.app] is invalid. [Missing code-signing certificate]. A Distribution Provisioning profile should be used when submitting apps to the App Store. For more information, visit the iOS Developer Portal."
预先感谢
答案 0 :(得分:0)
我经历了好几次,直到我决定再次创建配置文件并在yml文件中进行一些更改。这是一个完整的工作流程:
# Xcode
# Build, test, and archive an Xcode workspace on macOS.
# Add steps that install certificates, test, sign, and distribute an app, save build artifacts, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/xcode
# Production
# Note: The certificates annd provisioning profiles path/passwors are stored in Group Variables
trigger:
- master
pool:
vmImage: 'macOS-10.14'
variables:
- group: 'Distribution Demo iOS'
- name: BuildConfiguration
value: 'Dev Release'
- name: XCWorkSpacePath
value: 'CLI.xcworkspace'
- name: Scheme
value: 'CLI'
- name: ExportPath
value: 'build'
- name: ExportOptionsPListPath
value: 'exportOptions.plist'
- name: AppIdentifier
value: 'cli.dev.test.CLI'
- name: sdk
value: 'iphoneos'
steps:
- task: CocoaPods@0
displayName: 'Downloading dependencies using CocoaPods with a forced repo update'
inputs:
forceRepoUpdate: true
- task: InstallAppleCertificate@2
displayName: 'Installing Apple Certificates from Secure Files'
inputs:
certSecureFile: $(CertificateFileName)
certPwd: $(CertificatePassword)
- task: InstallAppleProvisioningProfile@1
displayName: 'Installing Apple Provisioning Profile from Secure Files'
inputs:
provisioningProfileLocation: secureFiles
provProfileSecureFile: $(ProvisioningFileName)
removeProfile: false
# Uncomment the next lines if you want to the current build manages the next version
#- task: Bash@3
# displayName: 'Updating Build Number to the Next Version'
# inputs:
# targetType: inline
# script: 'xcrun agvtool next-version -all'
- task: Xcode@5
displayName: 'Archiving Application and Save In Build Path'
inputs:
actions: 'archive'
configuration: $(BuildConfiguration)
xcWorkspacePath: $(XCWorkSpacePath)
scheme: $(Scheme)
packageApp: true
archivePath: $(ExportPath)
exportPath: $(ExportPath)
exportOptions: plist
exportOptionsPlist: $(ExportOptionsPListPath)
signingOption: manual
provisioningProfileUuid: $(ProvisioningProfileUUID)
provisioningProfileName: $(ProvisioningProfileName)
- task: CopyFiles@2
displayName: 'Copying IPA to Artifacts Directory'
inputs:
Contents: '$(ExportPath)/*.ipa'
TargetFolder: '$(Build.artifactStagingDirectory)'
- task: PublishBuildArtifacts@1
displayName: 'Uploading IPA for the Currenet Run'
inputs:
PathtoPublish: '$(Build.artifactStagingDirectory)'
ArtifactName: 'GeneratedIPA'
PublishLocation: Container
- task: AppStoreRelease@1
displayName: 'Releasing IPA to TestFlight'
inputs:
serviceEndpoint: 'Apple2'
appIdentifier: $(AppIdentifier)
appType: iOS
ipaPath: '$(Build.artifactStagingDirectory)/**/*.ipa'
releaseTrack: TestFlight
releaseNotes: 'testflight.developer_notes.txt'
shouldSkipWaitingForProcessing: false
shouldSkipSubmission: false
# If you want to distribute to external testers uncomment the next two variables and write the group in externalTestersGroups
# distributedToExternalTesters: true
# externalTestersGroups: 'groups'
teamId: $(TeamID)
teamName: $(TeamName)
fastlaneArguments: 'action increment_build_number'