Skip to content

Upgrade ERN to support RN 0.77#1914

Merged
r0h0gg6 merged 3 commits intoelectrode-io:masterfrom
r0h0gg6:upgrade-rn-0.77
Jul 9, 2025
Merged

Upgrade ERN to support RN 0.77#1914
r0h0gg6 merged 3 commits intoelectrode-io:masterfrom
r0h0gg6:upgrade-rn-0.77

Conversation

@r0h0gg6
Copy link
Copy Markdown
Contributor

@r0h0gg6 r0h0gg6 commented Jun 20, 2025

ANDROID

Update Android Plugins/ tools and templates to support RN 0.77.x

DEFAULT_RN_GRADLE_PLUGIN_VERSION = '0.77.2';
ANDROID_GRADLE_PLUGIN_VERSION = '8.7.2';
ANDROIDX_APPCOMPACT_VERSION = '1.1.0';
ANDROIDX_LIFECYCLE_EXTENSIONS_VERSION = '2.1.0';
BUILD_TOOLS_VERSION = '35.0.0';
COMPILE_SDK_VERSION = '35';
GRADLE_DISTRIBUTION_VERSION = '8.11.1';
JSC_VARIANT = 'android-jsc';
KOTLIN_VERSION = '2.0.21';
MIN_SDK_VERSION_PRE_RN64 = '19';
MIN_SDK_VERSION_POST_RN64 = '21';
SUPPORT_LIBRARY_VERSION = '28.0.0';
TARGET_SDK_VERSION = '35';
SOURCE_COMPATIBILITY = 'VERSION_17';
TARGET_COMPATIBILITY = 'VERSION_17';
RN_GRADLE_PLUGIN_VERSION = '0.77.2';

IOS

Update iOS templates to support RN 0.77.x
Update min deployment target to 15.1

MAJOR CHANGES

  • flipper dependency has been removed
  • androidx.lifecycle:lifecycle-extensions has been deprecated.
  • added mavenCentral to repositories for central sonatype
  • react native CLI commands moved out as separate module in @react-native-community/cli

@r0h0gg6 r0h0gg6 requested a review from friederbluemle June 27, 2025 19:01
Copy link
Copy Markdown
Member

@friederbluemle friederbluemle left a comment

Choose a reason for hiding this comment

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

First off, wow! Thanks for the contribution @r0h0gg6 - This is probably the biggest update in years! 😄

I will try to test it locally later this week. Just left a couple minor comments for now.

Also one question: Is there a reason to go specifically with 0.77? I was thinking it might be slightly safer to first move up to 0.76 (or maybe jump directly to 0.79)? Preferably 0.76. One reason is that now that we so infrequent updates (compared to a few years ago), it would be better to stick to "more established" versions. Looking at Expo's version mapping, there is no direct 0.77 supported by them. Expo 52 -> RN 0.76 and Expo 53 (latest) -> RN 0.79

@r0h0gg6
Copy link
Copy Markdown
Contributor Author

r0h0gg6 commented Jul 4, 2025

First off, wow! Thanks for the contribution @r0h0gg6 - This is probably the biggest update in years! 😄

I will try to test it locally later this week. Just left a couple minor comments for now.

Also one question: Is there a reason to go specifically with 0.77? I was thinking it might be slightly safer to first move up to 0.76 (or maybe jump directly to 0.79)? Preferably 0.76. One reason is that now that we so infrequent updates (compared to a few years ago), it would be better to stick to "more established" versions. Looking at Expo's version mapping, there is no direct 0.77 supported by them. Expo 52 -> RN 0.76 and Expo 53 (latest) -> RN 0.79

Thank you @friederbluemle

The reason we chose to use 0.77.2 was because this version of RN was the earliest version where the minimum version of AGP in RN is targeting Android SDK 35. This is due to a requirement by Google Play Store requiring all apps to target Android 35 for any app releases starting in August 2025.

P.S I have also tagged you as a reviewer in other ERN repos required for this RN upgrade, please take a look as well. Thank you!

@r0h0gg6 r0h0gg6 force-pushed the upgrade-rn-0.77 branch from b24744f to d8a3c87 Compare July 4, 2025 08:54
@friederbluemle
Copy link
Copy Markdown
Member

The reason we chose to use 0.77.2 was because this version of RN was the earliest version where the minimum version of AGP in RN is targeting Android SDK 35. This is due to a requirement by Google Play Store requiring all apps to target Android 35 for any app releases starting in August 2025.

Ah okay, that makes sense, thanks for the explanation. I checked and you are right - starting August 31, 2025, all new apps and update on Google Play must target SDK 35 or higher 🤯

I also noticed that only RN 0.78 changed targetSdkLevel to 35, RN 0.77 by default still comes with 34.

@r0h0gg6
Copy link
Copy Markdown
Contributor Author

r0h0gg6 commented Jul 7, 2025

The reason we chose to use 0.77.2 was because this version of RN was the earliest version where the minimum version of AGP in RN is targeting Android SDK 35. This is due to a requirement by Google Play Store requiring all apps to target Android 35 for any app releases starting in August 2025.

Ah okay, that makes sense, thanks for the explanation. I checked and you are right - starting August 31, 2025, all new apps and update on Google Play must target SDK 35 or higher 🤯

I also noticed that only RN 0.78 changed targetSdkLevel to 35, RN 0.77 by default still comes with 34.

@friederbluemle

The upgrade helper tool is not referencing things correctly with updated values.

If you see here https://github.com/facebook/react-native/blob/v0.77.2/packages/react-native/gradle/libs.versions.toml
RN 0.77.2 pulls the targetSDK from libs.versions.toml to be used throughout as targetSDK 35.

@r0h0gg6 r0h0gg6 force-pushed the upgrade-rn-0.77 branch 4 times, most recently from 846ff02 to 62fc17b Compare July 8, 2025 23:23
@r0h0gg6 r0h0gg6 force-pushed the upgrade-rn-0.77 branch from 3cdc471 to f5211e5 Compare July 9, 2025 01:40
@friederbluemle
Copy link
Copy Markdown
Member

Amazing update! Thanks @r0h0gg6 for all the work! And thanks @rthic23 for the help with the review. 👍

@r0h0gg6 r0h0gg6 merged commit 63305ad into electrode-io:master Jul 9, 2025
10 checks passed
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.

3 participants