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.