We are integrating Xcode Cloud into a larger CI/CD pipeline and ran into a serious limitation that makes proper build status reporting nearly impossible.
Currently, Xcode Cloud provides only the following custom script phases: • ci_post_clone.sh • ci_pre_xcodebuild.sh • ci_post_xcodebuild.sh
However, if a build fails during the actual Xcode build phase (for example, due to a compilation error, unit test failure, or signing issue), the ci_post_xcodebuild.sh script does not run. This means there is no guaranteed way to execute cleanup steps or send external notifications (e.g., updating build status in Bitbucket, Slack, or any external CI system).
In any robust CI/CD setup, it’s critical to have a “finally” or “always run” hook that executes regardless of build success or failure — similar to post blocks in Jenkins, finally steps in GitHub Actions, or after_script in GitLab CI.
Without such a mechanism, we cannot reliably integrate Xcode Cloud with the rest of our automation and monitoring ecosystem. This effectively breaks standard CI/CD practices, since external systems will never know if a build failed unless they constantly poll the Xcode Cloud API.
Feature request: Please add a new hook (e.g., ci_finally.sh or ci_post_build.sh) that always executes after the build, whether it succeeded, failed, or was canceled.
This would make Xcode Cloud much more suitable for professional CI/CD environments and allow proper integration with third-party systems.