Automate iOS builds, tests, and simulators

Same commands locally and in CI.

FlowDeck turns the iOS build loop into a stable command surface. Build, run, test, and collect logs with JSON output you can plug into automation.

Automation usually means glue scripts

You fight flags and parsers instead of shipping.

Most pipelines rely on:

  • Custom destination strings per runner
  • Simctl scripts to boot and erase
  • Regex for errors and test output
  • Manual log capture and filtering
  • Different commands for local vs CI

That is not automation. That is babysitting.

Side by side

Pipeline step Scripted flow FlowDeck
Pick destination Construct a destination string -S "iPhone 16" or -D "iPhone"
Build and run xcodebuild + simctl install + launch flowdeck run
Run tests Long xcodebuild flags flowdeck test --json
Stream logs Spawn log stream and parse flowdeck logs
Machine output Regex and cleanup --json

One command surface everywhere

Custom scripts:

bashsimctlxcprettylog streamawksed...

FlowDeck:

contextbuildruntestlogsclean

Same locally. Same in CI.

Automation-friendly output

Unstructured output:
** TEST FAILED **
... 300 lines of logs ...
Test Suite 'MyAppTests' failed

Hard to parse. Easy to miss.

FlowDeck output:
{
  "type": "test_summary",
  "passed": 41,
  "failed": 1
}

Automation should be deterministic. JSON makes it so.

What does not change

Your .xcodeproj and .xcworkspace
Your signing and provisioning
Your Xcode toolchain

FlowDeck automates the loop. It does not replace Xcode.

Automate the iOS build loop

7-day free trial. No credit card required.

curl -sSL https://flowdeck.studio/install.sh | sh