From 4f834c629988af7ad73cf8ed32b5216fb1adccb8 Mon Sep 17 00:00:00 2001 From: Emily Xiong Date: Tue, 14 May 2024 17:33:12 -0400 Subject: [PATCH] feat(react-native): upgrade react native to 0.74 --- packages/detox/migrations.json | 9 +++ packages/detox/src/utils/versions.ts | 2 +- packages/expo/migrations.json | 61 +++++++++++++++++++ .../files/metro.config.js.template | 2 +- .../files/webpack.config.js.template | 57 ----------------- packages/expo/src/utils/versions.ts | 26 ++++---- packages/react-native/migrations.json | 37 +++++++++++ .../app/android/app/build.gradle.template | 1 - .../MainApplication.kt.template | 4 +- .../files/app/android/build.gradle.template | 6 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../application/files/app/android/gradlew.bat | 20 +++--- .../files/app/android/gradlew.template | 14 ++--- .../files/app/ios/Podfile.template | 19 +----- .../project.pbxproj.template | 6 +- .../ios/__className__/AppDelegate.mm.template | 4 +- .../app/ios/__className__/Info.plist.template | 2 +- .../ios/__className__/PrivacyInfo.xcprivacy | 38 ++++++++++++ .../files/app/metro.config.js.template | 2 +- .../generators/init/lib/gitignore-entries.ts | 4 +- packages/react-native/src/utils/versions.ts | 16 ++--- 21 files changed, 203 insertions(+), 129 deletions(-) delete mode 100644 packages/expo/src/generators/application/files/webpack.config.js.template create mode 100644 packages/react-native/src/generators/application/files/app/ios/__className__/PrivacyInfo.xcprivacy diff --git a/packages/detox/migrations.json b/packages/detox/migrations.json index aa9b8dd485816..38634c3853c0a 100644 --- a/packages/detox/migrations.json +++ b/packages/detox/migrations.json @@ -89,6 +89,15 @@ "alwaysAddToPackageJson": false } } + }, + "19.2.0": { + "version": "19.2.0-beta.2", + "packages": { + "@config-plugins/detox": { + "version": "~8.0.0", + "alwaysAddToPackageJson": false + } + } } } } diff --git a/packages/detox/src/utils/versions.ts b/packages/detox/src/utils/versions.ts index 69402c28e3a55..4f95fe6622c2c 100644 --- a/packages/detox/src/utils/versions.ts +++ b/packages/detox/src/utils/versions.ts @@ -2,4 +2,4 @@ export const nxVersion = require('../../package.json').version; export const detoxVersion = '~20.18.1'; export const testingLibraryJestDom = '~6.4.2'; -export const configPluginsDetoxVersion = '~7.0.0'; // only required for expo +export const configPluginsDetoxVersion = '~8.0.0'; // only required for expo diff --git a/packages/expo/migrations.json b/packages/expo/migrations.json index 9109062c3b4c7..db1e160f17d5e 100644 --- a/packages/expo/migrations.json +++ b/packages/expo/migrations.json @@ -436,6 +436,67 @@ "alwaysAddToPackageJson": false } } + }, + "19.2.0": { + "version": "19.2.0-beta.2", + "packages": { + "expo": { + "version": "~51.0.8", + "alwaysAddToPackageJson": false + }, + "expo-splash-screen": { + "version": "~0.27.4", + "alwaysAddToPackageJson": false + }, + "expo-status-bar": { + "version": "~1.12.1", + "alwaysAddToPackageJson": false + }, + "@expo/cli": { + "version": "~0.18.13", + "alwaysAddToPackageJson": false + }, + "babel-preset-expo": { + "version": "~11.0.0", + "alwaysAddToPackageJson": false + }, + "react-native": { + "version": "0.74.1", + "alwaysAddToPackageJson": false + }, + "react-native-web": { + "version": "~0.19.11", + "alwaysAddToPackageJson": false + }, + "@expo/metro-config": { + "version": "~0.18.1", + "alwaysAddToPackageJson": false + }, + "@expo/metro-runtime": { + "version": "~3.2.1", + "alwaysAddToPackageJson": false + }, + "react-native-svg-transformer": { + "version": "1.3.0", + "alwaysAddToPackageJson": false + }, + "react-native-svg": { + "version": "15.2.0", + "alwaysAddToPackageJson": false + }, + "@testing-library/react-native": { + "version": "~12.5.0", + "alwaysAddToPackageJson": false + }, + "jest-expo": { + "version": "~51.0.2", + "alwaysAddToPackageJson": false + }, + "@babel/runtime": { + "version": "7.24.5", + "alwaysAddToPackageJson": false + } + } } } } diff --git a/packages/expo/src/generators/application/files/metro.config.js.template b/packages/expo/src/generators/application/files/metro.config.js.template index afbde90e0ef03..fc848ad150288 100644 --- a/packages/expo/src/generators/application/files/metro.config.js.template +++ b/packages/expo/src/generators/application/files/metro.config.js.template @@ -7,7 +7,7 @@ const { assetExts, sourceExts } = defaultConfig.resolver; /** * Metro configuration - * https://facebook.github.io/metro/docs/configuration + * https://reactnative.dev/docs/metro * * @type {import('metro-config').MetroConfig} */ diff --git a/packages/expo/src/generators/application/files/webpack.config.js.template b/packages/expo/src/generators/application/files/webpack.config.js.template deleted file mode 100644 index 7772ece5f960c..0000000000000 --- a/packages/expo/src/generators/application/files/webpack.config.js.template +++ /dev/null @@ -1,57 +0,0 @@ -const createExpoWebpackConfigAsync = require('@expo/webpack-config'); -const { TsconfigPathsPlugin } = require('tsconfig-paths-webpack-plugin'); -const { resolve } = require('path'); - -/** - * @deprecated use bundler: 'metro' instead - */ -module.exports = async function (env, argv) { - const config = await createExpoWebpackConfigAsync(env, argv); - - // Customize the config before returning it. - // add additional rule to load files under libs - const rules = config.module.rules.find((rule) => - Array.isArray(rule.oneOf) - )?.oneOf; - if (rules) { - rules.push({ - test: /\.(mjs|[jt]sx?)$/, - exclude: /node_modules/, - use: { - loader: require.resolve('@nx/webpack/src/utils/web-babel-loader.js'), - options: { - presets: [ - [ - '@nx/react/babel', - { - runtime: 'automatic', - }, - ], - ], - }, - }, - }); - } - - if (!config.resolve) { - config.resolve = {}; - } - if (!config.resolve.plugins) { - config.resolve.plugins = []; - } - const extensions = ['.ts', '.tsx', '.mjs', '.js', '.jsx']; - const tsConfigPath = resolve(__dirname, 'tsconfig.json'); - config.resolve.plugins.push( - new TsconfigPathsPlugin({ - configFile: tsConfigPath, - extensions, - }) - ); - config.resolve.fallback = { - ...config.resolve.fallback, - crypto: require.resolve('crypto-browserify'), - stream: require.resolve('stream-browserify'), - }; - - return config; -}; diff --git a/packages/expo/src/utils/versions.ts b/packages/expo/src/utils/versions.ts index ca12d30f997b2..682fea62d5da8 100644 --- a/packages/expo/src/utils/versions.ts +++ b/packages/expo/src/utils/versions.ts @@ -1,27 +1,27 @@ export const nxVersion = require('../../package.json').version; -export const expoVersion = '~50.0.14'; -export const expoSplashScreenVersion = '~0.26.4'; -export const expoStatusBarVersion = '~1.11.1'; -export const expoCliVersion = '~0.17.8'; // @expo/cli -export const babelPresetExpoVersion = '~10.0.1'; +export const expoVersion = '~51.0.8'; +export const expoSplashScreenVersion = '~0.27.4'; +export const expoStatusBarVersion = '~1.12.1'; +export const expoCliVersion = '~0.18.13'; // @expo/cli +export const babelPresetExpoVersion = '~11.0.0'; export const reactVersion = '18.2.0'; export const reactDomVersion = '18.2.0'; export const reactTestRendererVersion = '18.2.0'; export const typesReactVersion = '~18.2.45'; -export const reactNativeVersion = '0.73.6'; -export const reactNativeWebVersion = '~0.19.10'; +export const reactNativeVersion = '0.74.1'; +export const reactNativeWebVersion = '~0.19.11'; -export const expoMetroConfigVersion = '~0.17.6'; -export const expoMetroRuntimeVersion = '~3.1.3'; +export const expoMetroConfigVersion = '~0.18.1'; +export const expoMetroRuntimeVersion = '~3.2.1'; export const reactNativeSvgTransformerVersion = '1.3.0'; -export const reactNativeSvgVersion = '15.1.0'; +export const reactNativeSvgVersion = '15.2.0'; -export const testingLibraryReactNativeVersion = '~12.4.5'; +export const testingLibraryReactNativeVersion = '~12.5.0'; export const testingLibraryJestNativeVersion = '~5.4.3'; -export const jestExpoVersion = '~50.0.4'; +export const jestExpoVersion = '~51.0.2'; -export const babelRuntimeVersion = '7.22.6'; +export const babelRuntimeVersion = '7.24.5'; diff --git a/packages/react-native/migrations.json b/packages/react-native/migrations.json index 02e43cfd4cc81..0448b9214b5fc 100644 --- a/packages/react-native/migrations.json +++ b/packages/react-native/migrations.json @@ -381,6 +381,43 @@ "alwaysAddToPackageJson": false } } + }, + "19.2.0": { + "version": "19.2.0-beta.2", + "packages": { + "react-native": { + "version": "0.74.1", + "alwaysAddToPackageJson": false + }, + "@react-native-community/cli-platform-android": { + "version": "~13.6.6", + "alwaysAddToPackageJson": false + }, + "@react-native/babel-preset": { + "version": "^0.74.83", + "alwaysAddToPackageJson": false + }, + "@react-native/metro-config": { + "version": "^0.74.83", + "alwaysAddToPackageJson": false + }, + "react-native-web": { + "version": "^0.19.11", + "alwaysAddToPackageJson": false + }, + "@testing-library/react-native": { + "version": "~12.5.0", + "alwaysAddToPackageJson": false + }, + "react-native-svg": { + "version": "15.2.0", + "alwaysAddToPackageJson": false + }, + "@babel/runtime": { + "version": "7.24.5", + "alwaysAddToPackageJson": false + } + } } } } diff --git a/packages/react-native/src/generators/application/files/app/android/app/build.gradle.template b/packages/react-native/src/generators/application/files/app/android/app/build.gradle.template index b5600f3f53a87..fee903dbbaa2d 100644 --- a/packages/react-native/src/generators/application/files/app/android/app/build.gradle.template +++ b/packages/react-native/src/generators/application/files/app/android/app/build.gradle.template @@ -107,7 +107,6 @@ android { dependencies { // The version of react-native is set by the React Native Gradle Plugin implementation("com.facebook.react:react-android") - implementation("com.facebook.react:flipper-integration") if (hermesEnabled.toBoolean()) { implementation("com.facebook.react:hermes-android") diff --git a/packages/react-native/src/generators/application/files/app/android/app/src/main/java/com/__lowerCaseName__/MainApplication.kt.template b/packages/react-native/src/generators/application/files/app/android/app/src/main/java/com/__lowerCaseName__/MainApplication.kt.template index e47ff79b94bfa..6706a00754fcd 100644 --- a/packages/react-native/src/generators/application/files/app/android/app/src/main/java/com/__lowerCaseName__/MainApplication.kt.template +++ b/packages/react-native/src/generators/application/files/app/android/app/src/main/java/com/__lowerCaseName__/MainApplication.kt.template @@ -9,7 +9,6 @@ import com.facebook.react.ReactPackage import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost import com.facebook.react.defaults.DefaultReactNativeHost -import com.facebook.react.flipper.ReactNativeFlipper import com.facebook.soloader.SoLoader class MainApplication : Application(), ReactApplication { @@ -31,7 +30,7 @@ class MainApplication : Application(), ReactApplication { } override val reactHost: ReactHost - get() = getDefaultReactHost(this.applicationContext, reactNativeHost) + get() = getDefaultReactHost(applicationContext, reactNativeHost) override fun onCreate() { super.onCreate() @@ -40,6 +39,5 @@ class MainApplication : Application(), ReactApplication { // If you opted-in for the New Architecture, we load the native entry point for this app. load() } - ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager) } } diff --git a/packages/react-native/src/generators/application/files/app/android/build.gradle.template b/packages/react-native/src/generators/application/files/app/android/build.gradle.template index cb9d6232a7044..f536a79201634 100644 --- a/packages/react-native/src/generators/application/files/app/android/build.gradle.template +++ b/packages/react-native/src/generators/application/files/app/android/build.gradle.template @@ -1,11 +1,11 @@ buildscript { ext { buildToolsVersion = "34.0.0" - minSdkVersion = 21 + minSdkVersion = 23 compileSdkVersion = 34 targetSdkVersion = 34 - ndkVersion = "25.1.8937393" - kotlinVersion = "1.8.0" + ndkVersion = "26.1.10909125" + kotlinVersion = "1.9.22" } repositories { google() diff --git a/packages/react-native/src/generators/application/files/app/android/gradle/wrapper/gradle-wrapper.properties b/packages/react-native/src/generators/application/files/app/android/gradle/wrapper/gradle-wrapper.properties index d11cdd907dd9d..2ea3535dc058b 100644 --- a/packages/react-native/src/generators/application/files/app/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/react-native/src/generators/application/files/app/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-all.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/packages/react-native/src/generators/application/files/app/android/gradlew.bat b/packages/react-native/src/generators/application/files/app/android/gradlew.bat index 93e3f59f135dd..25da30dbdeee9 100644 --- a/packages/react-native/src/generators/application/files/app/android/gradlew.bat +++ b/packages/react-native/src/generators/application/files/app/android/gradlew.bat @@ -43,11 +43,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail diff --git a/packages/react-native/src/generators/application/files/app/android/gradlew.template b/packages/react-native/src/generators/application/files/app/android/gradlew.template index 0adc8e1a53214..1aa94a4269074 100755 --- a/packages/react-native/src/generators/application/files/app/android/gradlew.template +++ b/packages/react-native/src/generators/application/files/app/android/gradlew.template @@ -145,7 +145,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac @@ -153,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then '' | soft) :;; #( *) # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -202,11 +202,11 @@ fi # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ diff --git a/packages/react-native/src/generators/application/files/app/ios/Podfile.template b/packages/react-native/src/generators/application/files/app/ios/Podfile.template index 405a51dc25c73..802b44f225461 100644 --- a/packages/react-native/src/generators/application/files/app/ios/Podfile.template +++ b/packages/react-native/src/generators/application/files/app/ios/Podfile.template @@ -8,17 +8,6 @@ require Pod::Executable.execute_command('node', ['-p', platform :ios, min_ios_version_supported prepare_react_native_project! -# If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set. -# because `react-native-flipper` depends on (FlipperKit,...) that will be excluded -# -# To fix this you can also exclude `react-native-flipper` using a `react-native.config.js` -# ```js -# module.exports = { -# dependencies: { -# ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}), -# ``` -flipper_config = ENV['NO_FLIPPER'] == "1" ? FlipperConfiguration.disabled : FlipperConfiguration.enabled - linkage = ENV['USE_FRAMEWORKS'] if linkage != nil Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green @@ -30,11 +19,6 @@ target '<%= className %>' do use_react_native!( :path => config[:reactNativePath], - # Enables Flipper. - # - # Note that if you have use_frameworks! enabled, Flipper will not work and - # you should disable the next line. - :flipper_configuration => flipper_config, # An absolute path to your application root. :app_path => "#{Pod::Config.instance.installation_root}/.." ) @@ -49,7 +33,8 @@ target '<%= className %>' do react_native_post_install( installer, config[:reactNativePath], - :mac_catalyst_enabled => false + :mac_catalyst_enabled => false, + # :ccache_enabled => true ) end end diff --git a/packages/react-native/src/generators/application/files/app/ios/__className__.xcodeproj/project.pbxproj.template b/packages/react-native/src/generators/application/files/app/ios/__className__.xcodeproj/project.pbxproj.template index b8d02064bc883..c91acfdb19cd5 100644 --- a/packages/react-native/src/generators/application/files/app/ios/__className__.xcodeproj/project.pbxproj.template +++ b/packages/react-native/src/generators/application/files/app/ios/__className__.xcodeproj/project.pbxproj.template @@ -36,6 +36,7 @@ 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = <%= className %>/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = <%= className %>/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = <%= className %>/main.m; sourceTree = ""; }; + 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = <%= className %>/PrivacyInfo.xcprivacy; sourceTree = ""; }; 19F6CBCC0A4E27FBF8BF4A61 /* libPods-<%= className %>-<%= className %>Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-<%= className %>-<%= className %>Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 3B4392A12AC88292D35C810B /* Pods-<%= className %>.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-<%= className %>.debug.xcconfig"; path = "Target Support Files/Pods-<%= className %>/Pods-<%= className %>.debug.xcconfig"; sourceTree = ""; }; 5709B34CF0A7D63546082F79 /* Pods-<%= className %>.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-<%= className %>.release.xcconfig"; path = "Target Support Files/Pods-<%= className %>/Pods-<%= className %>.release.xcconfig"; sourceTree = ""; }; @@ -92,6 +93,7 @@ 13B07FB61A68108700A75B9A /* Info.plist */, 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, 13B07FB71A68108700A75B9A /* main.m */, + 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */, ); name = <%= className %>; sourceTree = ""; @@ -263,7 +265,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "set -e\n\nWITH_ENVIRONMENT=\"<%= offsetFromRoot %>../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"<%= offsetFromRoot %>../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; + shellScript = "set -e\n\nWITH_ENVIRONMENT=\"$REACT_NATIVE_PATH/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"$REACT_NATIVE_PATH/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; }; 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; @@ -578,6 +580,7 @@ "-DFOLLY_MOBILE=1", "-DFOLLY_USE_LIBCPP=1", "-DFOLLY_CFG_NO_COROUTINES=1", + "-DFOLLY_HAVE_CLOCK_GETTIME=1", ); SDKROOT = iphoneos; }; @@ -642,6 +645,7 @@ "-DFOLLY_MOBILE=1", "-DFOLLY_USE_LIBCPP=1", "-DFOLLY_CFG_NO_COROUTINES=1", + "-DFOLLY_HAVE_CLOCK_GETTIME=1", ); SDKROOT = iphoneos; VALIDATE_PRODUCT = YES; diff --git a/packages/react-native/src/generators/application/files/app/ios/__className__/AppDelegate.mm.template b/packages/react-native/src/generators/application/files/app/ios/__className__/AppDelegate.mm.template index fe50bbf45b798..1bd85256b4c2c 100644 --- a/packages/react-native/src/generators/application/files/app/ios/__className__/AppDelegate.mm.template +++ b/packages/react-native/src/generators/application/files/app/ios/__className__/AppDelegate.mm.template @@ -16,10 +16,10 @@ - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge { - return [self getBundleURL]; + return [self bundleURL]; } -- (NSURL *)getBundleURL +- (NSURL *)bundleURL { #if DEBUG return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"<%= entryFileIos %>"]; diff --git a/packages/react-native/src/generators/application/files/app/ios/__className__/Info.plist.template b/packages/react-native/src/generators/application/files/app/ios/__className__/Info.plist.template index f2bee7da03cac..aa1e332d81f0d 100644 --- a/packages/react-native/src/generators/application/files/app/ios/__className__/Info.plist.template +++ b/packages/react-native/src/generators/application/files/app/ios/__className__/Info.plist.template @@ -38,7 +38,7 @@ LaunchScreen UIRequiredDeviceCapabilities - armv7 + arm64 UISupportedInterfaceOrientations diff --git a/packages/react-native/src/generators/application/files/app/ios/__className__/PrivacyInfo.xcprivacy b/packages/react-native/src/generators/application/files/app/ios/__className__/PrivacyInfo.xcprivacy new file mode 100644 index 0000000000000..ef1896e70c88d --- /dev/null +++ b/packages/react-native/src/generators/application/files/app/ios/__className__/PrivacyInfo.xcprivacy @@ -0,0 +1,38 @@ + + + + + NSPrivacyCollectedDataTypes + + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryFileTimestamp + NSPrivacyAccessedAPITypeReasons + + C617.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + CA92.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategorySystemBootTime + NSPrivacyAccessedAPITypeReasons + + 35F9.1 + + + + NSPrivacyTracking + + + diff --git a/packages/react-native/src/generators/application/files/app/metro.config.js.template b/packages/react-native/src/generators/application/files/app/metro.config.js.template index 9c6ea4142f37c..aa78604919457 100644 --- a/packages/react-native/src/generators/application/files/app/metro.config.js.template +++ b/packages/react-native/src/generators/application/files/app/metro.config.js.template @@ -6,7 +6,7 @@ const { assetExts, sourceExts } = defaultConfig.resolver; /** * Metro configuration - * https://facebook.github.io/metro/docs/configuration + * https://reactnative.dev/docs/metro * * @type {import('metro-config').MetroConfig} */ diff --git a/packages/react-native/src/generators/init/lib/gitignore-entries.ts b/packages/react-native/src/generators/init/lib/gitignore-entries.ts index c89f34e72579a..937b831641439 100644 --- a/packages/react-native/src/generators/init/lib/gitignore-entries.ts +++ b/packages/react-native/src/generators/init/lib/gitignore-entries.ts @@ -24,7 +24,7 @@ DerivedData *.hmap *.ipa *.xcuserstate -ios/.xcode.env.local +**/.xcode.env.local # Android/IntelliJ # @@ -60,7 +60,7 @@ yarn-error.log *.jsbundle # Ruby / CocoaPods -**/ios/Pods/ +**/Pods/ **/vendor/bundle/ # Temporary files created by Metro to check the health of the file watcher diff --git a/packages/react-native/src/utils/versions.ts b/packages/react-native/src/utils/versions.ts index 603a73a1ef15e..ea92dd9d48b89 100644 --- a/packages/react-native/src/utils/versions.ts +++ b/packages/react-native/src/utils/versions.ts @@ -1,26 +1,26 @@ export const nxVersion = require('../../package.json').version; -export const reactNativeVersion = '0.73.6'; +export const reactNativeVersion = '0.74.1'; export const typesNodeVersion = '18.16.9'; -export const reactNativeCommunityCliPlatformAndroidVersion = '~12.3.6'; // anddroid refers files from this package +export const reactNativeCommunityCliPlatformAndroidVersion = '~13.6.6'; // anddroid refers files from this package -export const reactNativeBabelPresetVersion = '^0.73.21'; -export const reactNativeMetroConfigVersion = '^0.73.5'; -export const reactNativeWebVersion = '^0.19.10'; +export const reactNativeBabelPresetVersion = '^0.74.83'; +export const reactNativeMetroConfigVersion = '^0.74.83'; +export const reactNativeWebVersion = '^0.19.11'; export const reactVersion = '18.2.0'; export const reactDomVersion = '18.2.0'; export const reactTestRendererVersion = '18.2.0'; export const typesReactVersion = '~18.2.45'; -export const testingLibraryReactNativeVersion = '~12.4.5'; +export const testingLibraryReactNativeVersion = '~12.5.0'; export const testingLibraryJestNativeVersion = '~5.4.3'; export const jestReactNativeVersion = '18.0.0'; export const reactNativeSvgTransformerVersion = '1.3.0'; -export const reactNativeSvgVersion = '15.1.0'; +export const reactNativeSvgVersion = '15.2.0'; -export const babelRuntimeVersion = '7.24.4'; +export const babelRuntimeVersion = '7.24.5';