Methods Overview
When multiple sources provide arguments, they’re merged with CLI taking highest priority.
Preferred Project Settings Format
For shared project settings, prefer storing xcodebuild passthrough values in:.flowdeck/config.json.flowdeck/config.local.json
xcodebuild block for project-wide defaults, and schemes.<scheme>.xcodebuild for per-scheme overrides.
CLI Options
Xcodebuild Arguments
Use--xcodebuild-options to pass arguments to xcodebuild:
Xcodebuild Environment
Use--xcodebuild-env to set environment variables for the build:
Combining Options
All options can be combined:Works with All Commands
Test Result Bundle Routing
flowdeck test owns one result bundle per xcodebuild phase so each bundle is finalized exactly once:
build-for-testingwrites~/.flowdeck/logs/<project-hash>/build-test.xcresult.test-without-buildingwrites~/.flowdeck/logs/<project-hash>/test.xcresultby default.- A caller-supplied
-resultBundlePathoverrides only the test-phase path.
-resultBundlePath <path> and -resultBundlePath=<path> are accepted. When arguments from multiple sources contain the flag, the last valid value wins. FlowDeck removes the duplicates before invoking xcodebuild and normalizes the selected result to an absolute path. The final flowdeck.test JSON snapshot reports that same path as resultBundlePath.
Legacy Local Build Settings
Create.flowdeck/build-settings.json in your project root for settings that apply to all FlowDeck commands automatically:
Prefer
.flowdeck/config.json or .flowdeck/config.local.json for new setup. Keep .flowdeck/build-settings.json only when you need compatibility with older workflows.Structure
Config File
Include xcodebuild settings in your--config JSON file:
--config uses the explicit command config format, which is separate from .flowdeck/config.json and .flowdeck/config.local.json. See Configuration File for the difference.Priority and Merging
When arguments come from multiple sources, they’re combined in this order:- Config file (lowest priority) - base configuration
- Local build-settings.json - compatibility override for current CLI auto-load behavior
- CLI options (highest priority) - appended last, takes effect
Common Arguments Reference
Build Settings
Xcodebuild Flags
Compiler Flags
Environment Variables
Set environment variables for the xcodebuild process:Via CLI
In Local Settings
In Config File
Common Environment Variables
The canonical shared project-settings format is
xcodebuild inside .flowdeck/config.json or .flowdeck/config.local.json. The separate build-settings.json file remains a legacy compatibility input.Use Cases
Code Coverage
Code Coverage
Parallel Testing
Parallel Testing
CI Build (No Code Signing)
CI Build (No Code Signing)
Use Different Xcode Version
Use Different Xcode Version
.flowdeck/build-settings.json:Strict Warnings
Strict Warnings
Address Sanitizer
Address Sanitizer
Quiet Build with Coverage (CI)
Quiet Build with Coverage (CI)
Viewing the Final Command
Use--dry-run to see the complete xcodebuild command with all arguments without executing:
--verbose to see the command during actual execution:
Troubleshooting
Values Starting with Dash
Use= syntax when values start with -:
Build Settings Format
UseKEY=VALUE format (no spaces around =):
