Skip to content

Instance Method

streamingXcodeBuild()

Returns an XcodeBuild builder configured to stream output live for long-running builds.

func streamingXcodeBuild() -> XcodeBuild

Discussion

Routes stdout and stderr through SwiftyShell/OutputDestination/tee so xcodebuild’s progress is echoed to the parent process’s stdout/stderr as it is produced, while still being captured into ShellOutput.stdout for downstream parsing (app/dSYM paths, warning counts, test-count fallback). Also lifts the captured-output limit (outputLimit(0)) — xcodebuild output is voluminous, so the default cap could otherwise truncate or fail a build.

Use this for the long-running iOS invocations (build/archive/test); prefer a plain XcodeBuild(context:) for short, purely-parsed invocations (e.g. -showBuildSettings, destination discovery).

In --output json mode (jsonOutput) this falls back to a plain capturing XcodeBuild(context:) so streamed build progress does not interleave with — and corrupt — the JSON result on stdout.