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

Travis CI vs Semaphore

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

More case studies

CI/CD for other platforms

FAQs

What is iOS CI/CD?

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.

Which Xcode versions does Semaphore support?

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.

How do I sign iOS apps in CI?

Store your certificates, provisioning profiles and API keys as encrypted secrets, then use Fastlane (for example match) in your pipeline to sign the build.

Can I deploy to TestFlight automatically?

Yes. Add a promotion that runs a Fastlane lane to upload the build, and auto-promote it when tests pass on your main branch.

Does Semaphore support React Native and Flutter iOS builds?

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

Star us on GitHub