Skip to content

chore: upgrade to Expo SDK 55#424

Merged
PierreBresson merged 2 commits intoNMF-earth:mainfrom
hb2708:420
Mar 6, 2026
Merged

chore: upgrade to Expo SDK 55#424
PierreBresson merged 2 commits intoNMF-earth:mainfrom
hb2708:420

Conversation

@hb2708
Copy link
Copy Markdown
Contributor

@hb2708 hb2708 commented Mar 1, 2026

✅ I have read the contributing file

Summary

Fixes #420

Changelog

  • Upgrade expo to ^55.0.0, react to 19.2.0, react-native to 0.83.2
  • Enable React Compiler (experiments.reactCompiler: true)
  • Remove redundant config: newArchEnabled, jsEngine (both are defaults)
  • Remove implicit deps: @babel/core, babel-preset-expo, expo-constants
  • Replace legacy sentry-expo hook with @sentry/react-native/expo plugin
  • Add required config plugins: datetimepicker, sentry, expo-sharing
  • Update safe deps: moment, react-native-collapsible, eslint-plugin-react, eslint-plugin-import, @types/react-native-vector-icons, @types/webpack-env

Demo

Based on brief local run ios seems to work as expected. No demo video if need i can add

- Upgrade expo to ^55.0.0, react to 19.2.0, react-native to 0.83.2
- Enable React Compiler (experiments.reactCompiler: true)
- Remove redundant config: newArchEnabled, jsEngine (both are defaults)
- Remove implicit deps: @babel/core, babel-preset-expo, expo-constants
- Replace legacy sentry-expo hook with @sentry/react-native/expo plugin
- Add required config plugins: datetimepicker, sentry, expo-sharing
- Update safe deps: moment, react-native-collapsible, eslint-plugin-react,
  eslint-plugin-import, @types/react-native-vector-icons, @types/webpack-env
@hb2708
Copy link
Copy Markdown
Contributor Author

hb2708 commented Mar 1, 2026

@PierreBresson can you help to check if the changes after this pr allows to run the app in expo go without development build?

I am able to do it but want to make sure its same for you as well

@hb2708
Copy link
Copy Markdown
Contributor Author

hb2708 commented Mar 1, 2026

Also i believe on your local side you must have a .env file which may have some things related to sentry?

@PierreBresson
Copy link
Copy Markdown
Member

PierreBresson commented Mar 1, 2026

@hb2708 thanks a lot for the PR 🙏
I'm trying to run on ios, but I get the following error, any idea why? (I've deleted Pods folder and podfile.lock file before running yarn ios)

› Packaging expo-updates Pods/EXUpdates » libEXUpdates.a
› Executing expo-updates Pods/EXUpdates » Copy generated compatibility header
› Compiling Pods/Pods-NMFearth » Pods-NMFearth-dummy.m
› Packaging Pods/Pods-NMFearth » libPods-NMFearth.a
› Executing NMFearth » [CP] Check Pods Manifest.lock
› Executing NMFearth » [Expo] Configure project
› Linking   NMFearth » __preview.dylib
› Preparing NMFearth » Info.plist

❌  (/Users/pierre/Documents/GitHub/nmf-app/ios/NMFearth/AppDelegate.swift:22:5)

  20 |     reactNativeDelegate = delegate
  21 |     reactNativeFactory = factory
> 22 |     bindReactNativeFactory(factory)
     |     ^ cannot find 'bindReactNativeFactory' in scope
  23 |
  24 | #if os(iOS) || os(tvOS)
  25 |     window = UIWindow(frame: UIScreen.main.bounds)


❌  (/Users/pierre/Documents/GitHub/nmf-app/ios/NMFearth/AppDelegate.swift:1:8)

> 1 | import Expo
    |        ^ ambiguous implicit access level for import of 'Expo'; it is imported as 'internal' elsewhere
  2 | import React
  3 | import ReactAppDependencyProvider
  4 |

    Run script build phase '[CP-User] [Hermes] Replace Hermes for the right configuration, if needed' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'hermes-engine' from project 'Pods')
    Run script build phase '[CP-User] Generate updates resources for expo-updates' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'EXUpdates' from project 'Pods')

› 2 error(s), and 2 warning(s)

CommandError: Failed to build iOS project. "xcodebuild" exited with error code 65.
error Command failed with exit code 1.

@PierreBresson
Copy link
Copy Markdown
Member

PierreBresson commented Mar 1, 2026

Also i believe on your local side you must have a .env file which may have some things related to sentry?

Actually I just realized that I don't have the .env file anymore, forgot to copy the file when changing computer, so I don't know if it's still needed (I will update the readme if it's the case).

@PierreBresson
Copy link
Copy Markdown
Member

yarn android also gives me an error:

