Mobile Fastlane

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 set

Key reference

KeyDescription
workspacePath to the .xcworkspace created by CocoaPods (CocoaPods guide).
schemeA shared scheme, so it exists in git under xcshareddata (Apple: build schemes).
bundle_identifierMust match the app record in App Store Connect.
export_methodapp-store for TestFlight. Other values: ad-hoc, development, enterprise.
testflight.groupsExternal 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

Was this helpful?