Skip to main content

Xcode Compilation Cache FAQ

What are the requirements to use Xcode Compilation Cache?

You need Xcode 26 and Explicitly Built Modules enabled (default in Xcode 26 for Swift targets)

Will this work with Swift Package Manager dependencies?

As of September 2025, SPM dependencies are not cacheable in Xcode 26 Beta. Apple is working on it and it should be available in the future.

What build tasks are not cacheable?

CompileStoryboard, CompileXIB, CompileAssetCatalogVariant, PhaseScriptExecution, DataModelCompile, CopyPNGFile, GenerateDSYMFile, and Ld tasks are currently not cacheable.

Will it speed up my Xcode Tests?

Xcode Compilation Cache helps reducing compilation times. This means build and archive actions benefit the most.

In case of Xcode Test, the compilation of the tests will be faster, but running the tests won’t be quicker.

For testing the performance benefits of Xcode compilation cache, we recommend to test with a Workflow which runs Xcode Archive or Xcode Build For Testing (or any other build command).

How can I disable Xcode compilation cache temporarily?

If you would like to disable compilation caching temporarily for an invocation, you can override the PATH to remove the wrapping we set up by issuing:

export PATH="${PATH#"$HOME/.bitrise-xcelerate/bin:"}"

Note that this will be reverted in the next terminal session as the Bitrise Build Cache CLI persists, the PATH overrides in ~/.zshrc and ~/.bashrc.

To make this persist among Bitrise Steps, set the PATH again with envman:

 envmand add --key PATH --value "$PATH"

What about tools that depend on Xcode Index Data Store?

Xcode does not generate an Index.noindex/DataStore in DerivedData when remote compilation cache is enabled. This can cause an error if your tasks depend on the Index Data Store.

Here's an example error, generated by Periphery when the Index data store isn’t found:

error: Internal Error: index store path does not exist: /Users/vagrant/Library/Developer/Xcode/DerivedData/.../Index.noindex/DataStore

Currently, there’s no solution for this. A workaround can be to use Bitrise Build Cache for Xcode with all the steps and workflows which don’t depend on the Index data store, and run the steps which do depend on the Index data store in a separate workflow where you don’t configure Bitrise Build Cache for Xcode.