Skip to content

Commit 1645eb1

Browse files
@W-16556387: [ReactNative][Android] Upgrade to React Native 0.79 (#2725)
1 parent 834bfdf commit 1645eb1

10 files changed

Lines changed: 44 additions & 31 deletions

File tree

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ buildscript {
99
}
1010

1111
dependencies {
12-
classpath("com.android.tools.build:gradle:8.6.1")
12+
classpath("com.android.tools.build:gradle:8.8.2")
1313
classpath("io.github.gradle-nexus:publish-plugin:1.1.0")
1414
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.24")
1515
classpath("org.jacoco:org.jacoco.core:0.8.12")

buildSrc/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ repositories {
77
}
88

99
dependencies {
10-
implementation("com.android.tools.build:gradle:8.6.1")
10+
implementation("com.android.tools.build:gradle:8.8.2")
1111
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.24")
1212
implementation("org.jetbrains.kotlin:kotlin-stdlib:2.0.21")
1313
}

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME
Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
module.exports = {
2-
presets: ['module:metro-react-native-babel-preset'],
3-
plugins: [
4-
["@babel/plugin-transform-private-methods", { "loose": true }]
5-
]
2+
presets: ['module:@react-native/babel-preset'],
3+
plugins: [
4+
["@babel/plugin-transform-class-static-block", { "loose": true }],
5+
["@babel/plugin-transform-private-methods", { "loose": true }]
6+
]
67
};

libs/SalesforceReact/build.gradle.kts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ plugins {
2222

2323
dependencies {
2424
api(project(":libs:MobileSync"))
25-
api("com.facebook.react:react-android:0.74.7")
25+
api("com.facebook.react:react-android:0.79.3")
2626
implementation("androidx.core:core-ktx:1.15.0")
2727
androidTestImplementation("androidx.test:runner:1.6.2")
2828
androidTestImplementation("androidx.test:rules:1.6.1")
@@ -124,7 +124,7 @@ task<Exec>("buildReactTestBundle") {
124124
"cmd",
125125
"/c",
126126
"node",
127-
"node_modules/react-native/local-cli/cli.js",
127+
"node_modules/react-native/cli.js",
128128
"bundle",
129129
"--platform",
130130
"android",
@@ -139,8 +139,8 @@ task<Exec>("buildReactTestBundle") {
139139
)
140140
} else {
141141
commandLine(
142-
"/usr/local/bin/node",
143-
"node_modules/react-native/local-cli/cli.js",
142+
"node",
143+
"node_modules/react-native/cli.js",
144144
"bundle",
145145
"--platform",
146146
"android",

libs/SalesforceReact/metro.config.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
const {getDefaultConfig, mergeConfig} = require('@react-native/metro-config');
22

33
/**
4-
* Metro configuration for React Native
5-
* https://facebook.github.io/metro/docs/configuration
4+
* Metro configuration
5+
* https://reactnative.dev/docs/metro
66
*
7-
* @type {import('metro-config').MetroConfig}
7+
* @type {import('@react-native/metro-config').MetroConfig}
88
*/
99
const config = {};
1010

libs/SalesforceReact/package.json

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,37 @@
33
"version": "13.1.0",
44
"private": true,
55
"scripts": {
6-
"start": "node node_modules/react-native/local-cli/cli.js start"
6+
"start": "react-native start"
77
},
88
"dependencies": {
99
"@babel/plugin-transform-private-property-in-object": "^7.24.7",
1010
"create-react-class": "^15.7.0",
11-
"react": "18.2.0",
12-
"react-native": "0.74.7",
11+
"jsc-android": "^250231.0.0",
12+
"react": "19.0.0",
13+
"react-native": "0.79.3",
1314
"react-native-force": "git+https://github.com/forcedotcom/SalesforceMobileSDK-ReactNative.git#dev"
1415
},
1516
"devDependencies": {
16-
"@babel/core": "^7.20.0",
17-
"@babel/preset-env": "^7.20.0",
18-
"@babel/runtime": "^7.20.0",
19-
"@react-native/babel-preset": "0.74.89",
20-
"@react-native/eslint-config": "0.74.89",
21-
"@react-native/metro-config": "0.74.89",
22-
"@react-native/typescript-config": "0.74.89",
23-
"@types/react": "^18.2.6",
24-
"@types/react-test-renderer": "^18.0.0",
25-
"babel-jest": "^29.6.3",
17+
"@babel/core": "^7.25.2",
18+
"@babel/preset-env": "^7.25.3",
19+
"@babel/runtime": "^7.25.0",
20+
"@react-native-community/cli": "18.0.0",
21+
"@react-native-community/cli-platform-android": "18.0.0",
22+
"@react-native-community/cli-platform-ios": "18.0.0",
23+
"@react-native/babel-preset": "0.79.3",
24+
"@react-native/eslint-config": "0.79.3",
25+
"@react-native/metro-config": "0.79.3",
26+
"@react-native/typescript-config": "0.79.3",
27+
"@types/jest": "^29.5.13",
28+
"@types/react": "^19.0.0",
29+
"@types/react-test-renderer": "^19.0.0",
30+
"babel-jest": "^30.0.0",
2631
"chai": "4.4.1",
2732
"eslint": "^8.19.0",
2833
"jest": "^29.6.3",
2934
"metro-react-native-babel-preset": "0.77.0",
3035
"prettier": "2.8.8",
31-
"react-test-renderer": "18.2.0",
36+
"react-test-renderer": "19.0.0",
3237
"typescript": "5.0.4"
3338
},
3439
"engines": {

libs/test/SalesforceReactTest/src/com/salesforce/androidsdk/reactnative/ReactMobileSyncTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,10 @@ public class ReactMobileSyncTest extends ReactTestCase {
5252
@Parameterized.Parameters(name = "{0}")
5353
public static List<String> data() {
5454
return Arrays.asList(
55+
"testCleanResyncGhosts",
5556
"testSyncUp",
5657
"testSyncDown",
5758
"testReSync",
58-
"testCleanResyncGhosts",
5959
"testGetSyncStatusDeleteSync");
6060
}
6161

libs/test/SalesforceReactTest/src/com/salesforce/androidsdk/reactnative/util/ReactActivityTestDelegate.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ protected void loadApp(String appKey) {
6262
}
6363

6464
@Override
65-
protected void onDestroy() {
65+
public void onDestroy() {
6666
getReactNativeHost().getReactInstanceManager().destroy();
6767
super.onDestroy();
6868
}

libs/test/SalesforceReactTest/src/com/salesforce/androidsdk/reactnative/util/SalesforceReactTestApp.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,14 @@
3131

3232
import com.facebook.react.ReactApplication;
3333
import com.facebook.react.ReactNativeHost;
34+
import com.facebook.react.soloader.OpenSourceMergedSoMapping;
3435
import com.facebook.soloader.SoLoader;
3536
import com.salesforce.androidsdk.analytics.EventBuilderHelper;
3637
import com.salesforce.androidsdk.reactnative.app.SalesforceReactSDKManager;
3738
import com.salesforce.androidsdk.util.test.TestCredentials;
3839

40+
import java.io.IOException;
41+
3942
/**
4043
* Test application for Salesforce react native modules.
4144
*/
@@ -51,7 +54,11 @@ public ReactNativeHost getReactNativeHost() {
5154
@Override
5255
public void onCreate() {
5356
super.onCreate();
54-
SoLoader.init(this, /* native exopackage */ false);
57+
try {
58+
SoLoader.init(this, OpenSourceMergedSoMapping.INSTANCE);
59+
} catch (IOException e) {
60+
throw new RuntimeException(e);
61+
}
5562
EventBuilderHelper.enableDisable(false);
5663
SalesforceReactSDKManager.initReactNative(getApplicationContext(), ReactTestActivity.class);
5764
TestCredentials.init(this);

0 commit comments

Comments
 (0)