react-native 0.81.0 → 0.81.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/Libraries/Components/Switch/Switch.js +1 -1
  2. package/Libraries/Components/TextInput/TextInput.js +6 -1
  3. package/Libraries/Core/ReactNativeVersion.js +1 -1
  4. package/React/Base/RCTUtils.h +1 -0
  5. package/React/Base/RCTUtils.mm +12 -0
  6. package/React/Base/RCTVersion.m +1 -1
  7. package/React/FBReactNativeSpec/FBReactNativeSpecJSI-generated.cpp +12 -0
  8. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +18 -0
  9. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ComponentDescriptors.cpp +0 -1
  10. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ComponentDescriptors.h +0 -1
  11. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ShadowNodes.cpp +0 -1
  12. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ShadowNodes.h +0 -11
  13. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/States.h +0 -2
  14. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +22 -0
  15. package/React/Fabric/Mounting/ComponentViews/Switch/RCTSwitchComponentView.mm +1 -1
  16. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +2 -1
  17. package/React/React-RCTFBReactNativeSpec.podspec +1 -4
  18. package/React/React-RCTFabric.podspec +1 -0
  19. package/React/Runtime/React-RCTRuntime.podspec +1 -3
  20. package/ReactAndroid/build.gradle.kts +10 -1
  21. package/ReactAndroid/gradle.properties +1 -1
  22. package/ReactAndroid/hermes-engine/build.gradle.kts +6 -0
  23. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableNativeArray.kt +9 -1
  24. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +13 -1
  25. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +21 -1
  26. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +5 -1
  27. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +5 -1
  28. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +23 -1
  29. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android.kt +5 -1
  30. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +5 -1
  31. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
  32. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TransformHelper.kt +19 -0
  33. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +29 -1
  34. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +7 -1
  35. package/ReactAndroid/src/main/jni/react/hermes/reactexecutor/CMakeLists.txt +3 -1
  36. package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +2 -1
  37. package/ReactAndroid/src/main/jni/react/jni/NativeArray.h +4 -0
  38. package/ReactAndroid/src/main/jni/react/jni/OnLoad-common.cpp +2 -0
  39. package/ReactAndroid/src/main/jni/react/jni/ReadableNativeArray.cpp +6 -0
  40. package/ReactAndroid/src/main/jni/react/jni/ReadableNativeArray.h +1 -0
  41. package/ReactAndroid/src/main/jni/react/jni/TransformHelper.cpp +60 -0
  42. package/ReactAndroid/src/main/jni/react/jni/TransformHelper.h +22 -0
  43. package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/CMakeLists.txt +3 -1
  44. package/ReactAndroid/src/main/jni/react/runtime/jni/CMakeLists.txt +3 -1
  45. package/ReactCommon/React-Fabric.podspec +1 -4
  46. package/ReactCommon/React-FabricComponents.podspec +9 -4
  47. package/ReactCommon/React-FabricImage.podspec +1 -4
  48. package/ReactCommon/React-Mapbuffer.podspec +1 -4
  49. package/ReactCommon/ReactCommon.podspec +2 -3
  50. package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
  51. package/ReactCommon/hermes/executor/CMakeLists.txt +1 -1
  52. package/ReactCommon/hermes/executor/React-jsitracing.podspec +1 -4
  53. package/ReactCommon/hermes/inspector-modern/CMakeLists.txt +1 -1
  54. package/ReactCommon/jserrorhandler/React-jserrorhandler.podspec +2 -4
  55. package/ReactCommon/jsinspector-modern/CMakeLists.txt +6 -4
  56. package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +2 -3
  57. package/ReactCommon/jsinspector-modern/cdp/React-jsinspectorcdp.podspec +1 -4
  58. package/ReactCommon/jsinspector-modern/network/React-jsinspectornetwork.podspec +1 -4
  59. package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +1 -4
  60. package/ReactCommon/jsitooling/React-jsitooling.podspec +1 -4
  61. package/ReactCommon/react/debug/CMakeLists.txt +1 -1
  62. package/ReactCommon/react/debug/React-debug.podspec +1 -4
  63. package/ReactCommon/react/featureflags/React-featureflags.podspec +1 -4
  64. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +9 -1
  65. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +11 -1
  66. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +44 -8
  67. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +6 -2
  68. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +9 -1
  69. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +19 -1
  70. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSExperimental.h +9 -1
  71. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +3 -1
  72. package/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec +2 -3
  73. package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +1 -4
  74. package/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec +1 -4
  75. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +11 -1
  76. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +5 -1
  77. package/ReactCommon/react/nativemodule/featureflags/React-featureflagsnativemodule.podspec +1 -4
  78. package/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec +1 -4
  79. package/ReactCommon/react/nativemodule/microtasks/React-microtasksnativemodule.podspec +1 -4
  80. package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +2 -0
  81. package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -4
  82. package/ReactCommon/react/renderer/components/switch/iosswitch/react/renderer/components/switch/AppleSwitchComponentDescriptor.h +30 -0
  83. package/ReactCommon/react/renderer/components/switch/iosswitch/react/renderer/components/switch/AppleSwitchShadowNode.h +42 -0
  84. package/ReactCommon/react/renderer/components/switch/iosswitch/react/renderer/components/switch/IOSSwitchShadowNode.mm +28 -0
  85. package/ReactCommon/react/renderer/components/switch/iosswitch/react/renderer/components/switch/MacOSSwitchShadowNode.mm +32 -0
  86. package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h +2 -1
  87. package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +8 -2
  88. package/ReactCommon/react/renderer/components/view/BaseViewProps.h +5 -0
  89. package/ReactCommon/react/renderer/consistency/React-rendererconsistency.podspec +2 -4
  90. package/ReactCommon/react/renderer/css/React-renderercss.podspec +2 -5
  91. package/ReactCommon/react/renderer/debug/React-rendererdebug.podspec +1 -4
  92. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +3 -3
  93. package/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec +1 -4
  94. package/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec +1 -4
  95. package/ReactCommon/react/runtime/CMakeLists.txt +3 -1
  96. package/ReactCommon/react/runtime/React-RuntimeCore.podspec +1 -4
  97. package/ReactCommon/react/runtime/React-RuntimeHermes.podspec +1 -4
  98. package/ReactCommon/react/runtime/hermes/CMakeLists.txt +1 -1
  99. package/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec +1 -4
  100. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +1 -0
  101. package/ReactCommon/react/timing/React-timing.podspec +3 -4
  102. package/ReactCommon/react/utils/React-utils.podspec +3 -3
  103. package/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec +3 -2
  104. package/package.json +8 -8
  105. package/scripts/cocoapods/autolinking.rb +6 -0
  106. package/scripts/cocoapods/codegen_utils.rb +1 -1
  107. package/scripts/cocoapods/new_architecture.rb +1 -0
  108. package/scripts/cocoapods/utils.rb +15 -1
  109. package/scripts/codegen/generate-artifacts-executor/generateReactCodegenPodspec.js +3 -3
  110. package/scripts/codegen/generate-artifacts-executor/index.js +5 -1
  111. package/scripts/codegen/generate-artifacts-executor/utils.js +41 -10
  112. package/scripts/codegen/templates/ReactCodegen.podspec.template +1 -0
  113. package/scripts/react-native-xcode.sh +2 -2
  114. package/scripts/react_native_pods.rb +21 -0
  115. package/scripts/replace-rncore-version.js +4 -2
  116. package/scripts/xcode/with-environment.sh +1 -1
  117. package/sdks/hermes-engine/utils/replace_hermes_version.js +4 -2
  118. package/sdks/hermesc/osx-bin/hermes +0 -0
  119. package/sdks/hermesc/osx-bin/hermesc +0 -0
  120. package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
  121. package/src/private/featureflags/ReactNativeFeatureFlags.js +11 -1
  122. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +3 -1
  123. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +1 -0
  124. package/third-party-podspecs/ReactNativeDependencies.podspec +1 -1
  125. package/third-party-podspecs/replace_dependencies_version.js +4 -2
