Code Signing
Ready to sign and distribute? See the code signing guide for distribution builds.
In this guide, you’ll set up a basic iOS build pipeline using Xcode’s native xcodebuild command. This is perfect for projects that don’t use Fastlane, or if you prefer direct Xcode control.
Create a new file at .runnerhub/runnerhub.yml in your repository root:
name: iOS Buildplatform: ios
environment: xcode: "16.4"
triggers: - push - pull_request
steps: - name: Install pods run: pod install
- name: Build app run: | xcodebuild \ -workspace MyApp.xcworkspace \ -scheme MyApp \ -sdk iphonesimulator \ -configuration Debug \ buildUpdate the YAML with your project details:
.xcworkspace file name (or -project MyApp.xcodeproj if you don’t use CocoaPods)Debug or Release (default is Debug for CI)For projects without CocoaPods, remove the pod install step.
.runnerhub/runnerhub.yml to your repositoryHere’s a more complete pipeline that includes unit tests:
name: iOS Build & Testplatform: ios
environment: xcode: "16.4"
triggers: - push - pull_request
steps: - name: Install pods run: pod install
- name: Run tests run: | xcodebuild \ -workspace MyApp.xcworkspace \ -scheme MyApp \ -destination 'platform=iOS Simulator,name=iPhone 15' \ test
- name: Build app run: | xcodebuild \ -workspace MyApp.xcworkspace \ -scheme MyApp \ -sdk iphonesimulator \ buildRunnerHub automatically caches:
Pods/ directory).build/, DerivedData/)No extra configuration needed!
Using a .xcodeproj instead of .xcworkspace:
- name: Build app run: | xcodebuild \ -project MyApp.xcodeproj \ -scheme MyApp \ -sdk iphonesimulator \ buildFinding your scheme name:
xcodebuild -workspace MyApp.xcworkspace -listBuilding for a specific simulator:
- name: Build app run: | xcodebuild \ -workspace MyApp.xcworkspace \ -scheme MyApp \ -destination 'platform=iOS Simulator,name=iPhone 15 Pro' \ buildCode Signing
Ready to sign and distribute? See the code signing guide for distribution builds.
Fastlane Integration
Prefer Fastlane? Check out the Fastlane guide for lane automation.
Pipeline Configuration
Explore all pipeline options in the YAML reference.
Caching & Performance
Learn how RunnerHub caches dependencies automatically in caching docs.