Azure DevOps 中的 Flutter 管道

Dan*_*tin 5 flutter azure-devops azure-pipelines

我正在尝试构建我的 Flutter iOS 应用程序,但我不知道如何获取 ipa 文件。

pool:
  name: Default
  demands: xcode

steps:
- task: aloisdeniel.flutter.flutter-install.FlutterInstall@0
  displayName: 'Flutter Install'

- task: aloisdeniel.flutter.flutter-build.FlutterBuild@0
  displayName: 'Flutter Build ios'
  inputs:
    target: ios
    projectDirectory: 'src/Apps/platypus_app'
    buildName: '$(Build.BuildNumber)'
    entryPoint: 'lib/main_staging.dart'
    iosCodesign: false

- task: CopyFiles@2
  displayName: 'Copy Files to: $(build.artifactstagingdirectory)'
  inputs:
    SourceFolder: 'src/Apps/platypus_app/build/ios'
    TargetFolder: '$(build.artifactstagingdirectory)'

- task: InstallAppleCertificate@2
  displayName: 'Install an Apple certificate'
  inputs:
    certSecureFile: 'ZooKeeper_Certs.p12'
    certPwd: ZooK33periOSKeyStore

- task: PublishPipelineArtifact@1
  displayName: 'Publish Pipeline Artifact'
  inputs:
    targetPath: '$(build.artifactstagingdirectory)'
    artifact: 'platypus_drop'
Run Code Online (Sandbox Code Playgroud)

此管道已构建,但我得到以下输出:

在此处输入图片说明

没有 .ipa 文件,所以我认为我还需要做另一个步骤,但我不是 iOS 开发人员。

Lev*_*SFT 6

您将需要xCode 任务来生成 .ipa 文件。请参阅此处的文档。

在管道中的 flutter 任务之后添加 Xcode 任务。将packageApp属性设置为true。设置 exportPath属性。您为exportPath属性设置的路径是生成 .ipa 的位置。见下面的例子:

- task: Xcode@5
  inputs:
    actions: 'archive' 
    sdk: '$(sdk)'
    scheme: '$(scheme)'
    configuration: '$(configuration)'
    xcodeVersion: 'default' # Options: default, 10, 9, 8, specifyPath
    archivePath: 'src/Apps/platypus_app/build/ios/Runner.xcarchive'
    exportPath: 'src/Apps/platypus_app/build/ios'
    packageApp: true
    xcWorkspacePath: src/Apps/platypus_app/build/ios/Runner.xcworkspace
    signingOption: 'nosign'
Run Code Online (Sandbox Code Playgroud)

另一种解决方法是使用 bash 任务运行xcodebuild命令以在您的管道中生成 .ipa 文件。见下面的例子:

.ipa 文件将导出到为-exportPath属性指定的文件夹

- task: Bash@3
    displayName: 'Create ipa package'
    inputs:
      targetType: 'inline'
      script: |
        xcodebuild -workspace ios/Runner.xcworkspace -scheme prod -sdk iphoneos -configuration Release-prod archive -archivePath build/ios/Runner.xcarchive
        xcodebuild -exportArchive -archivePath build/ios/Runner.xcarchive -exportOptionsPlist ci/ExportOptions.plist -exportPath build/ios/App.ipa
Run Code Online (Sandbox Code Playgroud)

请查看此线程以获取更多信息。