What tools and pipeline setup do teams commonly use to build, test, sign, and distribute mobile apps for both iOS and Android? I'm especially interested in whether teams use a general CI platform such as GitHub Actions or Jenkins, a mobile-focused service, and how they handle the macOS requirements for iOS builds.
3 Answers
A good general pattern is to keep the workflow definition in your source-control platform, use Fastlane for store-related tasks, and separate the runners by platform. Run linting, unit tests, Android builds, and emulator jobs on Linux; reserve macOS machines for Xcode and iOS work. Keep certificates and provisioning profiles in encrypted storage or a secrets manager rather than relying on developer laptops. Internal builds can go to TestFlight, Play internal testing, or Firebase App Distribution, while production submissions should usually require an approval step.
A common setup is GitHub Actions or another CI platform combined with Fastlane. Android builds and most tests can run on Linux, while iOS builds and simulator jobs need macOS runners. Mobile-focused services such as Bitrise or Codemagic are also popular because they provide the Mac infrastructure and reduce maintenance.
Jenkins can work, but you’ll need macOS agents for the iOS portion. Some teams maintain their own Mac hardware, while others connect Jenkins to cloud-hosted Mac machines. Android jobs can use Linux agents. If you don’t want to manage the agents, Codemagic or Bitrise is simpler, especially for a small team.
So the main complication is the Mac build environment and signing rather than the CI configuration itself. That makes a hosted mobile CI service look appealing if the team doesn’t already have Mac infrastructure.

That split also helps control costs. Running every job on a Mac just because the pipeline includes an iOS build can get expensive quickly.