Solutions / iOS
iOS CI/CD: build, test and ship Apple apps on fast macOS machines
iOS CI/CD automatically builds, tests and delivers your app on every push. Semaphore runs your Xcode, React Native or Flutter pipelines on macOS machines with Fastlane, CocoaPods and Homebrew preinstalled, and ships builds to TestFlight and the App Store.
Platforms
iOS, macOS, tvOS, watchOS
Frameworks
Swift, React Native, Flutter
Preinstalled
Xcode, Fastlane, CocoaPods
Pricing
Per second, no seats
TL;DR
- Semaphore’s iOS CI/CD runs Xcode builds and tests on macOS machines that scale with every push.
- Fastlane, CocoaPods, Homebrew and Node.js are preinstalled; sign code with Fastlane and encrypted secrets.
- Run tests in parallel, cache dependencies, and deploy to TestFlight from a promotion.
- Teams migrating from Travis CI see builds at least 42% faster.
How iOS CI/CD works on Semaphore
01
Push to Git
Semaphore starts a pipeline on a clean macOS machine.
02
Build and test
Xcode builds the app; unit and UI tests run in parallel with cached pods.
03
Sign and ship
A promotion signs the build with Fastlane and uploads it to TestFlight.
Example iOS CI/CD pipeline
Build and test an Xcode project with Fastlane, then promote passing builds on main to TestFlight.
.semaphore/semaphore.yml
version: v1.0
name: iOS CI/CD
agent:
machine:
type: a2-standard-4
os_image: macos-xcode26
blocks:
- name: Build and test
task:
prologue:
commands:
- checkout
- cache restore
- bundle install
- pod install
jobs:
- name: Unit tests
commands:
- bundle exec fastlane test
epilogue:
always:
commands:
- cache store
promotions:
- name: TestFlight
pipeline_file: testflight.yml
auto_promote:
when: "branch = 'main' AND result = 'passed'"
Pick the Xcode version with os_image: see macOS images and machine types.
What’s included in Semaphore iOS CI/CD
Ready-to-use macOS environment
Fastlane, Homebrew, CocoaPods and Node.js preinstalled. No setup overhead. macOS images
Scale on demand
Machines scale with every git push. You only pay for what you use. Cloud CI/CD
Build for every Apple platform
Build, test and distribute apps for iOS, macOS, tvOS and watchOS.
Use your tools
Xcode, React Native and Flutter projects, with pipelines kept as code in your repo.
Secure code signing
Store certificates and keys as encrypted secrets and sign with Fastlane. Secrets
Fast feedback
Parallel and sequential test stages, dependency caching and test reports. Test reports
Ship daily
Promote passing builds to TestFlight, the App Store and other channels. Promotions
Multi-platform teams
Run iOS, Android and web pipelines on one platform, with shared dashboards. Android CI/CD
Migrating iOS CI/CD from Travis CI?
Semaphore runs your builds at least 42% faster, even under heavy load, with simpler setup and maintenance and advanced deployment dashboards.
“We migrated our CI from Travis to Semaphore. Travis Android build took 12 minutes, now 7 minutes with Semaphore. We are very happy, this far exceeds our expectations!”
Timo Mämecke, Software Engineer at Railslove
Customer reviews
“Painless, intuitive, fast and cheap CI. After trying GitHub Actions, CircleCI, Jenkins and more, this clearly stands out as the better option.”
Fredrik A. Madsen-Malmo, Senior Product Engineer at Kvist
“Fast, reliable CI with great support and clear documentation.”
Dorian Lupu, Bbotyglot
“Bare metal performance cut our CI times in half, significantly improving developer productivity and reducing costs.”
Clément Joubert, Owner & CEO at levups
CI/CD for other platforms
FAQs
iOS CI/CD is continuous integration and delivery for Apple apps: every push automatically builds the app with Xcode, runs unit and UI tests, signs the build and delivers it to TestFlight or the App Store. It needs macOS machines, which Semaphore provides in the cloud.
Each macOS image comes with a set of Xcode versions, and you choose the image in your pipeline with os_image. See the current list in the macOS images docs.
Store your certificates, provisioning profiles and API keys as encrypted secrets, then use Fastlane (for example match) in your pipeline to sign the build.
Yes. Add a promotion that runs a Fastlane lane to upload the build, and auto-promote it when tests pass on your main branch.
Yes. Semaphore supports iOS apps built with Xcode, React Native and Flutter, and you can run their Android builds on the same platform.
Next steps
Start iOS CI/CD free · Swift and Xcode docs · macOS images · Pricing
From the blog
- iOS CI/CD: continuous integration and continuous delivery explained
- Build, test and deploy an iOS app with CI/CD
- Build, test and ship React Native apps (iOS) with Fastlane and Semaphore
- Continuous integration for Flutter apps on iOS
- Automate Flutter iOS deployment to TestFlight with Fastlane
- Deploy Flutter iOS apps to testers with Firebase App Distribution