-
Notifications
You must be signed in to change notification settings - Fork 6
feat: upgrade react-native-expo to Expo SDK 54 #216
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
feat: upgrade react-native-expo to Expo SDK 54 #216
Conversation
33dfdd3 to
844bcff
Compare
Upgrades Expo SDK from 53 to 54 and regenerates native folders. ## Changes - Upgrade Expo SDK: ~53 → ~54.0.25 - Upgrade React: 19.0.0 → 19.1.0 - Upgrade React Native: 0.79.5 → 0.81.5 - Update all Expo packages to SDK 54 versions - Add SafeAreaProvider from react-native-safe-area-context - Add react-native-worklets (peer dependency for reanimated) - Add Expo 54 Android config (edgeToEdgeEnabled, predictiveBackGestureEnabled) - Enable reactCompiler experiment - Add dark mode splash screen config - Regenerate ios/ and android/ folders via expo prebuild ## Files Changed - package.json: Dependency upgrades - app.json: Expo 54 config additions - App.tsx: SafeAreaProvider wrapper - .gitignore: Updated to match template - yarn.lock: Updated lockfile - ios/: Regenerated with Expo SDK 54 - android/: Regenerated with Expo SDK 54 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
844bcff to
75f81d9
Compare
Upgrades Expo SDK from 53 to 54 and regenerates native folders. ## Changes - Upgrade Expo SDK: ~53 → ~54.0.25 - Upgrade React: 19.0.0 → 19.1.0 - Upgrade React Native: 0.79.5 → 0.81.5 - Update all Expo packages to SDK 54 versions - Add SafeAreaProvider from react-native-safe-area-context - Add react-native-worklets (peer dependency for reanimated) - Add Expo 54 Android config (edgeToEdgeEnabled, predictiveBackGestureEnabled) - Enable reactCompiler experiment - Add dark mode splash screen config - Regenerate ios/ and android/ with Expo SDK 54 - Use index.js entry point (expo prebuild standard) ## Tested - ✅ iOS builds and runs - ✅ Android builds and runs - ✅ SafeAreaView working properly - ✅ Ditto sync functional 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR upgrades the react-native-expo quickstart from Expo SDK 53 to SDK 54, updating React Native from 0.79.5 to 0.81.5 and React from 19.0.0 to 19.1.0. The upgrade includes necessary configuration changes for both iOS and Android platforms, adds SafeAreaProvider for proper edge-to-edge handling, and includes a new peer dependency (react-native-worklets) required by react-native-reanimated 4.x.
Key Changes
- Dependency upgrades to Expo SDK 54 with React Native 0.81.5 and React 19.1.0
- Added SafeAreaProvider wrapper and react-native-worklets peer dependency
- Enabled New Architecture with React Compiler experiment
- Configured edge-to-edge display and dark mode splash screens for both platforms
Reviewed changes
Copilot reviewed 19 out of 22 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| react-native-expo/package.json | Updated all dependencies to SDK 54 compatible versions, changed main entry to index.js |
| react-native-expo/index.js | New simple entry point using registerRootComponent |
| react-native-expo/app.json | Added Android edge-to-edge config, dark mode splash, and React Compiler experiment |
| react-native-expo/App.tsx | Wrapped app in SafeAreaProvider, added DQL_STRICT_MODE configuration |
| react-native-expo/ios/Podfile | Updated Podfile with SDK 54 requirements and ccache helper function |
| react-native-expo/ios/Podfile.lock | Updated all iOS dependencies to SDK 54 versions |
| react-native-expo/ios/Info.plist | Enabled New Architecture (RCTNewArchEnabled) |
| react-native-expo/ios/*.storyboard | Added dark mode splash screen support |
| react-native-expo/android/build.gradle | Removed deprecated reactNativeAndroidDir configuration |
| react-native-expo/android/gradle.properties | Enabled parallel builds and edge-to-edge mode |
| react-native-expo/android/app/build.gradle | Updated R8 configuration naming (enableProguardInReleaseBuilds → enableMinifyInReleaseBuilds) |
| react-native-expo/android/app/src/main/java/com/anonymous/reactnativeexpo/MainApplication.kt | Updated to new React Native 0.81 initialization pattern |
| react-native-expo/android/app/src/main/AndroidManifest.xml | Disabled predictive back gesture (android:enableOnBackInvokedCallback) |
| react-native-expo/android/app/src/main/res/values/styles.xml | Updated edge-to-edge theming |
| react-native-expo/android/gradle/wrapper/gradle-wrapper.properties | Upgraded Gradle from 8.13 to 8.14.3 |
| react-native-expo/.gitignore | Simplified native folder ignore patterns |
Comments suppressed due to low confidence (1)
react-native-expo/android/gradlew:1
- The CLASSPATH has been set to an empty string with escaped quotes, which will break Gradle execution. This should remain as
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar. The change on line 216 to use-jarflag is correct, but the CLASSPATH should not be emptied.
#!/bin/sh
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Summary
Upgrades the react-native-expo quickstart from Expo SDK 53 to SDK 54 with minimal changes.
Changes
Files Changed
Only react-native-expo/ files modified:
Testing
🤖 Generated with Claude Code