@@ -34,10 +34,7 @@ Pod::Spec.new do |s|
34
34
  s.source_files = podspec_sources(source_files, "**/*.h")
35
35
  s.header_dir = "react/renderer/imagemanager"
36
36
 
37
- if ENV['USE_FRAMEWORKS']
38
- s.module_name = "React_ImageManager"
39
- s.header_mappings_dir = "./"
40
- end
37
+ resolve_use_frameworks(s, header_mappings_dir: "./", module_name: "React_ImageManager")
41
38
 
42
39
  s.pod_target_xcconfig = {
43
40
  "USE_HEADERMAP" => "NO",
@@ -38,10 +38,7 @@ Pod::Spec.new do |s|
38
38
  "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
39
39
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' ')}
40
40
 
41
- if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source()
42
- s.module_name = "React_runtimescheduler"
43
- s.header_mappings_dir = "../../.."
44
- end
41
+ resolve_use_frameworks(s, header_mappings_dir: "../../..", module_name: "React_runtimescheduler")
45
42
 
46
43
  add_dependency(s, "React-runtimeexecutor", :additional_framework_paths => ["platform/ios"])
47
44
  s.dependency "React-callinvoker"
@@ -16,7 +16,9 @@ add_library(bridgeless
16
16
  ${bridgeless_SRC}
17
17
  )
