- Reproducible builds across team members
- CI/CD pipelines
- Complex build configurations
- Sharing settings across multiple commands
Using a Config File
Config File Structure
Field Reference
| Field | Type | Required | Description |
|---|---|---|---|
workspace | string | Yes | Path to .xcworkspace or .xcodeproj (relative to project root) |
scheme | string | Yes | Scheme name to build |
configuration | string | No | Build configuration. Default: Debug. Options: Debug, Release, or custom |
platform | string | No | Target platform. Options: iOS, macOS, watchOS, tvOS, visionOS |
version | string | No | OS version (e.g., 18.0, 17.5). Uses latest available if not specified |
deviceUdid | string | No | Physical device UDID for device builds |
simulatorUdid | string | No | Simulator UDID for simulator builds |
derivedDataPath | string | No | Custom derived data directory path |
xcodebuild | object | No | Passthrough settings for xcodebuild (see Xcodebuild Arguments) |
appLaunch | object | No | Arguments and environment variables passed to the app at launch (run command only) |
Target Resolution Priority
When determining the build target, FlowDeck uses this priority order:deviceUdid- Physical device (if specified and connected)simulatorUdid- Exact simulator by UDIDplatform+version- Auto-resolve best matching simulatorplatform: "macOS"- Native Mac build (no simulator needed)
Examples
Minimal iOS Configuration
Minimal iOS Configuration
macOS Native Build
macOS Native Build
Physical Device Build
Physical Device Build
flowdeck device list --json.Specific Simulator Version
Specific Simulator Version
CI Release Build
CI Release Build
watchOS Build
watchOS Build
visionOS Build
visionOS Build
Custom Derived Data
Specify a custom derived data path to:- Avoid conflicts with Xcode
- Enable parallel builds with separate derived data
- Use faster storage (e.g., RAM disk)
xcodebuild Passthrough
Thexcodebuild section passes arguments and environment variables directly to xcodebuild:
See Xcodebuild Arguments for complete passthrough documentation and common arguments.
App Launch Settings
TheappLaunch section passes arguments and environment variables to your app when it launches (for run command only):
simctl launch or the device launch process, not to xcodebuild.
See App Launch Settings for complete documentation, common arguments, and local settings file support.
File Locations
Project Config
Store in your repository for team sharing:Multiple Configurations
Create separate config files for different scenarios:CLI Override
Command-line parameters override config file values:Generating Config Files
From Interactive Mode
- Run
flowdeck -iin your project directory - Configure your build settings
- Press
Wto write config file - Config saved to
.flowdeck/config.json
From Context Command
Troubleshooting
Config File Not Found
Ensure the path is correct:Invalid JSON
Validate your JSON syntax:Workspace Not Found
Workspace paths are relative to the project root (where you run FlowDeck), not the config file location:Simulator Not Available
If the specified simulator doesn’t exist:- FlowDeck will try to resolve from
platform+version - If a matching runtime exists, it creates a new simulator
- Otherwise, it uses the first available simulator for that platform
