Device Cloud allows you to inject environment variables into your test flows, enabling dynamic configuration and secure credential management.
dcd cloud -e API_URL=https://api.example.com -e API_KEY=secretdcd cloud -e DB_HOST=localhost \
-e DB_USER=test \
-e DB_PASS=password \
-e ENVIRONMENT=staging# Development
dcd cloud -e API_URL=https://dev-api.example.com
# Staging
dcd cloud -e API_URL=https://staging-api.example.com
# Production
dcd cloud -e API_URL=https://api.example.comdcd cloud -e USERNAME=${CI_USERNAME} \
-e PASSWORD=${CI_PASSWORD}On iOS, variables prefixed with SIMCTL_CHILD_ are passed through by the simulator directly to the app under test, with the prefix stripped. This allows you to inject values that are readable from inside the app via ProcessInfo.processInfo.environment.
dcd cloud app.zip flow.yaml -e SIMCTL_CHILD_API_URL=https://staging-api.example.comInside the iOS app, this is accessible as API_URL:
let apiUrl = ProcessInfo.processInfo.environment["API_URL"]This is useful for feature flags, environment switching, or any value your app reads at launch without needing to rebuild the binary.
- Never commit sensitive values
- Use CI/CD secrets
- Use UPPERCASE for variable names
- Use descriptive names
- Name secret-bearing variables with a keyword like
PASSWORD,TOKEN,SECRET, orAPI_KEYso their values are automatically masked in logs and artifacts — see Inspecting Variables