18
18
  target_compile_reactnative_options(bridgeless PRIVATE)
19
- target_compile_options(bridgeless PRIVATE $<$<CONFIG:Debug>:-DHERMES_ENABLE_DEBUGGER=1>)
19
+ if(${CMAKE_BUILD_TYPE} MATCHES Debug OR REACT_NATIVE_DEBUG_OPTIMIZED)
20
+ target_compile_options(bridgeless PRIVATE -DHERMES_ENABLE_DEBUGGER=1)
21
+ endif ()
20
22
  target_include_directories(bridgeless PUBLIC .)
21
23
 
22
24
  react_native_android_selector(fabricjni fabricjni "")
@@ -33,10 +33,7 @@ Pod::Spec.new do |s|
33
33
  "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
34
34
  "GCC_WARN_PEDANTIC" => "YES" }
35
35
 
36
- if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source()
37
- s.header_mappings_dir = '../../'
38
- s.module_name = 'React_RuntimeCore'
39
- end
36
+ resolve_use_frameworks(s, header_mappings_dir: "../..", module_name: "React_RuntimeCore")
40
37
 
41
38
  s.dependency "React-jsiexecutor"
42
39
  s.dependency "React-cxxreact"
@@ -32,10 +32,7 @@ Pod::Spec.new do |s|
32
32
  "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
33
33
  "GCC_WARN_PEDANTIC" => "YES" }
34
34
 
35
- if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source()
36
- s.header_mappings_dir = '../../'
37
- s.module_name = 'React_RuntimeHermes'
38
- end
35
+ resolve_use_frameworks(s, header_mappings_dir: "../../", module_name: "React_RuntimeHermes")
39
36
 
40
37
  s.dependency "React-jsitracing"
41
38
  s.dependency "React-jsi"
@@ -29,7 +29,7 @@ target_link_libraries(bridgelesshermes
29
29
  )
30
30
 
31
31
  target_compile_reactnative_options(bridgelesshermes PRIVATE)
32
- if(${CMAKE_BUILD_TYPE} MATCHES Debug)
32
+ if(${CMAKE_BUILD_TYPE} MATCHES Debug OR REACT_NATIVE_DEBUG_OPTIMIZED)
33
33
  target_compile_options(
34
34
  bridgelesshermes
35
35
  PRIVATE
@@ -38,10 +38,7 @@ Pod::Spec.new do |s|
38
38
  "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
39
39
  "GCC_WARN_PEDANTIC" => "YES" }
40
40
 
41
- if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source()
42
- s.header_mappings_dir = './'
43
- s.module_name = 'React_RuntimeApple'
44
- end
41
+ resolve_use_frameworks(s, header_mappings_dir: "./", module_name: "React_RuntimeApple")
45
42
 
46
43
  s.dependency "React-jsiexecutor"
47
44
  s.dependency "React-cxxreact"
@@ -366,6 +366,7 @@ void RCTInstanceSetRuntimeDiagnosticFlags(NSString *flags)
366
366
 
367
367
  RCTScreenSize();
368
368
  RCTScreenScale();
369
+ RCTSwitchSize();
369
370
 
370
371
  std::lock_guard<std::mutex> lock(*mutex);
371
372
  *isReady = true;
@@ -37,8 +37,7 @@ Pod::Spec.new do |s|
37
37
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' '),
38
38
  "DEFINES_MODULE" => "YES" }
39
39
 
40
- if ENV['USE_FRAMEWORKS']
41
- s.module_name = "React_timing"
42
- s.header_mappings_dir = "./"
43
- end
40
+ resolve_use_frameworks(s, header_mappings_dir: "./", module_name: "React_timing")
41
+
42
+ add_dependency(s, "React-debug")
44
43
  end
@@ -34,12 +34,12 @@ Pod::Spec.new do |s|
34
34
  s.header_dir = "react/utils"
35
35
  s.exclude_files = "tests"
36
36
 
37
- if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source()
38
- s.module_name = "React_utils"
39
- s.header_mappings_dir = "../.."
37
+ if ENV['USE_FRAMEWORKS']
40
38
  header_search_paths = header_search_paths + ["\"$(PODS_TARGET_SRCROOT)/platform/ios\""]
41
39
  end
42
40
 
