diff --git a/packages/react-native/React/React-RCTFBReactNativeSpec.podspec b/packages/react-native/React/React-RCTFBReactNativeSpec.podspec index f5ebc834cbecd2..1abb84e7e47327 100644 --- a/packages/react-native/React/React-RCTFBReactNativeSpec.podspec +++ b/packages/react-native/React/React-RCTFBReactNativeSpec.podspec @@ -45,10 +45,7 @@ Pod::Spec.new do |s| "HEADER_SEARCH_PATHS" => header_search_paths.join(' '), } - if ENV['USE_FRAMEWORKS'] - s.header_mappings_dir = 'FBReactNativeSpec' - s.module_name = 'React_RCTFBReactNativeSpec' - end + resolve_use_frameworks(s, header_mappings_dir: 'FBReactNativeSpec', module_name: "React_RCTFBReactNativeSpec") s.dependency "React-jsi" s.dependency "RCTRequired" diff --git a/packages/react-native/React/Runtime/React-RCTRuntime.podspec b/packages/react-native/React/Runtime/React-RCTRuntime.podspec index f5c08979fc9d29..ffd2ac92b26636 100644 --- a/packages/react-native/React/Runtime/React-RCTRuntime.podspec +++ b/packages/react-native/React/Runtime/React-RCTRuntime.podspec @@ -35,9 +35,7 @@ Pod::Spec.new do |s| s.header_dir = header_dir s.module_name = module_name - if ENV['USE_FRAMEWORKS'] - s.header_mappings_dir = "./" - end + resolve_use_frameworks(s, header_mappings_dir: "./") s.pod_target_xcconfig = { "OTHER_CFLAGS" => "$(inherited) " + new_arch_flags, diff --git a/packages/react-native/ReactCommon/React-Fabric.podspec b/packages/react-native/ReactCommon/React-Fabric.podspec index f5966f9aa13b12..f903efa0fd451c 100644 --- a/packages/react-native/ReactCommon/React-Fabric.podspec +++ b/packages/react-native/ReactCommon/React-Fabric.podspec @@ -32,10 +32,7 @@ Pod::Spec.new do |s| "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(), "DEFINES_MODULE" => "YES" } - if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source() - s.header_mappings_dir = './' - s.module_name = 'React_Fabric' - end + resolve_use_frameworks(s, header_mappings_dir: "./", module_name: "React_Fabric") s.dependency "React-jsiexecutor" s.dependency "RCTRequired" diff --git a/packages/react-native/ReactCommon/React-FabricComponents.podspec b/packages/react-native/ReactCommon/React-FabricComponents.podspec index 2f0bbab875b152..86786a77585060 100644 --- a/packages/react-native/ReactCommon/React-FabricComponents.podspec +++ b/packages/react-native/ReactCommon/React-FabricComponents.podspec @@ -49,10 +49,7 @@ Pod::Spec.new do |s| "HEADER_SEARCH_PATHS" => header_search_path.join(" "), } - if ENV['USE_FRAMEWORKS'] - s.header_mappings_dir = './' - s.module_name = 'React_FabricComponents' - end + resolve_use_frameworks(s, header_mappings_dir: "./", module_name: "React_FabricComponents") s.dependency "React-jsiexecutor" s.dependency "RCTRequired" diff --git a/packages/react-native/ReactCommon/React-FabricImage.podspec b/packages/react-native/ReactCommon/React-FabricImage.podspec index 0a20f7335235d2..588b4c4d104b0d 100644 --- a/packages/react-native/ReactCommon/React-FabricImage.podspec +++ b/packages/react-native/ReactCommon/React-FabricImage.podspec @@ -50,10 +50,7 @@ Pod::Spec.new do |s| "HEADER_SEARCH_PATHS" => header_search_path.join(" ") } - if ENV['USE_FRAMEWORKS'] - s.header_mappings_dir = './' - s.module_name = 'React_FabricImage' - end + resolve_use_frameworks(s, header_mappings_dir: './', module_name: "React_FabricImage") s.dependency "React-jsiexecutor", version s.dependency "RCTRequired", version diff --git a/packages/react-native/ReactCommon/React-Mapbuffer.podspec b/packages/react-native/ReactCommon/React-Mapbuffer.podspec index 29de1623771b65..6df5afd9f1e221 100644 --- a/packages/react-native/ReactCommon/React-Mapbuffer.podspec +++ b/packages/react-native/ReactCommon/React-Mapbuffer.podspec @@ -32,10 +32,7 @@ Pod::Spec.new do |s| s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => ["\"$(PODS_TARGET_SRCROOT)\""], "USE_HEADERMAP" => "YES", "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard() } - if ENV['USE_FRAMEWORKS'] - s.header_mappings_dir = './' - s.module_name = 'React_Mapbuffer' - end + resolve_use_frameworks(s, header_mappings_dir: './', module_name: "React_Mapbuffer") add_dependency(s, "React-debug") add_rn_third_party_dependencies(s) diff --git a/packages/react-native/ReactCommon/ReactCommon.podspec b/packages/react-native/ReactCommon/ReactCommon.podspec index b672e27c3a6392..83e81864640d54 100644 --- a/packages/react-native/ReactCommon/ReactCommon.podspec +++ b/packages/react-native/ReactCommon/ReactCommon.podspec @@ -32,9 +32,8 @@ Pod::Spec.new do |s| "DEFINES_MODULE" => "YES", "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(), "GCC_WARN_PEDANTIC" => "YES" } - if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source() - s.header_mappings_dir = './' - end + + resolve_use_frameworks(s, header_mappings_dir: './') add_rn_third_party_dependencies(s) add_rncore_dependency(s) diff --git a/packages/react-native/ReactCommon/hermes/executor/React-jsitracing.podspec b/packages/react-native/ReactCommon/hermes/executor/React-jsitracing.podspec index 9bfa3d1ef78897..9ee322ba4489b8 100644 --- a/packages/react-native/ReactCommon/hermes/executor/React-jsitracing.podspec +++ b/packages/react-native/ReactCommon/hermes/executor/React-jsitracing.podspec @@ -32,10 +32,7 @@ Pod::Spec.new do |s| "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(), "GCC_WARN_PEDANTIC" => "YES" } - if ENV['USE_FRAMEWORKS'] - s.header_mappings_dir = './' - s.module_name = 'React_jsitracing' - end + resolve_use_frameworks(s, header_mappings_dir: './', module_name: "React_jsitracing") s.dependency "React-jsi" end diff --git a/packages/react-native/ReactCommon/jserrorhandler/React-jserrorhandler.podspec b/packages/react-native/ReactCommon/jserrorhandler/React-jserrorhandler.podspec index 9433e579bdcb44..a5cc33ecc99ac2 100644 --- a/packages/react-native/ReactCommon/jserrorhandler/React-jserrorhandler.podspec +++ b/packages/react-native/ReactCommon/jserrorhandler/React-jserrorhandler.podspec @@ -33,10 +33,8 @@ Pod::Spec.new do |s| "USE_HEADERMAP" => "YES", "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard() } - if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source() - s.header_mappings_dir = '../' - s.module_name = 'React_jserrorhandler' - end + + resolve_use_frameworks(s, header_mappings_dir: '../', module_name: "React_jserrorhandler") s.dependency "React-jsi" s.dependency "React-cxxreact" diff --git a/packages/react-native/ReactCommon/jsinspector-modern/React-jsinspector.podspec b/packages/react-native/ReactCommon/jsinspector-modern/React-jsinspector.podspec index 443088bcad4a3a..78d77ffa539afb 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/React-jsinspector.podspec +++ b/packages/react-native/ReactCommon/jsinspector-modern/React-jsinspector.podspec @@ -44,10 +44,9 @@ Pod::Spec.new do |s| "PUBLIC_HEADERS_FOLDER_PATH" => "#{module_name}.framework/Headers/#{header_dir}" } : {}) - if ENV['USE_FRAMEWORKS'] - s.module_name = module_name - end + resolve_use_frameworks(s, module_name: module_name) + add_dependency(s, "React-oscompat") # Needed for USE_FRAMEWORKS=dynamic s.dependency "React-featureflags" add_dependency(s, "React-runtimeexecutor", :additional_framework_paths => ["platform/ios"]) s.dependency "React-jsi" diff --git a/packages/react-native/ReactCommon/jsinspector-modern/cdp/React-jsinspectorcdp.podspec b/packages/react-native/ReactCommon/jsinspector-modern/cdp/React-jsinspectorcdp.podspec index 224c512030e497..cff367fda21ea8 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/cdp/React-jsinspectorcdp.podspec +++ b/packages/react-native/ReactCommon/jsinspector-modern/cdp/React-jsinspectorcdp.podspec @@ -41,10 +41,7 @@ Pod::Spec.new do |s| "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(), "DEFINES_MODULE" => "YES"} - if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source() - s.module_name = module_name - s.header_mappings_dir = "../.." - end + resolve_use_frameworks(s, header_mappings_dir: "../..", module_name: module_name) add_rn_third_party_dependencies(s) add_rncore_dependency(s) diff --git a/packages/react-native/ReactCommon/jsinspector-modern/network/React-jsinspectornetwork.podspec b/packages/react-native/ReactCommon/jsinspector-modern/network/React-jsinspectornetwork.podspec index 6f79020f0c3fdd..d17a80a0b00ef6 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/network/React-jsinspectornetwork.podspec +++ b/packages/react-native/ReactCommon/jsinspector-modern/network/React-jsinspectornetwork.podspec @@ -41,10 +41,7 @@ Pod::Spec.new do |s| "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(), "DEFINES_MODULE" => "YES"} - if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source() - s.module_name = module_name - s.header_mappings_dir = "../.." - end + resolve_use_frameworks(s, header_mappings_dir: "../..", module_name: module_name) add_dependency(s, "React-jsinspectorcdp", :framework_name => 'jsinspector_moderncdp') add_dependency(s, "React-featureflags") diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec b/packages/react-native/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec index 21206aba7aaac6..8e3c2d61b93472 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +++ b/packages/react-native/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec @@ -41,10 +41,7 @@ Pod::Spec.new do |s| "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(), "DEFINES_MODULE" => "YES"} - if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source() - s.module_name = module_name - s.header_mappings_dir = "../.." - end + resolve_use_frameworks(s, header_mappings_dir: "../..", module_name: module_name) s.dependency "React-oscompat" s.dependency "React-timing" diff --git a/packages/react-native/ReactCommon/jsitooling/React-jsitooling.podspec b/packages/react-native/ReactCommon/jsitooling/React-jsitooling.podspec index d7bc1146b1facf..49c1dcd8315646 100644 --- a/packages/react-native/ReactCommon/jsitooling/React-jsitooling.podspec +++ b/packages/react-native/ReactCommon/jsitooling/React-jsitooling.podspec @@ -28,10 +28,7 @@ Pod::Spec.new do |s| s.source_files = podspec_sources("react/runtime/*.{cpp,h}", "react/runtime/*.h") s.header_dir = "react/runtime" - if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source() - s.module_name = "JSITooling" - s.header_mappings_dir = "./" - end + resolve_use_frameworks(s, header_mappings_dir: "./", module_name: "JSITooling") s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(), diff --git a/packages/react-native/ReactCommon/react/debug/React-debug.podspec b/packages/react-native/ReactCommon/react/debug/React-debug.podspec index b68c407a2f4803..7b61bc7d0be430 100644 --- a/packages/react-native/ReactCommon/react/debug/React-debug.podspec +++ b/packages/react-native/ReactCommon/react/debug/React-debug.podspec @@ -30,8 +30,5 @@ Pod::Spec.new do |s| s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(), "DEFINES_MODULE" => "YES" } - if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source() - s.module_name = "React_debug" - s.header_mappings_dir = "../.." - end + resolve_use_frameworks(s, header_mappings_dir: "../..", module_name: "React_debug") end diff --git a/packages/react-native/ReactCommon/react/featureflags/React-featureflags.podspec b/packages/react-native/ReactCommon/react/featureflags/React-featureflags.podspec index b5335894e5b9bc..2741779951788a 100644 --- a/packages/react-native/ReactCommon/react/featureflags/React-featureflags.podspec +++ b/packages/react-native/ReactCommon/react/featureflags/React-featureflags.podspec @@ -37,10 +37,7 @@ Pod::Spec.new do |s| "HEADER_SEARCH_PATHS" => header_search_paths.join(' '), "DEFINES_MODULE" => "YES" } - if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source() - s.module_name = "React_featureflags" - s.header_mappings_dir = "../.." - end + resolve_use_frameworks(s, header_mappings_dir: "../..", module_name: "React_featureflags") add_rn_third_party_dependencies(s) add_rncore_dependency(s) diff --git a/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec b/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec index a6790265849a9e..7fd2869614b6ef 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec +++ b/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec @@ -31,9 +31,8 @@ Pod::Spec.new do |s| "USE_HEADERMAP" => "YES", "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(), "GCC_WARN_PEDANTIC" => "YES" } - if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source() - s.header_mappings_dir = './' - end + + resolve_use_frameworks(s, header_mappings_dir: './') s.source_files = podspec_sources("ReactCommon/**/*.{mm,cpp,h}", "ReactCommon/**/*.{h}") diff --git a/packages/react-native/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec b/packages/react-native/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec index 3c97b10ea0c358..88cfdc7f30caa5 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +++ b/packages/react-native/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec @@ -38,10 +38,7 @@ Pod::Spec.new do |s| "OTHER_CFLAGS" => "$(inherited)", "DEFINES_MODULE" => "YES" } - if ENV['USE_FRAMEWORKS'] - s.module_name = "React_defaultsnativemodule" - s.header_mappings_dir = "../.." - end + resolve_use_frameworks(s, header_mappings_dir: "../..", module_name: "React_defaultsnativemodule") s.dependency "React-jsi" s.dependency "React-jsiexecutor" diff --git a/packages/react-native/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec b/packages/react-native/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec index ca55e1a8a24068..6119ccb41057e9 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec +++ b/packages/react-native/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec @@ -40,10 +40,7 @@ Pod::Spec.new do |s| "OTHER_CFLAGS" => "$(inherited)", "DEFINES_MODULE" => "YES" } - if ENV['USE_FRAMEWORKS'] - s.module_name = "React_domnativemodule" - s.header_mappings_dir = "../.." - end + resolve_use_frameworks(s, header_mappings_dir: "../..", module_name: "React_domnativemodule") s.dependency "React-jsi" s.dependency "React-jsiexecutor" diff --git a/packages/react-native/ReactCommon/react/nativemodule/featureflags/React-featureflagsnativemodule.podspec b/packages/react-native/ReactCommon/react/nativemodule/featureflags/React-featureflagsnativemodule.podspec index 3be0cac40b54a6..6d4dafcc7076c0 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/featureflags/React-featureflagsnativemodule.podspec +++ b/packages/react-native/ReactCommon/react/nativemodule/featureflags/React-featureflagsnativemodule.podspec @@ -38,10 +38,7 @@ Pod::Spec.new do |s| "OTHER_CFLAGS" => "$(inherited)", "DEFINES_MODULE" => "YES" } - if ENV['USE_FRAMEWORKS'] - s.module_name = "React_featureflagsnativemodule" - s.header_mappings_dir = "../.." - end + resolve_use_frameworks(s, header_mappings_dir: "../..", module_name: "React_featureflagsnativemodule") s.dependency "React-jsi" s.dependency "React-jsiexecutor" diff --git a/packages/react-native/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec b/packages/react-native/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec index d6bc746f77b8b6..46327b2c74d648 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec +++ b/packages/react-native/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec @@ -38,10 +38,7 @@ Pod::Spec.new do |s| "OTHER_CFLAGS" => "$(inherited)", "DEFINES_MODULE" => "YES" } - if ENV['USE_FRAMEWORKS'] - s.module_name = "idlecallbacksnativemodule" - s.header_mappings_dir = "../.." - end + resolve_use_frameworks(s, header_mappings_dir: "../..", module_name: "idlecallbacksnativemodule") s.dependency "React-jsi" s.dependency "React-jsiexecutor" diff --git a/packages/react-native/ReactCommon/react/nativemodule/microtasks/React-microtasksnativemodule.podspec b/packages/react-native/ReactCommon/react/nativemodule/microtasks/React-microtasksnativemodule.podspec index df364406aff906..a41e3d3a3526e4 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/microtasks/React-microtasksnativemodule.podspec +++ b/packages/react-native/ReactCommon/react/nativemodule/microtasks/React-microtasksnativemodule.podspec @@ -38,10 +38,7 @@ Pod::Spec.new do |s| "HEADER_SEARCH_PATHS" => header_search_paths.join(' '), "DEFINES_MODULE" => "YES" } - if ENV['USE_FRAMEWORKS'] - s.module_name = "React_microtasksnativemodule" - s.header_mappings_dir = "../.." - end + resolve_use_frameworks(s, header_mappings_dir: "../..", module_name: "React_microtasksnativemodule") s.dependency "React-jsi" s.dependency "React-jsiexecutor" diff --git a/packages/react-native/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec b/packages/react-native/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec index fc5b29a94b0329..051ee3fc86c33f 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +++ b/packages/react-native/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec @@ -40,6 +40,8 @@ Pod::Spec.new do |s| s.framework = "UIKit" if ENV['USE_FRAMEWORKS'] + # Do not use resolve_use_frameworks here - since we're including source files. + # Then it is not needed. s.header_mappings_dir = './' end diff --git a/packages/react-native/ReactCommon/react/performance/cdpmetrics/React-performancecdpmetrics.podspec b/packages/react-native/ReactCommon/react/performance/cdpmetrics/React-performancecdpmetrics.podspec index 8d1577d22d334a..3570820348a4f6 100644 --- a/packages/react-native/ReactCommon/react/performance/cdpmetrics/React-performancecdpmetrics.podspec +++ b/packages/react-native/ReactCommon/react/performance/cdpmetrics/React-performancecdpmetrics.podspec @@ -38,10 +38,7 @@ Pod::Spec.new do |s| "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(), "HEADER_SEARCH_PATHS" => header_search_paths.join(' ')} - if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source() - s.module_name = "React_performancecdpmetrics" - s.header_mappings_dir = "../../.." - end + resolve_use_frameworks(s, header_mappings_dir: "../../..", module_name: "React_performancecdpmetrics") add_dependency(s, "React-runtimeexecutor", :additional_framework_paths => ["platform/ios"]) s.dependency "React-jsi" diff --git a/packages/react-native/ReactCommon/react/performance/timeline/React-performancetimeline.podspec b/packages/react-native/ReactCommon/react/performance/timeline/React-performancetimeline.podspec index 9f518ff6e8b93f..6e190bbfe6d9c6 100644 --- a/packages/react-native/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +++ b/packages/react-native/ReactCommon/react/performance/timeline/React-performancetimeline.podspec @@ -38,10 +38,7 @@ Pod::Spec.new do |s| "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(), "HEADER_SEARCH_PATHS" => header_search_paths.join(' ')} - if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source() - s.module_name = "React_performancetimeline" - s.header_mappings_dir = "../../.." - end + resolve_use_frameworks(s, header_mappings_dir: "../../..", module_name: "React_performancetimeline") s.dependency "React-featureflags" add_dependency(s, "React-jsinspectortracing", :framework_name => 'jsinspector_moderntracing') diff --git a/packages/react-native/ReactCommon/react/renderer/consistency/React-rendererconsistency.podspec b/packages/react-native/ReactCommon/react/renderer/consistency/React-rendererconsistency.podspec index 3dd85feeb2c2bc..216fd443ad3cf8 100644 --- a/packages/react-native/ReactCommon/react/renderer/consistency/React-rendererconsistency.podspec +++ b/packages/react-native/ReactCommon/react/renderer/consistency/React-rendererconsistency.podspec @@ -38,8 +38,6 @@ Pod::Spec.new do |s| "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(), "HEADER_SEARCH_PATHS" => header_search_paths.join(' ')} - if ENV['USE_FRAMEWORKS'] - s.module_name = "React_rendererconsistency" - s.header_mappings_dir = "../../.." - end + resolve_use_frameworks(s, header_mappings_dir: "../../..", module_name: "React_rendererconsistency") + end diff --git a/packages/react-native/ReactCommon/react/renderer/css/React-renderercss.podspec b/packages/react-native/ReactCommon/react/renderer/css/React-renderercss.podspec index 17f1d012023540..c16a9a875b27cb 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/React-renderercss.podspec +++ b/packages/react-native/ReactCommon/react/renderer/css/React-renderercss.podspec @@ -18,7 +18,7 @@ end header_search_paths = [] -if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source() +if ENV['USE_FRAMEWORKS'] header_search_paths << "\"$(PODS_TARGET_SRCROOT)/../../..\"" # this is needed to allow the renderer/css access its own files end @@ -40,10 +40,7 @@ Pod::Spec.new do |s| "DEFINES_MODULE" => "YES", } - if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source() - s.module_name = "React_renderercss" - s.header_mappings_dir = "../../.." - end + resolve_use_frameworks(s, header_mappings_dir: "../../..", module_name: "React_renderercss") add_dependency(s, "React-debug") add_dependency(s, "React-utils") diff --git a/packages/react-native/ReactCommon/react/renderer/debug/React-rendererdebug.podspec b/packages/react-native/ReactCommon/react/renderer/debug/React-rendererdebug.podspec index fe20e6063870d5..41df93a4f64a2c 100644 --- a/packages/react-native/ReactCommon/react/renderer/debug/React-rendererdebug.podspec +++ b/packages/react-native/ReactCommon/react/renderer/debug/React-rendererdebug.podspec @@ -40,10 +40,7 @@ Pod::Spec.new do |s| "DEFINES_MODULE" => "YES" } - if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source() - s.module_name = "React_rendererdebug" - s.header_mappings_dir = "../../.." - end + resolve_use_frameworks(s, header_mappings_dir: "../../..", module_name: "React_rendererdebug") add_dependency(s, "React-debug") add_rn_third_party_dependencies(s) diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/React-graphics.podspec b/packages/react-native/ReactCommon/react/renderer/graphics/React-graphics.podspec index 1af95039868c57..87e7cb21045c62 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/React-graphics.podspec +++ b/packages/react-native/ReactCommon/react/renderer/graphics/React-graphics.podspec @@ -34,12 +34,12 @@ Pod::Spec.new do |s| s.header_dir = "react/renderer/graphics" s.framework = "UIKit" - if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source() - s.module_name = "React_graphics" - s.header_mappings_dir = "../../.." + if ENV['USE_FRAMEWORKS'] header_search_paths = header_search_paths + ["\"$(PODS_TARGET_SRCROOT)/platform/ios\""] end + resolve_use_frameworks(s, header_mappings_dir: "../../..", module_name: "React_graphics") + s.pod_target_xcconfig = { "USE_HEADERMAP" => "NO", "HEADER_SEARCH_PATHS" => header_search_paths.join(" "), "DEFINES_MODULE" => "YES", diff --git a/packages/react-native/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec b/packages/react-native/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec index b21eb5b7c10d50..50862be6838776 100644 --- a/packages/react-native/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec +++ b/packages/react-native/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec @@ -34,10 +34,7 @@ Pod::Spec.new do |s| s.source_files = podspec_sources(source_files, "**/*.h") s.header_dir = "react/renderer/imagemanager" - if ENV['USE_FRAMEWORKS'] - s.module_name = "React_ImageManager" - s.header_mappings_dir = "./" - end + resolve_use_frameworks(s, header_mappings_dir: "./", module_name: "React_ImageManager") s.pod_target_xcconfig = { "USE_HEADERMAP" => "NO", diff --git a/packages/react-native/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec b/packages/react-native/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec index ca21eafd2c0dae..56823e61d623cd 100644 --- a/packages/react-native/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec +++ b/packages/react-native/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec @@ -38,10 +38,7 @@ Pod::Spec.new do |s| "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(), "HEADER_SEARCH_PATHS" => header_search_paths.join(' ')} - if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source() - s.module_name = "React_runtimescheduler" - s.header_mappings_dir = "../../.." - end + resolve_use_frameworks(s, header_mappings_dir: "../../..", module_name: "React_runtimescheduler") add_dependency(s, "React-runtimeexecutor", :additional_framework_paths => ["platform/ios"]) s.dependency "React-callinvoker" diff --git a/packages/react-native/ReactCommon/react/runtime/React-RuntimeCore.podspec b/packages/react-native/ReactCommon/react/runtime/React-RuntimeCore.podspec index 46c3c994495b1b..24b163f5e4d46d 100644 --- a/packages/react-native/ReactCommon/react/runtime/React-RuntimeCore.podspec +++ b/packages/react-native/ReactCommon/react/runtime/React-RuntimeCore.podspec @@ -33,10 +33,7 @@ Pod::Spec.new do |s| "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(), "GCC_WARN_PEDANTIC" => "YES" } - if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source() - s.header_mappings_dir = '../../' - s.module_name = 'React_RuntimeCore' - end + resolve_use_frameworks(s, header_mappings_dir: "../..", module_name: "React_RuntimeCore") s.dependency "React-jsiexecutor" s.dependency "React-cxxreact" diff --git a/packages/react-native/ReactCommon/react/runtime/React-RuntimeHermes.podspec b/packages/react-native/ReactCommon/react/runtime/React-RuntimeHermes.podspec index c213513db8985a..ac7d4419db238d 100644 --- a/packages/react-native/ReactCommon/react/runtime/React-RuntimeHermes.podspec +++ b/packages/react-native/ReactCommon/react/runtime/React-RuntimeHermes.podspec @@ -32,10 +32,7 @@ Pod::Spec.new do |s| "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(), "GCC_WARN_PEDANTIC" => "YES" } - if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source() - s.header_mappings_dir = '../../' - s.module_name = 'React_RuntimeHermes' - end + resolve_use_frameworks(s, header_mappings_dir: "../../", module_name: "React_RuntimeHermes") s.dependency "React-jsitracing" s.dependency "React-jsi" diff --git a/packages/react-native/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec b/packages/react-native/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec index c40bcd43d51b33..7c84db0bca95d9 100644 --- a/packages/react-native/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec +++ b/packages/react-native/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec @@ -38,10 +38,7 @@ Pod::Spec.new do |s| "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(), "GCC_WARN_PEDANTIC" => "YES" } - if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source() - s.header_mappings_dir = './' - s.module_name = 'React_RuntimeApple' - end + resolve_use_frameworks(s, header_mappings_dir: "./", module_name: "React_RuntimeApple") s.dependency "React-jsiexecutor" s.dependency "React-cxxreact" diff --git a/packages/react-native/ReactCommon/react/timing/React-timing.podspec b/packages/react-native/ReactCommon/react/timing/React-timing.podspec index e3d90ca2ec4b99..8168f2b46358c6 100644 --- a/packages/react-native/ReactCommon/react/timing/React-timing.podspec +++ b/packages/react-native/ReactCommon/react/timing/React-timing.podspec @@ -37,10 +37,7 @@ Pod::Spec.new do |s| "HEADER_SEARCH_PATHS" => header_search_paths.join(' '), "DEFINES_MODULE" => "YES" } - if ENV['USE_FRAMEWORKS'] - s.module_name = "React_timing" - s.header_mappings_dir = "./" - end + resolve_use_frameworks(s, header_mappings_dir: "./", module_name: "React_timing") add_dependency(s, "React-debug") end diff --git a/packages/react-native/ReactCommon/react/utils/React-utils.podspec b/packages/react-native/ReactCommon/react/utils/React-utils.podspec index 27eeb6b40b6c11..d3061f63bb06d1 100644 --- a/packages/react-native/ReactCommon/react/utils/React-utils.podspec +++ b/packages/react-native/ReactCommon/react/utils/React-utils.podspec @@ -34,12 +34,12 @@ Pod::Spec.new do |s| s.header_dir = "react/utils" s.exclude_files = "tests" - if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source() - s.module_name = "React_utils" - s.header_mappings_dir = "../.." + if ENV['USE_FRAMEWORKS'] header_search_paths = header_search_paths + ["\"$(PODS_TARGET_SRCROOT)/platform/ios\""] end + resolve_use_frameworks(s, header_mappings_dir: "../..", module_name: "React_utils") + s.pod_target_xcconfig = { "USE_HEADERMAP" => "NO", "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(), "HEADER_SEARCH_PATHS" => header_search_paths.join(' '), diff --git a/packages/react-native/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec b/packages/react-native/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec index 86216f7d89b3fd..155735ca9d8a3c 100644 --- a/packages/react-native/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec +++ b/packages/react-native/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec @@ -33,11 +33,12 @@ Pod::Spec.new do |s| s.source_files = podspec_sources(["ReactCommon/*.{m,mm,cpp,h}", "platform/ios/**/*.{m,mm,cpp,h}"], ["ReactCommon/*.h", "platform/ios/**/*.h"]) s.header_dir = "ReactCommon" - if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source() - s.header_mappings_dir = '.' + if ENV['USE_FRAMEWORKS'] header_search_paths = header_search_paths + ["\"$(PODS_TARGET_SRCROOT)/platform/ios\""] end + resolve_use_frameworks(s, header_mappings_dir: ".") + s.pod_target_xcconfig = { "USE_HEADERMAP" => "NO", "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(), "HEADER_SEARCH_PATHS" => header_search_paths.join(' '), diff --git a/packages/react-native/scripts/cocoapods/utils.rb b/packages/react-native/scripts/cocoapods/utils.rb index 537cc7ae6d3e3d..24c7ffd0ce512f 100644 --- a/packages/react-native/scripts/cocoapods/utils.rb +++ b/packages/react-native/scripts/cocoapods/utils.rb @@ -258,7 +258,8 @@ def self.create_header_search_path_for_frameworks(base_folder, pod_name, framewo search_paths = [] # When building using the prebuilt rncore we can't use framework folders as search paths since these aren't created - if ReactNativeCoreUtils.build_rncore_from_source() + # Except for when adding search path for ReactCodegen since it contains source code. + if ReactNativeCoreUtils.build_rncore_from_source() || pod_name === "ReactCodegen" platforms = $RN_PLATFORMS != nil ? $RN_PLATFORMS : [] if platforms.empty?() || platforms.length() == 1 @@ -701,4 +702,15 @@ def self.add_flag_to_map_with_inheritance(map, field, flag) end end end + + def self.resolve_use_frameworks(spec, header_mappings_dir: nil, module_name: nil) + return unless ENV['USE_FRAMEWORKS'] + if module_name + spec.module_name = module_name + end + + if header_mappings_dir != nil && ReactNativeCoreUtils.build_rncore_from_source() + spec.header_mappings_dir = header_mappings_dir + end + end end diff --git a/packages/react-native/scripts/react_native_pods.rb b/packages/react-native/scripts/react_native_pods.rb index 65a30b0a8d6091..223a5ba1d78254 100644 --- a/packages/react-native/scripts/react_native_pods.rb +++ b/packages/react-native/scripts/react_native_pods.rb @@ -231,6 +231,20 @@ def folly_flags() return NewArchitectureHelper.folly_compiler_flags end +# Resolve the spec for use with the USE_FRAMEWORKS environment variable. To avoid each podspec +# to manually specify the header mappings and module name, we can use this helper function. +# This helper will also resolve header mappings if we're building from source. Precompiled +# React-Core will not generate frameworks since their podspec files only contains the +# header files and no source code - so header_mappings should be the same as for without USE_FRAMEWORKS +# +# Parameters: +# - s: the spec to modify +# - header_mappings_dir: the directory to map headers when building Pod header structure +# - module_name: the name of the module when exposed to swift +def resolve_use_frameworks(spec, header_mappings_dir: nil, module_name: nil) + ReactNativePodsUtils.resolve_use_frameworks(spec, :header_mappings_dir => header_mappings_dir, :module_name => module_name) +end + # Add a dependency to a spec, making sure that the HEADER_SERACH_PATHS are set properly. # This function automate the requirement to specify the HEADER_SEARCH_PATHS which was error prone # and hard to pull out properly to begin with.