Log in
product

Measure, analyze, and improve your build times with Tuist Build Insights

Use the new Tuist Build Insights to measure and analyze your local and CI builds

Sooner or later in the lifecycle of any software project, you'll find yourself needing to iterate on its setup and tools to ensure your momentum doesn’t fade. We often refer to this as scaling development. It’s inevitable. The tools and practices that once worked start to break down as the project grows larger, with multiple modules, complex dependencies, a team of contributors working in parallel, and a growing test suite ensuring reliability.

Among all the factors at play, one of the most critical—because it directly affects the feedback loop—is build time. Build performance tends to degrade as projects grow, often due to unreliable incremental builds, derived data resets, or changes in the project graph or toolchain (e.g., explicit modules) that can impact parallelization. Understanding build times is essential for making optimizations and improving development velocity—but doing so is far from straightforward.

While the toolchain provides data—like the build graph—raw output alone isn’t enough. First, you need to make that data accessible. Second, data that’s isolated in time or scope may not reveal much. But if you persist it over time and correlate it with the team activity—tying it back to specific developers or workflows—then meaningful insights start to emerge.

At Tuist, we don’t want to just help teams optimize workflows through better tooling; we also want to empower them with actionable data to make smarter decisions—whether to boost productivity or improve developer happiness.

That’s why we’re thrilled to introduce Tuist Build Insights: our solution for collecting and analyzing build data from your Xcode projects, across any environment—including local development.

👉 If you’d like to see it in action, check out the video below:

Integration

To get started with build insights, you will need a Tuist account and a project. The best way to get started is to use our CLI and run the tuist init command.

Once you authenticate, you will need to add a tuist inspect build command in your Xcode scheme build post-action – unless you use generated projects, in which case we generate the post-action for you:

Screenshot of how to set up an Xcode post action for build insights

For more details how to set up build insights, head over to our docs.

Inspecting individual builds

After you include tuist inspect build in your Xcode build post-action, build your app in Xcode and once the build is finished, you will see the build directly in your project dashboard.

When you go to a given build detail, you will see something like this:

Screenshot of a build detail

Let's break down what's included in the build detail:

  • Metadata such as git branch, whether a build was clean or incremental, build duration, Xcode version, and more.
  • Errors and warnings: Listed errors and warnings flagged during the build. You get a readable message along with a link directly to the source file in GitHub. No need to parse the obscure xcodebuild output anymore from your CI logs.
  • Module and file breakdown: Ran into a long build? Tuist now lists out how long Xcode took to build individual modules and files, so you can focus on the outliers.

The build detail comes especially handy when you need to inspect a build that occurred in a different environment than yours – such as from the CI – or when analyzing build performance of a particular build. No need to upload and download .xcresult bundles anymore. What's more, you can easily send a link to your colleagues, so they can inspect the build themselves.

However, build insights are not limited to inspecting individual builds. Where this feature really shines is when the data is analyzed over time. Something you can't get with Xcode.

Tracking builds

Especially in larger organizations, having the data to assess the health of the developer environment is crucial to ensure developers are not hindered by slow builds. While organizations usually track the duration of CI pipelines, they often lack insights into the local developer environment. And on the CI, the numbers can be often misleading since the measurements are usually bundled with the rest of the pipeline.

Tuist helps you to answer questions such as:

  • How often do engineers run clean builds?
  • How long does it typically take to build the app on incremental builds?
  • How does the build time vary between different Xcode versions and devices?

All of these questions, you will be able to answer by going to the "Builds" page in the Tuist dashboard:

Screenshot of a build page

In the "Builds" page, you have access to filters filters such as:

  • Scheme
  • Build – incremental or clean
  • Environment – local or CI

You can use these filters to powerfully slice the data, like getting the number of local clean builds that occurred in the last 30 days, along with the average build time.

Do you want to play with an actual dashboard? Our Tuist dashboard is open for anyone, so you can see the build analytics that we track when working on the Tuist CLI and the upcoming iOS app: https://tuist.dev/tuist/tuist/builds

Wrapping up

Tuist build insights is a powerful tool to take Xcode's data, make it readily available in your browser, and analyze the data over time to simplify inspecting individual builds in arbitrary environments and to understand how productive your developer environment.

How are we going to improve build insights further?

We will:

  • Include a link to builds from your CI workflow in the GitHub Tuist report
  • Add deeper analytics to help you surface areas of improvement, such as adding suggestions for which module to split to optimize the parallelization of your build
  • Couple the build data with binary cache optimizations

Sounds exciting? Take this feature for a spin and let us know your feedback or ideas for how to improve build insights further 💜

Supercharge your Swift app development

Get started

You might also like

Issue and feature bounties
Announcing new bounty program for our Tuist contributors
Interview with Kamil Pyć - With Bazel we were able to reduce build times by 70% on clean builds
In this interview, we talk with Kamil Pyć, Senior Mobile Developer at Allegro. Allegro is one of the few companies that have undertaken replacing Xcode's build system with Bazel, and that led them to an improvement in build times of roughly 95%. In this interview, Kamil shares more about Bazel's adoption, and some other insights about their project and teams.
Tuist 1.5.0 - Scaffold command, performance, Mint
Tuist's new version 1.5.0 brings scaffold command, performance improvements and Mint support