Expo Modules API custom native module in Expo Go versus development build
0 reputation · 31 Oct 2025, 17:06 UTC
Expo Modules API custom native module in Expo Go versus development build
The goal is to confirm the native-module boundary between Expo Go and a custom development build when using the Expo Modules API in Swift or Kotlin. A JavaScript import should resolve to the native module object without requiring ejection to bare React Native.
Expo Go ships a fixed set of Expo SDK native modules, and available documentation indicates that arbitrary Expo Modules API code is not loaded at runtime from the JavaScript bundle. A custom development build produced with EAS Build or locally can include the module alongside the SDK. Whether Expo Go offers any runtime fallback or proxy for an absent module remains unresolved, and exact behavior may vary by Expo SDK version and expo-modules-core release.
Module registration names must match between native code and JavaScript imports, and Expo Modules API is distinct from React Native TurboModules, so cross-layer compatibility is not automatic.
Can Expo Go resolve a custom Expo Modules API module through any runtime mechanism, or is a custom development build strictly required? If a development build is required, what confirms the boundary at build time rather than runtime?