Skip to content

chore: upgrade to Expo SDK 55 - #424

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

PierreBresson merged 2 commits into
NMF-earth:mainfrom
hb2708:420

Conversation

@hb2708

@hb2708 hb2708 commented Mar 1, 2026 •

Copy link
Copy Markdown
Contributor

✅ 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

hb2708 commented Mar 1, 2026 •

Copy link
Copy Markdown
Contributor Author

@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

hb2708 commented Mar 1, 2026

Copy link
Copy Markdown
Contributor Author

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

@PierreBresson

PierreBresson commented Mar 1, 2026 •

Copy link
Copy Markdown
Member

@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

PierreBresson commented Mar 1, 2026 •

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

@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

hb2708 commented Mar 1, 2026

Copy link
Copy Markdown
Contributor Author

@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

hb2708 commented Mar 1, 2026 •

Copy link
Copy Markdown
Contributor Author

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

hb2708 commented Mar 2, 2026

Copy link
Copy Markdown
Contributor Author

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

hb2708 commented Mar 6, 2026

Copy link
Copy Markdown
Contributor Author

@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