Skip to content

fix: add support for react-native 0.67 - #561

Merged
Tommy Nguyen (tido64) merged 2 commits into
trunkfrom
tido/support-0.67
Jan 19, 2022
Merged

fix: add support for react-native 0.67#561
Tommy Nguyen (tido64) merged 2 commits into
trunkfrom
tido/support-0.67

Conversation

@tido64

@tido64 Tommy Nguyen (tido64) commented Oct 19, 2021

Copy link
Copy Markdown
Member

Description

Add support for react-native 0.67

Discussion: reactwg/react-native-releases#1

Platforms affected

  • Android
  • iOS
  • macOS
  • Windows

Test plan

  1. Set react-native version: npm run set-react-version 0.67
  2. Run yarn
  3. Ensure that the test apps build and run
    • Android
    • iOS (Hermes)
    • iOS (JSC)
    • Windows
Platform Home App
Android Screenshot_1634754984 Screenshot_1634754989
iOS (Hermes) Simulator Screen Shot - iPhone 12 Pro - 2021-10-19 at 13 06 04 Simulator Screen Shot - iPhone 12 Pro - 2021-10-19 at 13 06 06
iOS (JSC) Simulator Screen Shot - iPhone 12 Pro - 2021-10-19 at 13 00 11 Simulator Screen Shot - iPhone 12 Pro - 2021-10-19 at 13 00 12
Windows n/a image

@tido64 Tommy Nguyen (tido64) added platform: Android This affects Android platform: iOS This affects iOS platform: Windows This affects Windows labels Oct 19, 2021
@github-actions github-actions Bot removed platform: Android This affects Android platform: iOS This affects iOS platform: Windows This affects Windows labels Oct 19, 2021
@tido64

Copy link
Copy Markdown
Member Author

Android build fails:

Error: Command failed: ./gradlew installDebug -PreactNativeDevServerPort=8081
w: Runtime JAR files in the classpath should have the same version. These files were found in the classpath:
    /~/.gradle/caches/transforms-3/5124617d1ddf91cc93fc6a31dff02f7e/transformed/jetified-kotlin-stdlib-jdk8-1.4.10.jar (version 1.4)
    /~/.gradle/caches/transforms-3/4c60554dec6a1e41e228dda600ed4226/transformed/jetified-kotlin-stdlib-jdk7-1.5.31.jar (version 1.5)
    /~/.gradle/caches/transforms-3/b50f79cfa342cda80725cbbd9a11dc6c/transformed/jetified-kotlin-reflect-1.5.31.jar (version 1.5)
    /~/.gradle/caches/transforms-3/46bb811c6535b7abbf989788fb375eb0/transformed/jetified-kotlin-stdlib-1.5.31.jar (version 1.5)
    /~/.gradle/caches/transforms-3/6969468c8c2205847081e929b5586f42/transformed/jetified-kotlin-stdlib-common-1.5.31.jar (version 1.5)
w: Some runtime JAR files in the classpath have an incompatible version. Consider removing them from the classpath
e: warnings found and -Werror specified

@arazabishov

Araz Abishov (arazabishov) commented Oct 20, 2021

Copy link
Copy Markdown
Member

Tommy Nguyen (@tido64) react-native depends on 1.4.x, while RNTA on 1.5.x. The stdlib-jdk8 mismatch is introduced because RNTA is not opinionated on which version to use. A quick fix would be to add a dev on stdlib-jdk8 to RNTA:

diff --git a/android/dependencies.gradle b/android/dependencies.gradle
index 0987003..d5e416d 100644
--- a/android/dependencies.gradle
+++ b/android/dependencies.gradle
@@ -31,11 +31,12 @@ ext {
         junit                      : "junit:junit:4.13.2",
         kotlinReflect              : "org.jetbrains.kotlin:kotlin-reflect:1.5.31",
         kotlinStdlibJdk7           : "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.31",
+        kotlinStdlibJdk8           : "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31",
         materialComponents         : "com.google.android.material:material:1.4.0",
         moshiKotlin                : "com.squareup.moshi:moshi-kotlin:1.12.0",
         moshiKotlinCodegen         : "com.squareup.moshi:moshi-kotlin-codegen:1.12.0",
     ]
 
     androidPluginVersion = "4.2.2"
     kotlinVersion = versionOf(libraries.kotlinStdlibJdk7)
 }
diff --git a/android/app/build.gradle b/android/app/build.gradle
index 7580451..57c9d96 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -67,6 +67,11 @@ android {
         ndkVersion ANDROID_NDK_VERSION
     }

     // TODO: Remove this block when minSdkVersion >= 24. See
     // https://stackoverflow.com/q/53402639 for details.
     compileOptions {
@@ -128,6 +133,7 @@ dependencies {
     }
 
     implementation libraries.kotlinStdlibJdk7
+    implementation libraries.kotlinStdlibJdk8
     implementation libraries.kotlinReflect
     implementation libraries.androidAppCompat
     implementation libraries.androidCoreKotlinExtensions

@tido64

Copy link
Copy Markdown
Member Author

Araz Abishov (@arazabishov) Thanks, I'll make the appropriate changes. One question: Is removing androidPluginVersion necessary? We use in several places:

classpath "com.android.tools.build:gradle:$androidPluginVersion"

classpath "com.android.tools.build:gradle:$androidPluginVersion"

classpath "com.android.tools.build:gradle:$androidPluginVersion"

@github-actions github-actions Bot added the platform: Android This affects Android label Oct 20, 2021
@arazabishov

Araz Abishov (arazabishov) commented Oct 22, 2021

Copy link
Copy Markdown
Member

Tommy Nguyen (@tido64) nope, we need to keep it. That's just an unwanted bit of diff.

@tido64

Tommy Nguyen (tido64) commented Dec 1, 2021

Copy link
Copy Markdown
Member Author

react-native 0.67.0-rc.4:

Android iOS
Screenshot_1638362512 image

@tido64
Tommy Nguyen (tido64) force-pushed the tido/support-0.67 branch 2 times, most recently from 8073199 to 6daa975 Compare December 7, 2021 08:19
@github-actions github-actions Bot added platform: iOS This affects iOS platform: macOS This affects macOS labels Jan 18, 2022
Comment thread package.json
"react-native": "^0.0.0-0 || ^0.60 || ^0.61 || ^0.62 || ^0.63 || ^0.64 || ^0.65 || ^0.66 || 1000.0.0",
"react-native-macos": "^0.0.0-0 || ^0.60 || ^0.61 || ^0.62 || ^0.63 || ^0.64",
"react-native-windows": "^0.0.0-0 || ^0.62 || ^0.63 || ^0.64 || ^0.65 || ^0.66"
"react-native": "^0.0.0-0 || 0.60 - 0.67 || 1000.0.0",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

TIL I learned you can use - for a range 🤣

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

The string was getting really long so I played around with https://semver.npmjs.com/ to see if there's anything I can do to fix it. Then I saw the boxes at the bottom…

@tido64
Tommy Nguyen (tido64) merged commit a41aac6 into trunk Jan 19, 2022
@tido64
Tommy Nguyen (tido64) deleted the tido/support-0.67 branch January 19, 2022 10:28
@tido64 Tommy Nguyen (tido64) added this to the 1.0 milestone Jan 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

platform: iOS This affects iOS platform: macOS This affects macOS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants