Tuist now supports remote Xcode compilation cache

Cut your build times in a couple of minutes with the Tuist remote cache now working with any Xcode project :tada:

One of the main missions of Tuist has been to enable teams to scale their projects without losing the joy. But that joy or spark of an idea gets quickly lost if you need to wait way too long for your build to finish – be it locally or remote.

Instead of replacing the build system or abstracting away the platform with cross-platform frameworks, we’ve long offered module cache – but that required migrating to generated projects. Something that we still believe is worthwhile, but also costly.

However, now you will finally able to optimize your local and CI builds in a couple of minutes with Tuist now officially supporting the remote Xcode compilation cache.

Run tuist setup cache in your project, update your build settings, and cut those build times.

  • What is the Xcode compilation cache? This is a new feature introduced in Xcode 26 which builds on similar ideas like other build systems like Bazel or Gradle, such as the content-addressable storage (CAS for short).
  • How much can your build times be improved? Depends – as always :wink: we’ve benchmarked our solution against real-world open source projects and you can expect to cut your clean build times by 20 to 50 %. And we expect this to get better as the compilation cache improves.
  • What does this mean for the Tuist module cache? Turns out, the Tuist module cache still outperforms the Xcode compilation cache – moving to generated projects is still a worthwhile investment for quite some time to come and we’ll continue actively working on it.

Want to get started? Head over to our docs and as always, feedback is appreciated :backhand_index_pointing_down:

This looks very cool. I’m trying it now for my main job’s project. I keep getting CAS error: deadlineExceeded(connectionError: nil). And then there was

CAS error: Client encountered an error invoking the operation “saveCacheCAS”, caused by “Middleware of type ‘ServerClientAuthenticationMiddleware’ threw an error.”, underlying error: “token_https___tuist.dev.lock” couldn’t be removed..

And once I got logged out of the CLI or the token expired and got CAS error: You must be logged in to do this.. As these errors are in the long build logs it’s not so visible unfortunately. This is with the Tuist CLI 4.90.0.

Can you try the following:

  • tuist auth logout
  • tuist auth login
  • tuist setup cache
  • run the build again – are you still seeing the same errors?

I keep getting CAS error: deadlineExceeded(connectionError: nil)

This happens when the socket is not running at all. tuist setup cache should have started it up but you can double check that by running launchctl list | grep tuist.cache.

I also get the deadline exceeded errors when the socket is definitely running. I’m in Brno currently in a place with not the best internet. In my other project uploading cached binaries (normal Tuist cache) is also a bit slower, but that still works.