Bitrise Build Cache now caches React Native's C++ too
Bitrise unifies Gradle, Xcode and ccache caching under one command for React Native, finally caching the C++ that CI kept recompiling on every build.
A React Native build is effectively two build systems layered on top of shared native code: Gradle compiles Kotlin/Java on Android and invokes cmake for the C++ inside Hermes, Folly, ReactCommon and turbo modules, while Xcode compiles Swift/Objective-C on iOS and drives the same C++ through Clang. Gradle's own build cache handles JVM tasks well, but the React Native Android plugin marks its native-build tasks as non-cacheable, so every clean CI checkout recompiles all C++ translation units from scratch, adding minutes to each run.
Bitrise closes that gap with a single command, `bitrise-build-cache activate react-native`, which turns on three cache backends at once: the existing Gradle remote cache, Xcode 26+'s LLVM CAS-based compilation caching, and ccache for the shared C++ layer. Because ccache speaks its own remote-storage protocol while Bitrise's backend speaks gRPC, the team built a small Go 'storage helper' process that runs over a Unix socket and translates between the two, letting ccache transparently read and write object files from Bitrise's shared cache.
To make the three caches behave like one from an observability standpoint, every subsystem reports its activity under a shared BITRISE_INVOCATION_ID, so Bitrise Insights shows a single parent React Native run with Gradle, Xcode and ccache listed as child invocations, each with its own hit rate, bytes transferred and duration.
Private beta results were substantial: one team cut an iOS build from 9m35s to 5m28s (about 43% faster), while another saw Android drop from roughly 17 to 9 minutes (46% faster) and iOS from about 10m50s to 6m30s (40% faster), with the Android gains driven almost entirely by ccache covering previously uncached C++ compilation. Adopting it just requires adding the 'Activate React Native Build Cache' step and running builds through the 'React Native Run' step to see unified stats in Insights.