Exercise 3: Which Tool Fits a Team Already Standardized on GitHub Actions — Possible Solution =================================================================================================== Fastlane is the real, genuinely correct fit for this requirement, not Xcode Cloud. The chapter's own real, verified distinction is explicit on this exact point: Xcode Cloud is Apple's own native CI/CD service, tightly integrated specifically into Xcode and App Store Connect - it is not, itself, something that runs inside an arbitrary third-party CI provider's own workflow file. There is no real way to make Xcode Cloud's own pipeline live inside a GitHub Actions YAML file the way the team wants, since Xcode Cloud fundamentally is its own separate, Apple-hosted system rather than a step that plugs into someone else's. Fastlane, by contrast, was verified directly as running on any real CI system, explicitly including GitHub Actions among the named providers - it works by executing real, scripted "lanes" as ordinary command-line steps, which is exactly the shape a GitHub Actions workflow file already expects for its own build steps. Since the team's Android pipeline already lives in GitHub Actions, adding a Fastlane lane for the iOS app's own build, signing, and TestFlight upload steps lets the entire cross-platform pipeline - Android and iOS alike - stay defined and run from that one, single, already-established GitHub Actions workflow file, with no separate Apple-hosted system involved at all. ANSWER: Fastlane fits this requirement, not Xcode Cloud, because Fastlane genuinely runs as scripted steps inside any real CI provider, explicitly including GitHub Actions - while Xcode Cloud is its own separate, Apple-hosted pipeline that cannot itself live inside a GitHub Actions workflow file. Fastlane lets the team keep both their Android and iOS pipelines defined in the exact same, single GitHub Actions workflow. WHY THIS WORKS AS AN ANSWER ------------------------------ This correctly identifies the real structural reason Xcode Cloud cannot satisfy this specific requirement (it's a separate hosted system, not an embeddable CI step) and explains concretely why Fastlane's own verified CI-provider flexibility is what actually fits.