Error: "Version could not be created from build. Please make sure that your .ipa file has the correct format"

Error: "Version could not be created from build. Please make sure that your .ipa file has the correct format"

Android 应用程序的发布一切正常。我正在使用 VS 代码使用 Flutter 开发应用程序,然后使用 Azure DevOps 构建它,最后将它发布到 AppCenter。

与Android相反,IOS不创建IPA文件,只构建Runner.app。因此,在 Azure DevOps 中,我使用以下代码构建应用程序:

trigger:
- master

pool:
  vmImage: 'macos-latest'

steps:

- task: CocoaPods@0
  inputs:
    workingDirectory: './ios'
    forceRepoUpdate: false
- task: MobileDevOpsKeychanger@0
  inputs:
    KeyChangerPassword: '$(keychangerpw)'
    DoAndroidSigning: false
    DoAppleDistribution: true
    AppleAppIdDistribution: '[myBundleID]'
    DoAppleEnterprise: false

- task: FlutterInstall@0
  inputs:
    channel: 'beta'
    version: 'latest'

- task: FlutterBuild@0
  inputs:
    target: 'ios'
    projectDirectory: '.'
    iosCodesign: false

- task: CmdLine@2
  inputs:
    script: |
      mkdir -p Payload
        mv ./build/ios/iphoneos/Runner.app Payload
      zip -r -y Payload.zip Payload/Runner.app
        mv Payload.zip Payload.ipa
      rm -Rf Payload
- task: CopyFiles@2
  inputs:
    Contents: '**/*.ipa'
    TargetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'drop'
    publishLocation: 'Container'

但不幸的是,当我为 IOS 做同样的事情时,我得到了这个 错误

6851704Z ##[error]"{\"status\":\"error\",\"message\":\"Version could not be created from build. Please make sure that your .ipa file has the correct format.\"}" http response code: 422

Azure DevOps

解决方案已在https://github.com/flutter/flutter/issues/13065

中提及

首先,我必须使用

将 Runner.app 转换为 ipa
xcodebuild -workspace Runner.xcworkspace -scheme Runner -sdk iphoneos -configuration Release archive -archivePath $PWD/build/Runner.xcarchive
xcodebuild -exportArchive -archivePath $PWD/build/Runner.xcarchive -exportOptionsPlist exportOptions.plist  -exportPath $PWD/build/Runner.ipa

并在 ios 目录中创建文件 exportOptions.plist。