Configure iOS environmentsiOS
Last updated 2026-10-07
The ios block of fastlane/config/environments.yml. MyApp and com.example.myapp are placeholders.
fastlane/config/environments.yml
ios: enabled: false # set true on the Mac project_dir: "ios" build: install_pods: true # runs `pod install` (creates the .xcworkspace) signing: method: "automatic" # automatic | match team_id: "${APPLE_TEAM_ID}" type: "appstore" # match only readonly_in_ci: true # match only: never create certs from CI update_project_signing: false environments: development: workspace: "ios/MyApp.xcworkspace" scheme: "MyApp" # must be a *Shared* scheme bundle_identifier: "com.example.myapp" export_method: "app-store" versioning: auto_increment_build_number: true testflight: enabled: true groups: [] # empty = internal testers only notify_external_testers: true skip_waiting_for_build_processing: true # forced false when groups are setKey reference
| Key | Description |
|---|---|
workspace | Path to the .xcworkspace created by CocoaPods (CocoaPods guide). |
scheme | A shared scheme, so it exists in git under xcshareddata (Apple: build schemes). |
bundle_identifier | Must match the app record in App Store Connect. |
export_method | app-store for TestFlight. Other values: ad-hoc, development, enterprise. |
testflight.groups | External tester groups. Empty = internal testers only (no beta review). |
Tip: use separate schemes and bundle ids (
MyApp-Staging, com.example.myapp.staging) for truly isolated environments.Official documentation
- AppleCustomizing the build schemes for a projectdeveloper.apple.com/documentation/xcode/customizing-the-build-schemes-for-a-project
- CocoaPodsCocoaPods: getting startedguides.cocoapods.org/using/getting-started.html
- fastlanebuild_app (gym) actiondocs.fastlane.tools/actions/build_app/
- fastlaneupload_to_testflight (pilot) actiondocs.fastlane.tools/actions/upload_to_testflight/
Was this helpful?