Mobile Fastlane

environments.yml reference

Last updated 2026-10-07

Project-wide defaults in fastlane/config/environments.yml. The platform blocks are documented under Android and iOS.

Note: any string can reference an environment variable as ${NAME}. A value that's still ${NAME} after loading is treated as empty.
fastlane/config/environments.yml
project:
name: "MyApp" # used in artifact names, e-mails, Teams cards
identifier: "myapp"
organization: "Your Company"
default_environment: "development" # used when no environment: option and no APP_ENV
notifications: # defaults, overridable per environment
teams: { enabled: true, webhook_url: "${TEAMS_WEBHOOK_URL}" }
slack: { enabled: false, webhook_url: "${SLACK_WEBHOOK_URL}" }
release_notes:
enabled: true
source: "git" # git | manual | file
commit_count: 10
prefix: "Automated Mobile Distribution"
ci:
build:
clean_before_build: true
security:
production_requires_ci: false
artifact:
naming:
enabled: true
pattern: "{project}-{environment}-v{version}-{build}.{extension}" # also {commit}, {platform}

How values are resolved

  1. The YAML file is loaded (safe YAML 1.2, no Ruby objects).
  2. Every ${NAME} is replaced from .env or the process environment.
  3. Global sections (notifications, release_notes) are deep-merged with the environment's own overrides.
  4. When a profile runs, its values are deep-merged last.
my-app — zsh
~/my-app $ bundle exec fastlane android info environment:staging
[14:48:03]: --- Android Distribution Information ---
Project: MyApp
Environment: staging
Gradle task: assembleRelease
Firebase enabled: true
android info / ios info print the fully resolved result, without secrets.

Official documentation

Was this helpful?