> Task :app:compileDebugKotlin FAILED
e: file:///Users/pierre/Documents/GitHub/nmf-app/android/app/src/main/java/nmf/earth/MainApplication.kt:17:21 Unresolved reference 'ReactNativeHostWrapper'.
e: file:///Users/pierre/Documents/GitHub/nmf-app/android/app/src/main/java/nmf/earth/MainApplication.kt:21:51 Unresolved reference 'ReactNativeHostWrapper'.
e: file:///Users/pierre/Documents/GitHub/nmf-app/android/app/src/main/java/nmf/earth/MainApplication.kt:39:13 Unresolved reference 'ReactNativeHostWrapper'.

[Incubating] Problems report is available at: file:///Users/pierre/Documents/GitHub/nmf-app/android/build/reports/problems/problems-report.html

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers$GradleKotlinCompilerWorkAction
   > Compilation error. See log for more details

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

For more on this, please refer to https://docs.gradle.org/8.14.3/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.

BUILD FAILED in 2m 15s
573 actionable tasks: 461 executed, 112 from cache
Error: /Users/pierre/Documents/GitHub/nmf-app/android/gradlew app:assembleDebug -x lint -x test --configure-on-demand --build-cache -PreactNativeDevServerPort=8081 -PreactNativeArchitectures=arm64-v8a exited with non-zero code: 1
Error: /Users/pierre/Documents/GitHub/nmf-app/android/gradlew app:assembleDebug -x lint -x test --configure-on-demand --build-cache -PreactNativeDevServerPort=8081 -PreactNativeArchitectures=arm64-v8a exited with non-zero code: 1
    at ChildProcess.completionListener (/Users/pierre/Documents/GitHub/nmf-app/node_modules/@expo/spawn-async/src/spawnAsync.ts:67:13)
    at Object.onceWrapper (node:events:623:12)
    at ChildProcess.emit (node:events:508:20)
    at maybeClose (node:internal/child_process:1084:16)
    at Process.ChildProcess._handle.onexit (node:internal/child_process:304:5)
    ...
    at spawnAsync (/Users/pierre/Documents/GitHub/nmf-app/node_modules/@expo/spawn-async/src/spawnAsync.ts:28:21)
    at spawnGradleAsync (/Users/pierre/Documents/GitHub/nmf-app/node_modules/@expo/cli/src/start/platforms/android/gradle.ts:134:28)
    at assembleAsync (/Users/pierre/Documents/GitHub/nmf-app/node_modules/@expo/cli/src/start/platforms/android/gradle.ts:83:16)
    at runAndroidAsync (/Users/pierre/Documents/GitHub/nmf-app/node_modules/@expo/cli/src/run/android/runAndroidAsync.ts:62:24)
error Command failed with exit code 1.

@hb2708
Copy link
Copy Markdown
Contributor Author

hb2708 commented Mar 1, 2026

@PierreBresson

  1. i deleted the whole ios and android folders
  2. Then then run yarn install
  3. then yarn run ios and yarn run android

see if the step one does solve the issue?

@hb2708
Copy link
Copy Markdown
Contributor Author

hb2708 commented Mar 1, 2026

Also i believe on your local side you must have a .env file which may have some things related to sentry?

Actually I just realized that I don't have the .env file anymore, forgot to copy the file when changing computer, so I don't know if it's still needed (I will update the readme if it's the case).

Not sure but feel that could be needed for sentry commands? or may be the new CLI may not need them any more?

Add dynamic bottom padding to the `NoEmission` `ScrollView` content using `useTabBarBottomPadding`.
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Noticed the NO emission UI dont scroll on small height android emulator . this does fix it

@PierreBresson
Copy link
Copy Markdown
Member

Also i believe on your local side you must have a .env file which may have some things related to sentry?

Actually I just realized that I don't have the .env file anymore, forgot to copy the file when changing computer, so I don't know if it's still needed (I will update the readme if it's the case).

Not sure but feel that could be needed for sentry commands? or may be the new CLI may not need them any more?

Hum for the ios part, the cli seems to do the trick, need to check for android.

@PierreBresson
Copy link
Copy Markdown
Member

Deleting the whole ios and android folders fixed my issue :) Why do we have to do that now?

@hb2708
Copy link
Copy Markdown
Contributor Author

hb2708 commented Mar 2, 2026

Deleting the whole ios and android folders fixed my issue :) Why do we have to do that now?

It could be a one time thing after the expo upgrade. As multiple dependencies are changed and your native folders may not be generated properly.

@PierreBresson
Copy link
Copy Markdown
Member

Make sense. Thanks :)

@PierreBresson PierreBresson merged commit 2df3451 into NMF-earth:main Mar 6, 2026
1 check passed
@hb2708 hb2708 deleted the 420 branch March 6, 2026 13:42
@hb2708
Copy link
Copy Markdown
Contributor Author

hb2708 commented Mar 6, 2026

@PierreBresson don't forget to assign ticket and pr to me thanks

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.

Update to Expo SDK 55

2 participants