feat: add Expo SDK 57 support#49
Conversation
📝 WalkthroughWalkthroughThe example app is upgraded to Expo SDK 57 and React Native 0.86. Setup documentation now covers SDK 56+ through SDK 57, updated React Native prerequisites, and Nitro Modules. README and architecture references are updated accordingly. ChangesExpo SDK 57 support
Estimated code review effort: 2 (Simple) | ~10 minutes Suggested reviewers: 🚥 Pre-merge checks | ✅ 6✅ Passed checks (6 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@package/package.json`:
- Line 84: Move `@expo/config-plugins` from devDependencies to dependencies in
package/package.json so the published plugin has it available at runtime for
imports from package/plugin/src/index.ts and related plugin code.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 728c6d3d-5ede-47cf-9f57-f094de8a05be
⛔ Files ignored due to path filters (1)
bun.lockis excluded by!**/*.lock
📒 Files selected for processing (6)
README.mddocs/architecture.mddocs/expo-setup.mdexample/app.jsonexample/package.jsonpackage/package.json
💤 Files with no reviewable changes (1)
- example/app.json
|
Nice work 🫶 LGTM SDK 57 / RN 0.86 upgrade looks clean, peer ranges already cover it, and the docs updates match. The CodeRabbit note about moving Good job on the verification notes too (prebuild diff, device/emulator checks, Xcode caveat). |
Closes #38
Summary
Upgrades the example app to Expo SDK 57 (React Native 0.86, React 19.2) and validates the library, config plugin, and docs against it. RN 0.86 has no user-facing breaking changes from 0.85, so this is dependency alignment plus verification — no library source changes were required.
chore(example): expo ~57.0.6, react-native 0.86.0, expo-status-bar, babel-preset-expo, reanimated 4.5 + worklets 0.10 per the SDK 57 recommended set; react stays 19.2.3, nitro stays on the 0.35 line (already RN 0.86 compatible)chore(deps):@expo/config-pluginsdevDependency to ~57.0.0 so the plugin typechecks and unit-tests against the SDK 57 prebuild toolchain; react-native devDependency to 0.86.0docs: supported range stated as SDK 56+ (verified through SDK 57) with matching RN versions in expo-setup prerequisites, README requirements, and the architecture tableBreaking change
None. Published
peerDependenciesare unchanged — the existing ranges (react-native >=0.78.0,react-native-nitro-modules >=0.35.0) already cover RN 0.86, so current consumers are unaffected.Test plan
bun run nitrogen,bun run lint,bun run typecheck,bun run build, library tests — all greennpx expo-doctorinexample/— passes (one pre-existing false positive, see Notes)expo prebuild --cleanoutput diffed against an SDK 56 baseline: plugin-injected surface identical —com.google.android.geo.API_KEYmeta-data,ACCESS_FINE_LOCATION/ACCESS_COARSE_LOCATION,GoogleMapsIosApiKey,NSLocationWhenInUseUsageDescription; only manifest delta is the SDK 57 template addingassetsPathstoconfigChangesNotes
newArchEnabledwas removed fromexample/app.jsonbecause the SDK 57 config schema rejects the property (the New Architecture is the only option now); the New Architecture itself is unaffectedrequire('./app.json')spread inapp.config.js;npx expo config --jsonresolves allapp.jsonvalues correctly, so the config structure was left as-isrootProject.extvalues, so itsgradle.propertiesfallbacks are intentionally untouched (they were aligned with the nitro-modules prefab in fix(android): align SDK versions with nitro-modules prefab #41)expo-modules-jsi@57.0.3(expo-modules-jsi: abs(milliseconds) fails to compile with Swift 6 (Xcode 26) expo/expo#47843)