From f5f11e7373e039e5d0b25be8ce74f1ca993b83c4 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Wed, 6 Mar 2024 13:53:48 +0000 Subject: [PATCH] [RN][iOS][0.72] Fix flipper for Xcode 15.3 --- .../react-native/scripts/cocoapods/utils.rb | 38 ++++++++++++++++++- .../react-native/scripts/react_native_pods.rb | 2 + 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/packages/react-native/scripts/cocoapods/utils.rb b/packages/react-native/scripts/cocoapods/utils.rb index 7221e81bf40529..9fe7d1f5352432 100644 --- a/packages/react-native/scripts/cocoapods/utils.rb +++ b/packages/react-native/scripts/cocoapods/utils.rb @@ -71,7 +71,43 @@ def self.exclude_i386_architecture_while_using_hermes(installer) # Hermes does not support `i386` architecture config.build_settings[key] = "#{current_setting} i386".strip end - end + end + + project.save() + end + end + end + + def self.fix_flipper_for_xcode_15_3(installer) + + installer.pods_project.targets.each do |target| + if target.name == 'Flipper' + file_path = 'Pods/Flipper/xplat/Flipper/FlipperTransportTypes.h' + if !File.exist(file_path) + return + end + + contents = File.read(file_path) + if contents.include?('#include ') + return + end + mod_content = contents.gsub("#pragma once", "#pragma once\n#include ") + File.chmod(0755, file_path) + File.open(file_path, 'w') do |file| + file.puts(mod_content) + end + end + end + end + + def self.set_use_hermes_build_setting(installer, hermes_enabled) + Pod::UI.puts("Setting USE_HERMES build settings") + projects = self.extract_projects(installer) + + projects.each do |project| + project.build_configurations.each do |config| + config.build_settings["USE_HERMES"] = hermes_enabled + end project.save() end diff --git a/packages/react-native/scripts/react_native_pods.rb b/packages/react-native/scripts/react_native_pods.rb index 0c28e6818f9834..981f1efcfe6d42 100644 --- a/packages/react-native/scripts/react_native_pods.rb +++ b/packages/react-native/scripts/react_native_pods.rb @@ -248,6 +248,8 @@ def react_native_post_install( ReactNativePodsUtils.apply_flags_for_fabric(installer, fabric_enabled: fabric_enabled) ReactNativePodsUtils.apply_xcode_15_patch(installer) ReactNativePodsUtils.updateIphoneOSDeploymentTarget(installer) + ReactNativePodsUtils.updateOSDeploymentTarget(installer) + ReactNativePodsUtils.fix_flipper_for_xcode_15_3(installer) NewArchitectureHelper.set_clang_cxx_language_standard_if_needed(installer) is_new_arch_enabled = ENV['RCT_NEW_ARCH_ENABLED'] == "1"