Skip to content

Commit ce0ff34

Browse files
committed
[Local] Xcode 15 patch
1 parent 14361bf commit ce0ff34

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
@@ -480,7 +480,7 @@ def test_applyXcode15Patch_whenXcodebuild14_correctlyAppliesNecessaryPatch
480480
# Assert
481481
user_project_mock.build_configurations.each do |config|
482482
assert_equal("$(inherited) _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION", config.build_settings["GCC_PREPROCESSOR_DEFINITIONS"])
483-
assert_equal("$(inherited) ", config.build_settings["OTHER_LDFLAGS"])
483+
assert_equal("$(inherited)", config.build_settings["OTHER_LDFLAGS"])
484484
end
485485

486486
# User project and Pods project
@@ -527,7 +527,7 @@ def test_applyXcode15Patch_whenXcodebuild15_correctlyAppliesNecessaryPatch
527527
# Assert
528528
user_project_mock.build_configurations.each do |config|
529529
assert_equal("$(inherited) _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION", config.build_settings["GCC_PREPROCESSOR_DEFINITIONS"])
530-
assert_equal("$(inherited) -Wl -ld_classic ", config.build_settings["OTHER_LDFLAGS"])
530+
assert_equal("$(inherited) -Wl -ld_classic", config.build_settings["OTHER_LDFLAGS"])
531531
end
532532

533533
# 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|
@@ -150,7 +150,7 @@ def self.apply_xcode_15_patch(installer, xcodebuild_manager: Xcodebuild)
150150
if self.is_using_xcode15_or_greter(:xcodebuild_manager => xcodebuild_manager)
151151
self.add_value_to_setting_if_missing(config, other_ld_flags_key, xcode15_compatibility_flags)
152152
else
153-
self.remove_value_to_setting_if_present(config, other_ld_flags_key, xcode15_compatibility_flags)
153+
self.remove_value_from_setting_if_present(config, other_ld_flags_key, xcode15_compatibility_flags)
154154
end
155155
end
156156
project.save()
@@ -263,20 +263,26 @@ def self.safe_init(config, setting_name)
263263

264264
def self.add_value_to_setting_if_missing(config, setting_name, value)
265265
old_config = config.build_settings[setting_name]
266-
if !old_config.include?(value)
267-
config.build_settings[setting_name] << value
266+
if old_config.is_a?(Array)
267+
old_config = old_config.join(" ")
268+
end
269+
270+
trimmed_value = value.strip()
271+
if !old_config.include?(trimmed_value)
272+
config.build_settings[setting_name] = "#{old_config.strip()} #{trimmed_value}".strip()
268273
end
269274
end
270275

271-
def self.remove_value_to_setting_if_present(config, setting_name, value)
276+
def self.remove_value_from_setting_if_present(config, setting_name, value)
272277
old_config = config.build_settings[setting_name]
273-
if old_config.include?(value)
274-
# Old config can be either an Array or a String
275-
if old_config.is_a?(Array)
276-
old_config = old_config.join(" ")
277-
end
278-
new_config = old_config.gsub(value, "")
279-
config.build_settings[setting_name] = new_config
278+
if old_config.is_a?(Array)
279+
old_config = old_config.join(" ")
280+
end
281+
282+
trimmed_value = value.strip()
283+
if old_config.include?(trimmed_value)
284+
new_config = old_config.gsub(trimmed_value, "")
285+
config.build_settings[setting_name] = new_config.strip()
280286
end
281287
end
282288

0 commit comments

Comments
 (0)