Skip Recompiling 70+ IOS Packages on Every Build

React Native developers face a common problem. Every clean iOS build recompiles your entire dependency tree. You wait for React Native core, Expo modules, and third-party libraries to rebuild every single time.

Expo SDK 56 fixes this. It ships Expo modules as precompiled XCFrameworks. Your app links these binaries directly. You no longer rebuild them from source.

This change makes clean builds faster. It also moves the ecosystem from CocoaPods to Swift Package Manager. This is Apple's modern system for dependencies.

The benefits for you:

  • Fewer compilation steps
  • Faster local development
  • Faster EAS builds
  • More predictable build environments

You do not need to migrate. This works automatically in your existing apps.

What are XCFrameworks? They are Apple's format for precompiled native libraries. Instead of compiling source code on your machine, you use binary files already built for iOS devices and simulators.

Performance gains on an Apple M4 Max: • React Native core prebuilt: ~44% reduction in build time. • Expo modules prebuilt: ~50% reduction compared to source. • Third-party libraries prebuilt: ~65% reduction compared to source.

Large projects see the biggest wins. As your app grows, native build times usually increase. This hurts your CI and EAS Build speeds. Precompiled XCFrameworks move the work earlier in the pipeline. We compile the frameworks once and reuse them.

This transition is a major infrastructure shift. We had to solve several technical hurdles:

  • Refactoring public interfaces to isolate dependencies.
  • Fixing cyclic dependencies between Objective-C and Swift.
  • Creating temporary source structures to satisfy Swift Package Manager rules.
  • Using Clang Virtual File System overlays to support legacy header layouts.

SDK 56 focuses on coexistence. You can still use CocoaPods. If you need to turn off precompiled modules, use this setting: EXPO_USE_PRECOMPILED_MODULES=0

This move brings Expo closer to Apple's modern development ecosystem. It means faster builds and cleaner architecture for the future.

Source: https://dev.to/expo/skip-recompiling-70-ios-packages-on-every-build-27a6