Skip to content

[feat] add Expo 56 support#360

Draft
adamTrz wants to merge 3 commits into
mainfrom
adamTrz/expo-56-support
Draft

[feat] add Expo 56 support#360
adamTrz wants to merge 3 commits into
mainfrom
adamTrz/expo-56-support

Conversation

@adamTrz
Copy link
Copy Markdown
Collaborator

@adamTrz adamTrz commented Jun 2, 2026

What changed

This adds Expo SDK 56 support across the repo and package surface.

It introduces a new ExpoApp56 example, 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:

  • iOS deployment target is resolved from the app target build settings
  • Android compileSdk is inherited from rootProject.ext.compileSdkVersion
  • @expo/config-plugins peer support is forward-opened to reduce install-time blocking on future Expo majors

Why

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

  • adds a full Expo 56 example app and consumer-app integration lanes
  • updates CI/docs/scripts to treat Expo 56 as a supported lane
  • keeps Expo 54 and 55 intact
  • reduces future maintenance pressure by inheriting native floors from the generated Expo project where possible

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.ts
  • yarn workspace @callstack/react-native-brownfield typecheck
  • yarn workspace @callstack/react-native-brownfield build:brownfield
  • yarn workspace @callstack/brownfield-example-expo-app-56 lint
  • yarn workspace @callstack/brownfield-example-expo-app-56 test
  • yarn workspace @callstack/brownfield-example-expo-app-56 prebuild

Native 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.

@adamTrz adamTrz changed the title [codex] add Expo 56 support and inherit native floors from Expo apps [feat] add Expo 56 support Jun 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant