Skip to content

Commit 735d06c

Browse files
committed
[LOCAL] Update Xcode 15 patches to be more robust
1 parent 964872d commit 735d06c

File tree

2 files changed

+20
-14
lines changed

2 files changed

+20
-14
lines changed

scripts/cocoapods/__tests__/utils-test.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -566,7 +566,7 @@ def test_applyXcode15Patch_whenXcodebuild15_correctlyAppliesNecessaryPatch
566566
# Assert
567567
user_project_mock.build_configurations.each do |config|
568568
assert_equal("$(inherited) _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION", config.build_settings["GCC_PREPROCESSOR_DEFINITIONS"])
569-
assert_equal("$(inherited) -Wl -ld_classic ", config.build_settings["OTHER_LDFLAGS"])
569+
assert_equal("$(inherited) -Wl -ld_classic", config.build_settings["OTHER_LDFLAGS"])
570570
end
571571

572572
# User project and Pods project
@@ -616,7 +616,7 @@ def test_applyXcode15Patch_whenXcodebuild14ButProjectHasSettings_correctlyRemove
616616
# Assert
617617
user_project_mock.build_configurations.each do |config|
618618
assert_equal("$(inherited) _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION", config.build_settings["GCC_PREPROCESSOR_DEFINITIONS"])
619-
assert_equal("$(inherited) ", config.build_settings["OTHER_LDFLAGS"])
619+
assert_equal("$(inherited)", config.build_settings["OTHER_LDFLAGS"])
620620
end
621621

622622
# User project and Pods project

scripts/cocoapods/utils.rb

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ def self.exclude_i386_architecture_while_using_hermes(installer)
6060
.push(installer.pods_project)
6161

6262

63-
# Hermes does not support `i386` architecture
63+
# Hermes does not support 'i386' architecture
6464
excluded_archs_default = ReactNativePodsUtils.has_pod(installer, 'hermes-engine') ? "i386" : ""
6565

6666
projects.each do |project|
@@ -174,7 +174,7 @@ def self.apply_xcode_15_patch(installer, xcodebuild_manager: Xcodebuild)
174174
if self.is_using_xcode15_or_greter(:xcodebuild_manager => xcodebuild_manager)
175175
self.add_value_to_setting_if_missing(config, other_ld_flags_key, xcode15_compatibility_flags)
176176
else
177-
self.remove_value_to_setting_if_present(config, other_ld_flags_key, xcode15_compatibility_flags)
177+
self.remove_value_from_setting_if_present(config, other_ld_flags_key, xcode15_compatibility_flags)
178178
end
179179
end
180180
project.save()
@@ -255,20 +255,26 @@ def self.safe_init(config, setting_name)
255255

256256
def self.add_value_to_setting_if_missing(config, setting_name, value)
257257
old_config = config.build_settings[setting_name]
258-
if !old_config.include?(value)
259-
config.build_settings[setting_name] << value
258+
if old_config.is_a?(Array)
259+
old_config = old_config.join(" ")
260+
end
261+
262+
trimmed_value = value.strip()
263+
if !old_config.include?(trimmed_value)
264+
config.build_settings[setting_name] = "#{old_config.strip()} #{trimmed_value}".strip()
260265
end
261266
end
262267

263-
def self.remove_value_to_setting_if_present(config, setting_name, value)
268+
def self.remove_value_from_setting_if_present(config, setting_name, value)
264269
old_config = config.build_settings[setting_name]
265-
if old_config.include?(value)
266-
# Old config can be either an Array or a String
267-
if old_config.is_a?(Array)
268-
old_config = old_config.join(" ")
269-
end
270-
new_config = old_config.gsub(value, "")
271-
config.build_settings[setting_name] = new_config
270+
if old_config.is_a?(Array)
271+
old_config = old_config.join(" ")
272+
end
273+
274+
trimmed_value = value.strip()
275+
if old_config.include?(trimmed_value)
276+
new_config = old_config.gsub(trimmed_value, "")
277+
config.build_settings[setting_name] = new_config.strip()
272278
end
273279
end
274280

0 commit comments

Comments
 (0)