41
+ resolve_use_frameworks(s, header_mappings_dir: "../..", module_name: "React_utils")
42
+
43
43
  s.pod_target_xcconfig = { "USE_HEADERMAP" => "NO",
44
44
  "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
45
45
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' '),
@@ -33,11 +33,12 @@ Pod::Spec.new do |s|
33
33
  s.source_files = podspec_sources(["ReactCommon/*.{m,mm,cpp,h}", "platform/ios/**/*.{m,mm,cpp,h}"], ["ReactCommon/*.h", "platform/ios/**/*.h"])
34
34
  s.header_dir = "ReactCommon"
35
35
 
36
- if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source()
37
- s.header_mappings_dir = '.'
36
+ if ENV['USE_FRAMEWORKS']
38
37
  header_search_paths = header_search_paths + ["\"$(PODS_TARGET_SRCROOT)/platform/ios\""]
39
38
  end
40
39
 
40
+ resolve_use_frameworks(s, header_mappings_dir: ".")
41
+
41
42
  s.pod_target_xcconfig = { "USE_HEADERMAP" => "NO",
42
43
  "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
43
44
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' '),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native",
3
- "version": "0.81.0",
3
+ "version": "0.81.2",
4
4
  "description": "A framework for building native apps using React",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -162,13 +162,13 @@
162
162
  },
163
163
  "dependencies": {
164
164
  "@jest/create-cache-key-function": "^29.7.0",
165
- "@react-native/assets-registry": "0.81.0",
166
- "@react-native/codegen": "0.81.0",
167
- "@react-native/community-cli-plugin": "0.81.0",
168
- "@react-native/gradle-plugin": "0.81.0",
169
- "@react-native/js-polyfills": "0.81.0",
170
- "@react-native/normalize-colors": "0.81.0",
171
- "@react-native/virtualized-lists": "0.81.0",
165
+ "@react-native/assets-registry": "0.81.2",
166
+ "@react-native/codegen": "0.81.2",
167
+ "@react-native/community-cli-plugin": "0.81.2",
168
+ "@react-native/gradle-plugin": "0.81.2",
169
+ "@react-native/js-polyfills": "0.81.2",
170
+ "@react-native/normalize-colors": "0.81.2",
171
+ "@react-native/virtualized-lists": "0.81.2",
172
172
  "abort-controller": "^3.0.0",
173
173
  "anser": "^1.4.9",
174
174
  "ansi-regex": "^5.0.0",
@@ -40,6 +40,12 @@ def list_native_modules!(config_command)
40
40
  packages = config["dependencies"]
41
41
  ios_project_root = Pathname.new(config["project"]["ios"]["sourceDir"])
42
42
  react_native_path = Pathname.new(config["reactNativePath"])
43
+ codegen_output_path = ios_project_root.join("build/generated/autolinking/autolinking.json")
44
+
45
+ # Write autolinking react-native-config output to codegen folder
46
+ FileUtils.mkdir_p(File.dirname(codegen_output_path))
47
+ File.write(codegen_output_path, json)
48
+
43
49
  found_pods = []
44
50
 
45
51
  packages.each do |package_name, package|
@@ -87,7 +87,7 @@ class CodegenUtils
87
87
  codegen_path = file_manager.join(ios_folder, codegen_dir)
88
88
  return if !dir_manager.exist?(codegen_path)
89
89
 
90
- FileUtils.rm_rf(dir_manager.glob("#{codegen_path}/*"))
90
+ FileUtils.rm_rf("#{codegen_path}")
91
91
  base_provider_path = file_manager.join(rn_path, 'React', 'Fabric', 'RCTThirdPartyFabricComponentsProvider')
92
92
  FileUtils.rm_rf("#{base_provider_path}.h")
93
93
  FileUtils.rm_rf("#{base_provider_path}.mm")
@@ -85,6 +85,7 @@ class NewArchitectureHelper
85
85
  .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-Fabric", "React_Fabric", ["react/renderer/components/view/platform/cxx"]))
86
86
  .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-FabricImage", "React_FabricImage", []))
87
87
  .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "ReactCommon", "ReactCommon", ["react/nativemodule/core"]))
88
+ .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-runtimeexecutor", "React_runtimeexecutor", ["platform/ios"]))
88
89
  .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-NativeModulesApple", "React_NativeModulesApple", []))
89
90
  .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-RCTFabric", "RCTFabric", []))
90
91
  .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-utils", "React_utils", []))
@@ -258,7 +258,8 @@ class ReactNativePodsUtils
258
258
  search_paths = []
259
259
 
260
260
  # When building using the prebuilt rncore we can't use framework folders as search paths since these aren't created
