Deploying Flutter app to XCode Cloud
Although the official documentation seems daunting initially, deploying and setting up CI/CD with Xcode Cloud is easy.
Click the Report Navigator icon in Xcode with your Runner.xcworkspace project open. Create a default workflow and delete Mac build action from it.
Create a post clone script at ios/ci_scripts/ci_post_clone.sh location with the following content.
#!/bin/sh
# The default execution directory of this script is the ci_scripts directory.
cd $CI_WORKSPACE # change working directory to the root of your cloned repo.
# Install Flutter using git.
git clone https://github.com/flutter/flutter.git --depth 1 -b stable $HOME/flutter
export PATH="$PATH:$HOME/flutter/bin"
# Install Flutter artifacts for iOS (--ios), or macOS (--macos) platforms.
flutter precache --ios
# Install Flutter dependencies.
flutter pub get
# Install CocoaPods using Homebrew.
HOMEBREW_NO_AUTO_UPDATE=1 # disable homebrew's automatic updates.
brew install cocoapods
# Install CocoaPods dependencies.
cd ios && pod install # run `pod install` in the `ios` directory.
exit 0
Add the above file to Git and make it executable.
git add --chmod=+x ios/ci_scripts/ci_post_clone.sh
In the deployment preparation section of Archive - iOS select TestFlight if needed.
If you have manually deployed to TestFlight previously, give a higher build number to start within the settings section of Xcode Cloud on the app store connect website.
The build will now succeed.