Skip to content

Commit 44af6ca

Browse files
cipolleschifacebook-github-bot
authored andcommitted
Add React-FabricImage pod to solve Circulare dependency between Fabric image component and ImageManager (#37276)
Summary: Pull Request resolved: #37276 When enabling dynamic linking, we had a circulr dependency between Fabric and the Image Manager. Specifically, Image Manager depends on Fabric, but the Image component, in Fabric, is using some implementation specific files from the Image Manager that surface only when enabling the dynamic linking. Xcode fails to find those symbols unless the dependencies are explicitly added to the podspec. This change is technically breaking, but we tried to minimize the breakage by adding the new pod in all the required search paths. ## Changelog [iOS][Breaking] - Add React-FabricImage pod. Reviewed By: NickGerleman Differential Revision: D45517278 fbshipit-source-id: 994aa8c40301c68bf9fecdf46de7833028f0d3c2
1 parent 6d83889 commit 44af6ca

File tree

13 files changed

+136
-16
lines changed

13 files changed

+136
-16
lines changed

packages/react-native/React/React-RCTFabric.podspec

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ header_search_paths = [
3535

3636
if ENV['USE_FRAMEWORKS']
3737
header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\""
38+
header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-FabricImage/React_FabricImage.framework/Headers\""
3839
header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/textlayoutmanager/platform/ios\""
3940
header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/textinput/iostextinput\""
4041
header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/imagemanager/platform/ios\""
@@ -59,7 +60,7 @@ Pod::Spec.new do |s|
5960
s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags
6061
s.header_dir = "React"
6162
s.module_name = "RCTFabric"
62-
s.framework = "JavaScriptCore"
63+
s.framework = ["JavaScriptCore", "MobileCoreServices"]
6364
s.pod_target_xcconfig = {
6465
"HEADER_SEARCH_PATHS" => header_search_paths,
6566
"OTHER_CFLAGS" => "$(inherited) -DRN_FABRIC_ENABLED" + " " + folly_flags,
@@ -72,7 +73,18 @@ Pod::Spec.new do |s|
7273
s.dependency "React-Fabric", version
7374
s.dependency "React-RCTImage", version
7475
s.dependency "React-ImageManager"
76+
s.dependency "React-graphics"
7577
s.dependency "RCT-Folly/Fabric", folly_version
78+
s.dependency "glog"
79+
s.dependency "Yoga"
80+
s.dependency "React-RCTText"
81+
s.dependency "React-FabricImage"
82+
83+
if ENV["USE_HERMES"] == nil || ENV["USE_HERMES"] == "1"
84+
s.dependency "hermes-engine"
85+
else
86+
s.dependency "React-jsi"
87+
end
7688

7789
s.test_spec 'Tests' do |test_spec|
7890
test_spec.source_files = "Tests/**/*.{mm}"

packages/react-native/ReactCommon/React-Fabric.podspec

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,16 @@ Pod::Spec.new do |s|
4747
s.dependency "RCTTypeSafety", version
4848
s.dependency "ReactCommon/turbomodule/core", version
4949
s.dependency "React-jsi", version
50+
s.dependency "React-logger"
51+
s.dependency "glog"
52+
s.dependency "DoubleConversion"
53+
s.dependency "React-Core"
54+
55+
if ENV["USE_HERMES"] == nil || ENV["USE_HERMES"] == "1"
56+
s.dependency "hermes-engine"
57+
else
58+
s.dependency "React-jsi"
59+
end
5060

5161
s.subspec "animations" do |ss|
5262
ss.dependency folly_dep_name, folly_version
@@ -83,11 +93,11 @@ Pod::Spec.new do |s|
8393
"\"$(PODS_TARGET_SRCROOT)/ReactCommon\"",
8494
"\"$(PODS_ROOT)/RCT-Folly\"",
8595
"\"$(PODS_ROOT)/Headers/Private/Yoga\"",
96+
"\"$(PODS_TARGET_SRCROOT)\"",
8697
]
8798

8899
if ENV['USE_FRAMEWORKS']
89100
header_search_path = header_search_path + [
90-
"\"$(PODS_TARGET_SRCROOT)\"",
91101
"\"$(PODS_ROOT)/DoubleConversion\"",
92102
"\"$(PODS_CONFIGURATION_BUILD_DIR)/React-Codegen/React_Codegen.framework/Headers\"",
93103
"\"$(PODS_CONFIGURATION_BUILD_DIR)/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\"",
@@ -121,13 +131,6 @@ Pod::Spec.new do |s|
121131
end
122132

123133
s.subspec "components" do |ss|
124-
ss.subspec "image" do |sss|
125-
sss.dependency folly_dep_name, folly_version
126-
sss.compiler_flags = folly_compiler_flags
127-
sss.source_files = "react/renderer/components/image/**/*.{m,mm,cpp,h}"
128-
sss.exclude_files = "react/renderer/components/image/tests"
129-
sss.header_dir = "react/renderer/components/image"
130-
end
131134

132135
ss.subspec "inputaccessory" do |sss|
133136
sss.dependency folly_dep_name, folly_version
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# Copyright (c) Meta Platforms, Inc. and affiliates.
2+
#
3+
# This source code is licensed under the MIT license found in the
4+
# LICENSE file in the root directory of this source tree.
5+
6+
require "json"
7+
8+
package = JSON.parse(File.read(File.join(__dir__, "..", "package.json")))
9+
version = package['version']
10+
11+
source = { :git => 'https://github.com/facebook/react-native.git' }
12+
if version == '1000.0.0'
13+
# This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
14+
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
15+
else
16+
source[:tag] = "v#{version}"
17+
end
18+
19+
folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32 -Wno-gnu-zero-variadic-macro-arguments'
20+
folly_version = '2021.07.22.00'
21+
folly_dep_name = 'RCT-Folly/Fabric'
22+
boost_compiler_flags = '-Wno-documentation'
23+
react_native_path = ".."
24+
25+
header_search_path = [
26+
"\"$(PODS_ROOT)/boost\"",
27+
"\"$(PODS_TARGET_SRCROOT)/ReactCommon\"",
28+
"\"$(PODS_ROOT)/RCT-Folly\"",
29+
"\"$(PODS_ROOT)/Headers/Private/Yoga\"",
30+
]
31+
32+
if ENV['USE_FRAMEWORKS']
33+
header_search_path = header_search_path + [
34+
"\"$(PODS_TARGET_SRCROOT)\"",
35+
"\"$(PODS_ROOT)/DoubleConversion\"",
36+
"\"$(PODS_CONFIGURATION_BUILD_DIR)/React-Codegen/React_Codegen.framework/Headers\"",
37+
"\"$(PODS_CONFIGURATION_BUILD_DIR)/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\"",
38+
"\"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/imagemanager/platform/ios\"",
39+
"\"$(PODS_TARGET_SRCROOT)/react/renderer/textlayoutmanager/platform/ios\"",
40+
"\"$(PODS_TARGET_SRCROOT)/react/renderer/components/textinput/iostextinput\"",
41+
"\"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\""
42+
]
43+
end
44+
45+
Pod::Spec.new do |s|
46+
s.name = "React-FabricImage"
47+
s.version = version
48+
s.summary = "Image Component for Fabric for React Native."
49+
s.homepage = "https://reactnative.dev/"
50+
s.license = package["license"]
51+
s.author = "Meta Platforms, Inc. and its affiliates"
52+
s.platforms = { :ios => min_ios_version_supported }
53+
s.source = source
54+
s.source_files = "react/renderer/components/image/**/*.{m,mm,cpp,h}"
55+
s.exclude_files = "react/renderer/components/image/tests"
56+
s.header_dir = "react/renderer/components/image"
57+
s.compiler_flags = folly_compiler_flags
58+
s.pod_target_xcconfig = { "USE_HEADERMAP" => "YES",
59+
"CLANG_CXX_LANGUAGE_STANDARD" => "c++17",
60+
"HEADER_SEARCH_PATHS" => header_search_path.join(" ")
61+
}
62+
63+
if ENV['USE_FRAMEWORKS']
64+
s.header_mappings_dir = './'
65+
s.module_name = 'React_FabricImage'
66+
end
67+
68+
s.dependency folly_dep_name, folly_version
69+
s.dependency "React-graphics", version
70+
s.dependency "React-jsiexecutor", version
71+
s.dependency "RCTRequired", version
72+
s.dependency "RCTTypeSafety", version
73+
s.dependency "ReactCommon/turbomodule/core", version
74+
s.dependency "React-jsi", version
75+
s.dependency "React-logger"
76+
s.dependency "glog"
77+
s.dependency "DoubleConversion"
78+
s.dependency "React-ImageManager"
79+
s.dependency "React-Fabric"
80+
s.dependency "Yoga"
81+
82+
if ENV["USE_HERMES"] == nil || ENV["USE_HERMES"] == "1"
83+
s.dependency "hermes-engine"
84+
else
85+
s.dependency "React-jsi"
86+
end
87+
end

packages/react-native/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,5 +55,7 @@ Pod::Spec.new do |s|
5555

5656
if using_hermes
5757
s.dependency "hermes-engine"
58+
else
59+
s.dependency "React-jsi"
5860
end
5961
end

packages/react-native/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,4 +61,5 @@ Pod::Spec.new do |s|
6161
s.dependency "React-Fabric"
6262
s.dependency "React-Core/Default"
6363
s.dependency "React-RCTImage"
64+
s.dependency "glog"
6465
end

packages/react-native/scripts/cocoapods/__tests__/codegen_utils-test.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -562,7 +562,8 @@ def get_podspec_no_fabric_no_script
562562
"ReactCommon/turbomodule/bridging": [],
563563
"ReactCommon/turbomodule/core": [],
564564
"hermes-engine": [],
565-
'React-NativeModulesApple': [],
565+
"React-NativeModulesApple": [],
566+
"glog": []
566567
}
567568
}
568569
end
@@ -586,7 +587,7 @@ def get_podspec_when_use_frameworks
586587
specs = get_podspec_no_fabric_no_script()
587588

588589
specs["pod_target_xcconfig"]["FRAMEWORK_SEARCH_PATHS"].concat([])
589-
specs["pod_target_xcconfig"]["HEADER_SEARCH_PATHS"].concat(" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_TARGET_SRCROOT)\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-Fabric/React_Fabric.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-graphics/React_graphics.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\" \"$(PODS_CONFIGURATION_BUILD_DIR)/ReactCommon/ReactCommon.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-NativeModulesApple/React_NativeModulesApple.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-RCTFabric/RCTFabric.framework/Headers\"")
590+
specs["pod_target_xcconfig"]["HEADER_SEARCH_PATHS"].concat(" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_TARGET_SRCROOT)\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-Fabric/React_Fabric.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-FabricImage/React_FabricImage.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-graphics/React_graphics.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\" \"$(PODS_CONFIGURATION_BUILD_DIR)/ReactCommon/ReactCommon.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-NativeModulesApple/React_NativeModulesApple.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-RCTFabric/RCTFabric.framework/Headers\"")
590591

591592
specs[:dependencies].merge!({
592593
'React-graphics': [],

packages/react-native/scripts/cocoapods/__tests__/fabric-test.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,10 @@ def test_setupFabric_whenNewArchEnabled_installPods
4646
end
4747

4848
def check_installed_pods(prefix)
49-
assert_equal($podInvocationCount, 5)
49+
assert_equal(6, $podInvocationCount)
5050

5151
check_pod("React-Fabric", :path => "#{prefix}/ReactCommon")
52+
check_pod("React-FabricImage", :path => "#{prefix}/ReactCommon")
5253
check_pod("React-graphics", :path => "#{prefix}/ReactCommon/react/renderer/graphics")
5354
check_pod("React-RCTFabric", :path => "#{prefix}/React", :modular_headers => true)
5455
check_pod("RCT-Folly/Fabric", :podspec => "#{prefix}/third-party-podspecs/RCT-Folly.podspec")

packages/react-native/scripts/cocoapods/__tests__/new_architecture-test.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ def test_installModulesDependencies_whenNewArchEnabledAndNewArchAndNoSearchPaths
129129

130130
# Assert
131131
assert_equal(spec.compiler_flags, NewArchitectureHelper.folly_compiler_flags)
132-
assert_equal(spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"], "\"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/Headers/Private/Yoga\" \"$(PODS_ROOT)/DoubleConversion\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\"")
132+
assert_equal(spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"], "\"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/Headers/Private/Yoga\" \"$(PODS_ROOT)/DoubleConversion\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-FabricImage/React_FabricImage.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\"")
133133
assert_equal(spec.pod_target_xcconfig["CLANG_CXX_LANGUAGE_STANDARD"], "c++17")
134134
assert_equal(spec.pod_target_xcconfig["OTHER_CPLUSPLUSFLAGS"], "$(inherited) -DRCT_NEW_ARCH_ENABLED=1 -DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1")
135135
assert_equal(
@@ -143,7 +143,8 @@ def test_installModulesDependencies_whenNewArchEnabledAndNewArchAndNoSearchPaths
143143
{ :dependency_name => "RCTTypeSafety" },
144144
{ :dependency_name => "ReactCommon/turbomodule/bridging" },
145145
{ :dependency_name => "ReactCommon/turbomodule/core" },
146-
{ :dependency_name => "React-NativeModulesApple" }
146+
{ :dependency_name => "React-NativeModulesApple" },
147+
{ :dependency_name => "hermes-engine" }
147148
])
148149
end
149150

@@ -161,7 +162,7 @@ def test_installModulesDependencies_whenNewArchDisabledAndSearchPathsAndCompiler
161162

162163
# Assert
163164
assert_equal(spec.compiler_flags, "-Wno-nullability-completeness #{NewArchitectureHelper.folly_compiler_flags}")
164-
assert_equal(spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"], "#{other_flags} \"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/Headers/Private/Yoga\" \"$(PODS_ROOT)/DoubleConversion\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\"")
165+
assert_equal(spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"], "#{other_flags} \"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/Headers/Private/Yoga\" \"$(PODS_ROOT)/DoubleConversion\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-FabricImage/React_FabricImage.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\"")
165166
assert_equal(spec.pod_target_xcconfig["CLANG_CXX_LANGUAGE_STANDARD"], "c++17")
166167
assert_equal(
167168
spec.dependencies,

packages/react-native/scripts/cocoapods/__tests__/utils-test.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -577,7 +577,7 @@ def test_updateSearchPaths_whenUseFrameworks_addsSearchPaths
577577
if pod_name == "SecondTarget"
578578
target_installation_result.native_target.build_configurations.each do |config|
579579
received_search_path = config.build_settings["HEADER_SEARCH_PATHS"]
580-
expected_Search_path = "$(inherited) \"$(PODS_ROOT)/RCT-Folly\" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_ROOT)/boost\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Codegen/React_Codegen.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Graphics/React_graphics.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/imagemanager/platform/ios\""
580+
expected_Search_path = "$(inherited) \"$(PODS_ROOT)/RCT-Folly\" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_ROOT)/boost\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Codegen/React_Codegen.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-FabricImage/React_FabricImage.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Graphics/React_graphics.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/imagemanager/platform/ios\""
581581
assert_equal(received_search_path, expected_Search_path)
582582
end
583583
else

packages/react-native/scripts/cocoapods/codegen_utils.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ def get_react_codegen_spec(package_json_file, folly_version: '2021.07.22.00', fa
9292
"\"$(PODS_ROOT)/DoubleConversion\"",
9393
"\"$(PODS_TARGET_SRCROOT)\"",
9494
"\"$(PODS_CONFIGURATION_BUILD_DIR)/React-Fabric/React_Fabric.framework/Headers\"",
95+
"\"$(PODS_CONFIGURATION_BUILD_DIR)/React-FabricImage/React_FabricImage.framework/Headers\"",
9596
"\"$(PODS_CONFIGURATION_BUILD_DIR)/React-graphics/React_graphics.framework/Headers\"",
9697
"\"$(PODS_CONFIGURATION_BUILD_DIR)/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\"",
9798
"\"$(PODS_CONFIGURATION_BUILD_DIR)/ReactCommon/ReactCommon.framework/Headers\"",
@@ -129,6 +130,7 @@ def get_react_codegen_spec(package_json_file, folly_version: '2021.07.22.00', fa
129130
"ReactCommon/turbomodule/bridging": [],
130131
"ReactCommon/turbomodule/core": [],
131132
"React-NativeModulesApple": [],
133+
"glog": [],
132134
}
133135
}
134136

packages/react-native/scripts/cocoapods/fabric.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,5 @@ def setup_fabric!(react_native_path: "../node_modules/react-native", new_arch_en
1313
pod 'React-RCTFabric', :path => "#{react_native_path}/React", :modular_headers => true
1414
pod 'React-ImageManager', :path => "#{react_native_path}/ReactCommon/react/renderer/imagemanager/platform/ios"
1515
pod 'RCT-Folly/Fabric', :podspec => "#{react_native_path}/third-party-podspecs/RCT-Folly.podspec"
16+
pod 'React-FabricImage', :path => "#{react_native_path}/ReactCommon"
1617
end

packages/react-native/scripts/cocoapods/new_architecture.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ def self.install_modules_dependencies(spec, new_arch_enabled, folly_version)
9393
header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers\""
9494
header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\""
9595
header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\""
96+
header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-FabricImage/React_FabricImage.framework/Headers\""
9697
header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers\""
9798
header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core\""
9899
header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\""
@@ -118,6 +119,12 @@ def self.install_modules_dependencies(spec, new_arch_enabled, folly_version)
118119
spec.dependency "ReactCommon/turbomodule/bridging"
119120
spec.dependency "ReactCommon/turbomodule/core"
120121
spec.dependency "React-NativeModulesApple"
122+
123+
if ENV["USE_HERMES"] == nil || ENV["USE_HERMES"] == "1"
124+
spec.dependency "hermes-engine"
125+
else
126+
spec.dependency "React-jsi"
127+
end
121128
end
122129

123130
spec.pod_target_xcconfig = current_config

0 commit comments

Comments
 (0)