261
- if ReactNativeCoreUtils.build_rncore_from_source()
261
+ # Except for when adding search path for ReactCodegen since it contains source code.
262
+ if ReactNativeCoreUtils.build_rncore_from_source() || pod_name === "ReactCodegen"
262
263
  platforms = $RN_PLATFORMS != nil ? $RN_PLATFORMS : []
263
264
 
264
265
  if platforms.empty?() || platforms.length() == 1
@@ -313,6 +314,7 @@ class ReactNativePodsUtils
313
314
  header_search_paths = config.build_settings["HEADER_SEARCH_PATHS"] ||= "$(inherited)"
314
315
 
315
316
  ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "ReactCommon", "ReactCommon", ["react/nativemodule/core"])
317
+ .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-runtimeexecutor", "React_runtimeexecutor", ["platform/ios"]))
316
318
  .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "ReactCommon-Samples", "ReactCommon_Samples", ["platform/ios"]))
317
319
  .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-Fabric", "React_Fabric", ["react/renderer/components/view/platform/cxx"], false))
318
320
  .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-NativeModulesApple", "React_NativeModulesApple", []))
@@ -563,6 +565,7 @@ class ReactNativePodsUtils
563
565
 
564
566
  def self.set_reactcommon_searchpaths(target_installation_result)
565
567
  header_search_paths = ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "ReactCommon", "ReactCommon", ["react/nativemodule/core"])
568
+ .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-runtimeexecutor", "React_runtimeexecutor", ["platform/ios"]))
566
569
  .map { |search_path| "\"#{search_path}\"" }
567
570
  ReactNativePodsUtils.update_header_paths_if_depends_on(target_installation_result, "ReactCommon", header_search_paths)
568
571
  end
@@ -699,4 +702,15 @@ class ReactNativePodsUtils
699
702
  end
700
703
  end
701
704
  end
705
+
706
+ def self.resolve_use_frameworks(spec, header_mappings_dir: nil, module_name: nil)
707
+ return unless ENV['USE_FRAMEWORKS']
708
+ if module_name
709
+ spec.module_name = module_name
710
+ end
711
+
712
+ if header_mappings_dir != nil && ReactNativeCoreUtils.build_rncore_from_source()
713
+ spec.header_mappings_dir = header_mappings_dir
714
+ end
715
+ end
702
716
  end
@@ -83,9 +83,9 @@ export RCT_SCRIPT_APP_PATH="$RCT_SCRIPT_POD_INSTALLATION_ROOT/${relativeAppPath.
83
83
  export RCT_SCRIPT_OUTPUT_DIR="$RCT_SCRIPT_POD_INSTALLATION_ROOT"
84
84
  export RCT_SCRIPT_TYPE="withCodegenDiscovery"
85
85
 
