[feat] add Expo 56 support#360
Draft
adamTrz wants to merge 3 commits into
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
This adds Expo SDK 56 support across the repo and package surface.
It introduces a new
ExpoApp56example, wires Expo 56 through the Android and iOS consumer apps, extends CI/docs, and updates the Expo config-plugin package metadata.It also follows up with a cleanup in the config plugin so Brownfield no longer hardcodes Expo 56 native floors in the core resolver. When the user does not override them, the generated Brownfield targets now inherit native defaults from the Expo app project itself:
compileSdkis inherited fromrootProject.ext.compileSdkVersion@expo/config-pluginspeer support is forward-opened to reduce install-time blocking on future Expo majorsWhy
Issue #355 asked about Expo 56 support.
The package already had the post-55 compatibility model introduced for Expo 55, but the repo still lacked a first-class Expo 56 example lane and the plugin still encoded older assumptions in metadata and native default handling.
The follow-up refactor makes the support less version-table-driven, so future Expo SDK bumps are more likely to work without a package change.
Impact
Validation
yarn workspace @callstack/react-native-brownfield test src/expo-config-plugin/__tests__/withBrownfield.test.ts src/expo-config-plugin/android/__tests__/withAndroidModuleFiles.test.ts src/expo-config-plugin/ios/__tests__/xcodeHelpers.test.tsyarn workspace @callstack/react-native-brownfield typecheckyarn workspace @callstack/react-native-brownfield build:brownfieldyarn workspace @callstack/brownfield-example-expo-app-56 lintyarn workspace @callstack/brownfield-example-expo-app-56 testyarn workspace @callstack/brownfield-example-expo-app-56 prebuildNative packaging was also smoke-tested during development for the new Expo 56 lane, with Android packaging completing successfully after using an isolated
GRADLE_USER_HOME. iOS packaging still depends on local CocoaPods/Xcode environment availability, so that path should be re-run in CI or on a machine with the expected Ruby/CocoaPods setup.