关于 how-to-build-a-flutter-app-on-xcode-cloud
这是一份使用 Xcode Cloud 为 Flutter 应用构建并发布到 TestFlight 和 App Store 的指南,涵盖 CI 脚本与 iOS 工作流配置,并说明 macOS 构建需单独设置。
主要功能
- 01在 CI 脚本中安装 Flutter 和 CocoaPods
- 02配置 Xcode Cloud 工作流
- 03从 iOS 工作流中移除 macOS 目标
- 04为 macOS 构建单独设置脚本
适用场景
- 01准备 Flutter 应用的 TestFlight 构建
- 02配置 Xcode Cloud 的 iOS App Store 构建
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ rodydavis/ skills --skill how-to-build-a-flutter-app-on-xcode-cloud安装后在 Claude Code 中输入/how-to-build-a-flutter-app-on-xcode-cloud确认已加载。
详细介绍
如何在 Xcode Cloud 上构建 Flutter 应用
本文将介绍如何设置 Xcode Cloud,以便为 TestFlight 和 AppStore 构建 Flutter 应用。
步骤 1
首先需要安装 Flutter,你可以运行以下命令进行检查:
flutter doctor -v
安装完成后,运行以下命令来创建并打开 Flutter 项目(如果要添加到现有应用,请跳到步骤 2)。
mkdir flutter_ci_example
cd flutter_ci_example
flutter create .
如果需要更多关于创建首个项目的帮助,可以查看我之前的博文这里。
创建项目后,在你喜欢的代码编辑器中打开它。
code .
步骤 2
生成的文件应如下所示:
![]()
创建新文件 ios/ci_scripts/ci_post_install.sh,并按如下内容更新:
#!/bin/sh
# Install CocoaPods using Homebrew.
brew install cocoapods
# Install Flutter
brew install --cask flutter
# Run Flutter doctor
flutter doctor
# Get packages
flutter packages get
# Update generated files
flutter pub run build_runner build
# Build ios app
flutter build ios --no-codesign
这是 Xcode Cloud 在下载项目后需要运行的文件。我们需要安装 cocoapods 来处理所用的插件,并安装 Flutter 来预构建应用。
然后运行以下命令,使脚本可执行:
chmod +x ios/ci_scripts/ci_post_clone.sh
步骤 3
右键点击 iOS 文件夹并选择“Open in Xcode”,在 Xcode 中打开 iOS 项目。
![]()
你也可以双击 ios/Runner.xcworkspace 文件来打开项目。
![]()
确保安装了最新版本的 Xcode Cloud,并且已获得测试版访问权限。通过菜单 Product > Xcode Cloud > Create Workflow 创建新工作流:
![]()
按提示添加项目,并选择所需的构建类型。
在工作流中选择 Archive - MacOS,然后点击右上角的删除图标,确保移除 MacOS 作为目标平台。
如果要构建并发布 MacOS 应用,需要在 macos 文件夹中使用另一个脚本,并在该 Xcode 工作区中创建工作流。
你可以创建文件 macos/ci_scripts/ci_post_clone.sh,并按如下内容更新:
#!/bin/sh
# Install CocoaPods using Homebrew.
brew install cocoapods
# Install Flutter
brew install --cask flutter
# Run Flutter doctor
flutter doctor
# Enable macos
flutter config --enable-macos-desktop
# Get packages
flutter packages get
# Update generated files
flutter pub run build_runner build
# Build ios app
flutter build ios --no-codesign
如果一切顺利,成功构建后将如下所示:
![]()
总结
Flutter 让跨平台构建和部署变得简单,而 Xcode Cloud 会处理 Apple 平台的代码签名。
你可以在这里进一步了解 cd 和 Flutter。