86
- SCRIPT_PHASES_SCRIPT="$RCT_SCRIPT_RN_DIR/scripts/react_native_pods_utils/script_phases.sh"
87
- WITH_ENVIRONMENT="$RCT_SCRIPT_RN_DIR/scripts/xcode/with-environment.sh"
88
- /bin/sh -c "$WITH_ENVIRONMENT $SCRIPT_PHASES_SCRIPT"
86
+ export SCRIPT_PHASES_SCRIPT="$RCT_SCRIPT_RN_DIR/scripts/react_native_pods_utils/script_phases.sh"
87
+ export WITH_ENVIRONMENT="$RCT_SCRIPT_RN_DIR/scripts/xcode/with-environment.sh"
88
+ /bin/sh -c '"$WITH_ENVIRONMENT" "$SCRIPT_PHASES_SCRIPT"'
89
89
  SCRIPT`;
90
90
  }
91
91
 
@@ -86,10 +86,14 @@ function execute(
86
86
  buildCodegenIfNeeded();
87
87
  }
88
88
 
89
- const reactNativeConfig = readReactNativeConfig(projectRoot);
89
+ const reactNativeConfig = readReactNativeConfig(
90
+ projectRoot,
91
+ baseOutputPath,
92
+ );
90
93
  const codegenEnabledLibraries = findCodegenEnabledLibraries(
91
94
  pkgJson,
92
95
  projectRoot,
96
+ baseOutputPath,
93
97
  reactNativeConfig,
94
98
  );
95
99
 
@@ -97,15 +97,40 @@ function cleanupEmptyFilesAndFolders(filepath /*: string */) {
97
97
  }
98
98
  }
99
99
 
100
- function readReactNativeConfig(projectRoot /*: string */) /*: $FlowFixMe */ {
101
- const rnConfigFilePath = path.resolve(projectRoot, 'react-native.config.js');
100
+ function readGeneratedAutolinkingOutput(
101
+ baseOutputPath /*: string */,
102
+ ) /*: $FlowFixMe */ {
103
+ // NOTE: Generated by scripts/cocoapods/autolinking.rb in list_native_modules (called by use_native_modules)
104
+ const autolinkingGeneratedPath = path.resolve(
105
+ baseOutputPath,
106
+ 'build/generated/autolinking/autolinking.json',
107
+ );
108
+ if (fs.existsSync(autolinkingGeneratedPath)) {
109
+ // $FlowFixMe[unsupported-syntax]
110
+ return require(autolinkingGeneratedPath);
111
+ } else {
112
+ codegenLog(
113
+ `Could not find generated autolinking output at: ${autolinkingGeneratedPath}`,
114
+ );
115
+ return null;
116
+ }
117
+ }
102
118
 
103
- if (!fs.existsSync(rnConfigFilePath)) {
119
+ function readReactNativeConfig(
120
+ projectRoot /*: string */,
121
+ baseOutputPath /*: string */,
122
+ ) /*: $FlowFixMe */ {
123
+ const autolinkingOutput = readGeneratedAutolinkingOutput(baseOutputPath);
124
+ const rnConfigFilePath = path.resolve(projectRoot, 'react-native.config.js');
125
+ if (autolinkingOutput) {
126
+ return autolinkingOutput;
127
+ } else if (fs.existsSync(rnConfigFilePath)) {
128
+ // $FlowIgnore[unsupported-syntax]
129
+ return require(rnConfigFilePath);
130
+ } else {
131
+ codegenLog(`Could not find React Native config at: ${rnConfigFilePath}`);
104
132
  return {};
105
133
  }
106
-
107
- // $FlowIgnore[unsupported-syntax]
108
- return require(rnConfigFilePath);
109
134
  }
110
135
 
111
136
  /**
@@ -114,17 +139,23 @@ function readReactNativeConfig(projectRoot /*: string */) /*: $FlowFixMe */ {
114
139
  function findCodegenEnabledLibraries(
115
140
  pkgJson /*: $FlowFixMe */,
116
141
  projectRoot /*: string */,
142
+ baseOutputPath /*: string */,
117
143
  reactNativeConfig /*: $FlowFixMe */,
118
144
  ) /*: Array<$FlowFixMe> */ {
119
145
  const projectLibraries = findProjectRootLibraries(pkgJson, projectRoot);
120
146
  if (pkgJsonIncludesGeneratedCode(pkgJson)) {
121
147
  return projectLibraries;
122
148
  } else {
123
- return [
124
- ...projectLibraries,
125
- ...findExternalLibraries(pkgJson, projectRoot),
149
+ const libraries = [...projectLibraries];
150
+ // If we ran autolinking, we shouldn't try to run our own "autolinking-like"
151
+ // library discovery
152
+ if (!readGeneratedAutolinkingOutput(baseOutputPath)) {
153
+ libraries.push(...findExternalLibraries(pkgJson, projectRoot));
154
+ }
155
+ libraries.push(
126
156
  ...findLibrariesFromReactNativeConfig(projectRoot, reactNativeConfig),
127
- ];
157
+ );
158
+ return libraries;
128
159
  }
129
160
  }
130
161
 
@@ -33,6 +33,7 @@ if use_frameworks
33
33
  .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-FabricImage", "React_FabricImage", []))
34
34
  .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-graphics", "React_graphics", ["react/renderer/graphics/platform/ios"]))
35
35
  .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "ReactCommon", "ReactCommon", ["react/nativemodule/core"]))
36
+ .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-runtimeexecutor", "React_runtimeexecutor", ["platform/ios"]))
36
37
  .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-NativeModulesApple", "React_NativeModulesApple", []))
37
38
  .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-RCTFabric", "RCTFabric", []))
38
39
  .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-debug", "React_debug", []))
@@ -10,7 +10,7 @@
10
10
 
11
11
  # Print commands before executing them (useful for troubleshooting)
12
12
  set -x -e
13
- DEST=$CONFIGURATION_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH
13
+ DEST="$CONFIGURATION_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH"
14
14
 
15
15
  # Enables iOS devices to get the IP address of the machine running Metro
16
16
  if [[ ! "$SKIP_BUNDLING_METRO_IP" && "$CONFIGURATION" = *Debug* && ! "$PLATFORM_NAME" == *simulator ]]; then
@@ -59,7 +59,7 @@ esac
59
59
  # Path to react-native folder inside node_modules
60
60
  REACT_NATIVE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
61
61
  # Most projects have their project root, one level up from their Xcode project dir (the "ios" directory)
62
- PROJECT_ROOT=${PROJECT_ROOT:-"$PROJECT_DIR/.."}
62
+ PROJECT_ROOT="${PROJECT_ROOT:-"$PROJECT_DIR/.."}"
63
63
 
64
64
  cd "$PROJECT_ROOT" || exit
65
65
 
@@ -229,6 +229,20 @@ def folly_flags()
229
229
  return NewArchitectureHelper.folly_compiler_flags
230
230
  end
231
231
 
232
+ # Resolve the spec for use with the USE_FRAMEWORKS environment variable. To avoid each podspec
233
+ # to manually specify the header mappings and module name, we can use this helper function.
234
+ # This helper will also resolve header mappings if we're building from source. Precompiled
235
+ # React-Core will not generate frameworks since their podspec files only contains the
236
+ # header files and no source code - so header_mappings should be the same as for without USE_FRAMEWORKS
237
+ #
238
+ # Parameters:
239
+ # - s: the spec to modify
240
+ # - header_mappings_dir: the directory to map headers when building Pod header structure
241
+ # - module_name: the name of the module when exposed to swift
242
+ def resolve_use_frameworks(spec, header_mappings_dir: nil, module_name: nil)
243
+ ReactNativePodsUtils.resolve_use_frameworks(spec, :header_mappings_dir => header_mappings_dir, :module_name => module_name)
244
+ end
245
+
232
246
  # Add a dependency to a spec, making sure that the HEADER_SERACH_PATHS are set properly.
233
247
  # This function automate the requirement to specify the HEADER_SEARCH_PATHS which was error prone
234
248
  # and hard to pull out properly to begin with.
@@ -483,6 +497,13 @@ def react_native_post_install(
483
497
  ReactNativePodsUtils.updateOSDeploymentTarget(installer)
484
498
  ReactNativePodsUtils.set_dynamic_frameworks_flags(installer)
485
499
  ReactNativePodsUtils.add_ndebug_flag_to_pods_in_release(installer)
500
+
501
+ if !ReactNativeCoreUtils.build_rncore_from_source()
502
+ # In XCode 26 we need to revert the new setting SWIFT_ENABLE_EXPLICIT_MODULES when building
503
+ # with precompiled binaries.
504
+ ReactNativePodsUtils.set_build_setting(installer, build_setting: "SWIFT_ENABLE_EXPLICIT_MODULES", value: "NO")
505
+ end
506
+
486
507
  SPM.apply_on_post_install(installer)
487
508
 
488
509
  if privacy_file_aggregation_enabled
@@ -10,7 +10,7 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const {execSync} = require('child_process');
13
+ const {spawnSync} = require('child_process');
14
14
  const fs = require('fs');
15
15
  const yargs = require('yargs');
16
16
 
@@ -67,7 +67,9 @@ function replaceRNCoreConfiguration(
67
67
  fs.mkdirSync(finalLocation, {recursive: true});
68
68
 
69
69
  console.log('Extracting the tarball', tarballURLPath);
70
- execSync(`tar -xf ${tarballURLPath} -C ${finalLocation}`);
70
+ spawnSync('tar', ['-xf', tarballURLPath, '-C', finalLocation], {
71
+ stdio: 'inherit',
72
+ });
71
73
  }
72
74
 
73
75
  function updateLastBuildConfiguration(configuration /*: string */) {
@@ -43,5 +43,5 @@ fi
43
43
 
44
44
  # Execute argument, if present
45
45
  if [ -n "$1" ]; then
46
- $1
46
+ "$1"
47
47
  fi
@@ -10,7 +10,7 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const {execSync} = require('child_process');
13
+ const {spawnSync} = require('child_process');
14
14
  const fs = require('fs');
15
15
  const yargs = require('yargs');
16
16
 
@@ -62,7 +62,9 @@ function replaceHermesConfiguration(configuration, version, podsRoot) {
62
62
  fs.mkdirSync(finalLocation, {recursive: true});
63
63
 
64
64
  console.log('Extracting the tarball');
65
- execSync(`tar -xf ${tarballURLPath} -C ${finalLocation}`);
65
+ spawnSync('tar', ['-xf', tarballURLPath, '-C', finalLocation], {
66
+ stdio: 'inherit',
67
+ });
66
68
  }
67
69
 
68
70
  function updateLastBuildConfiguration(configuration) {
Binary file
Binary file
Binary file
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<999a8d329cdab258ac64c03b24f1a516>>
7
+ * @generated SignedSource<<f17b8e4e33228e19b346837e7a33a2dd>>
8
8
  * @flow strict
9
9
  * @noformat
10
10
  */
@@ -103,6 +103,8 @@ export type ReactNativeFeatureFlags = $ReadOnly<{
103
103
  updateRuntimeShadowNodeReferencesOnCommit: Getter<boolean>,
104
104
  useAlwaysAvailableJSErrorHandling: Getter<boolean>,
105
105
  useFabricInterop: Getter<boolean>,
106
+ useNativeEqualsInNativeReadableArrayAndroid: Getter<boolean>,
107
+ useNativeTransformHelperAndroid: Getter<boolean>,
106
108
  useNativeViewConfigsInBridgelessMode: Getter<boolean>,
107
109
  useOptimizedEventBatchingOnAndroid: Getter<boolean>,
108
110
  useRawPropsJsiValue: Getter<boolean>,
@@ -404,6 +406,14 @@ export const useAlwaysAvailableJSErrorHandling: Getter<boolean> = createNativeFl
404
406
  * Should this application enable the Fabric Interop Layer for Android? If yes, the application will behave so that it can accept non-Fabric components and render them on Fabric. This toggle is controlling extra logic such as custom event dispatching that are needed for the Fabric Interop Layer to work correctly.
405
407
  */
406
408
  export const useFabricInterop: Getter<boolean> = createNativeFlagGetter('useFabricInterop', true);
409
+ /**
410
+ * Use a native implementation of equals in NativeReadableArray.
411
+ */
412
+ export const useNativeEqualsInNativeReadableArrayAndroid: Getter<boolean> = createNativeFlagGetter('useNativeEqualsInNativeReadableArrayAndroid', false);
413
+ /**
414
+ * Use a native implementation of TransformHelper
415
+ */
416
+ export const useNativeTransformHelperAndroid: Getter<boolean> = createNativeFlagGetter('useNativeTransformHelperAndroid', false);
407
417
  /**
408
418
  * When enabled, the native view configs are used in bridgeless mode.
409
419
  */
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<1b84b6e04c214f6c2798010372937990>>
7
+ * @generated SignedSource<<8b4f1275a16d5b83f5594da1eb89c6c1>>
8
8
  * @flow strict
9
9
  * @noformat
10
10
  */
@@ -77,6 +77,8 @@ export interface Spec extends TurboModule {
77
77
  +updateRuntimeShadowNodeReferencesOnCommit?: () => boolean;
78
78
  +useAlwaysAvailableJSErrorHandling?: () => boolean;
79
79
  +useFabricInterop?: () => boolean;
80
+ +useNativeEqualsInNativeReadableArrayAndroid?: () => boolean;
81
+ +useNativeTransformHelperAndroid?: () => boolean;
80
82
  +useNativeViewConfigsInBridgelessMode?: () => boolean;
81
83
  +useOptimizedEventBatchingOnAndroid?: () => boolean;
82
84
  +useRawPropsJsiValue?: () => boolean;
@@ -58,4 +58,5 @@ export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
58
58
  export default (codegenNativeComponent<SwitchNativeProps>('Switch', {
59
59
  paperComponentName: 'RCTSwitch',
60
60
  excludedPlatforms: ['android'],
61
+ interfaceOnly: true,
61
62
  }): ComponentType);
@@ -64,7 +64,7 @@ Pod::Spec.new do |spec|
64
64
 
65
65
  cp -R "$HEADERS_PATH/" Headers
66
66
  mkdir -p framework/packages/react-native
67
- cp -R "$XCFRAMEWORK_PATH/.." framework/packages/react-native/
67
+ cp -R "$XCFRAMEWORK_PATH/../." framework/packages/react-native/
68
68
  find "$XCFRAMEWORK_PATH/.." -type f -exec rm {} +
69
69
  find "$CURRENT_PATH" -type d -empty -delete
70
70
  CMD
@@ -10,7 +10,7 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const {execSync} = require('child_process');
13
+ const {spawnSync} = require('child_process');
14
14
  const fs = require('fs');
15
15
  const yargs = require('yargs');
16
16
 
@@ -66,7 +66,9 @@ function replaceRNDepsConfiguration(
66
66
  fs.mkdirSync(finalLocation, {recursive: true});
67
67
 
68
68
  console.log('Extracting the tarball', tarballURLPath);
69
- execSync(`tar -xf ${tarballURLPath} -C ${finalLocation}`);
69
+ spawnSync('tar', ['-xf', tarballURLPath, '-C', finalLocation], {
70
+ stdio: 'inherit',
71
+ });
70
72
 
71
73
  // Now we need to remove the extra third-party folder as we do in the podspec's prepare-script
72
74
  // We need to take the ReactNativeDependencies.xcframework folder and move it up one level