Skip to content

Patch for builing issues in RN 0.78 #79

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
alexeyfof opened this issue Apr 2, 2025 · 5 comments
Open

Patch for builing issues in RN 0.78 #79

alexeyfof opened this issue Apr 2, 2025 · 5 comments

Comments

@alexeyfof
Copy link

Hi! 👋

Firstly, thanks for your work on this project! 🙂

Today I used patch-package to patch [email protected] for the project I'm working on.

'React-Codegen/RNExitAppSpec/RNExitAppSpec.h' file not found

I faced this issue after upgraded RN to 0.78

Here is the diff that solved my problem:

diff --git a/node_modules/react-native-exit-app/ios/RNExitApp/RNExitApp.h b/node_modules/react-native-exit-app/ios/RNExitApp/RNExitApp.h
index 50a2135..4a598a3 100644
--- a/node_modules/react-native-exit-app/ios/RNExitApp/RNExitApp.h
+++ b/node_modules/react-native-exit-app/ios/RNExitApp/RNExitApp.h
@@ -7,7 +7,7 @@
 #endif
 
 #if RCT_NEW_ARCH_ENABLED
-#import <React-Codegen/RNExitAppSpec/RNExitAppSpec.h>
+#import <ReactCodegen/RNExitAppSpec/RNExitAppSpec.h>
 #endif
 
 @interface RNExitApp : NSObject <RCTBridgeModule>
diff --git a/node_modules/react-native-exit-app/ios/RNExitApp/RNExitApp.mm b/node_modules/react-native-exit-app/ios/RNExitApp/RNExitApp.mm
index bec5948..f2a8743 100644
--- a/node_modules/react-native-exit-app/ios/RNExitApp/RNExitApp.mm
+++ b/node_modules/react-native-exit-app/ios/RNExitApp/RNExitApp.mm
@@ -3,7 +3,7 @@
 #import "RNExitApp.h"
 
 #if RCT_NEW_ARCH_ENABLED
-#import <RNExitAppSpec/RNExitAppSpec.h>
+#import <ReactCodegen/RNExitAppSpec/RNExitAppSpec.h>
 #endif
 
 @implementation RNExitApp

This issue body was partially generated by patch-package.

@malekkbh
Copy link

malekkbh commented Apr 16, 2025

if you are working with RCT_NEW_ARCH_ENABLED = true

just remove this lines from : "node_modules/react-native-exit-app/ios/RNExitApp/RNExitApp.mm"

#if RCT_NEW_ARCH_ENABLED #import <RNExitAppSpec/RNExitAppSpec.h #endif

@joaquinvaz
Copy link

Thanks!

@AbdullahZareen
Copy link

+1

@ahc2806
Copy link

ahc2806 commented Apr 24, 2025

In my case, this patch didn't solve my problem; I kept getting the same error. I ended up having to update the podspec and iOS files differently to fix the problem.

This patch is working for me:
// patches/react-native-exit-app+2.0.0.patch

diff --git a/node_modules/react-native-exit-app/RNExitApp.podspec b/node_modules/react-native-exit-app/RNExitApp.podspec
index 7290b50..8974588 100644
--- a/node_modules/react-native-exit-app/RNExitApp.podspec
+++ b/node_modules/react-native-exit-app/RNExitApp.podspec
@@ -1,6 +1,6 @@
 require 'json'
 
-packageJson = JSON.parse(File.read('package.json'))
+packageJson = JSON.parse(File.read(File.join(__dir__, "package.json")))
 version = packageJson["version"]
 description = packageJson["description"]
 homepage = packageJson["homepage"]
@@ -11,33 +11,23 @@ iqVersion = version.split('-').first
 
 Pod::Spec.new do |s|
 	s.name           = "RNExitApp"
+
 	s.version        = version
-	s.description    = description
-	s.homepage       = homepage
-	s.summary        = "Exit,close,kill,shutdown app completely for React Native"
 	s.license        = license
+	s.summary        = "Exit,close,kill,shutdown app completely for React Native"
 	s.authors        = author
-	s.source         = { :git => repository, :tag => version }
-	s.platforms      = { :ios => "9.0", :tvos => "11.0" }
-	s.preserve_paths = 'README.md', 'package.json', '*.js'
-	s.source_files   = 'ios/RNExitApp/**/*.{h,m,mm}'
+	s.homepage       = homepage
+	s.description    = description
 	
-	s.dependency 'React-Core'
+	s.platforms      = { :ios => "12.4", :tvos => "12.4" }
+	s.requires_arc = true
 
-	# Don't install the dependencies when we run `pod install` in the old architecture.
-	if ENV["RCT_NEW_ARCH_ENABLED"] == "1"
-	  s.compiler_flags = folly_flags + " -DRCT_NEW_ARCH_ENABLED=1"
-	  s.pod_target_xcconfig    = {
-		"HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"",
-		"OTHER_CPLUSPLUSFLAGS" => "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1",
-		"CLANG_CXX_LANGUAGE_STANDARD" => "c++17"
-	  }
+	s.source         = { :git => repository, :tag => version }
+	s.source_files   = 'ios/RNExitApp/**/*.{h,m,mm}'
   
-	  s.dependency "React-Codegen"
-	  s.dependency "React-RCTFabric"
-	  s.dependency "RCT-Folly"
-	  s.dependency "RCTRequired"
-	  s.dependency "RCTTypeSafety"
-	  s.dependency "ReactCommon/turbomodule/core"
-	end
+	if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then
+    install_modules_dependencies(s)
+  else
+    s.dependency "React-Core"
+  end
 end
diff --git a/node_modules/react-native-exit-app/ios/RNExitApp/RNExitApp.h b/node_modules/react-native-exit-app/ios/RNExitApp/RNExitApp.h
index 50a2135..ef6dec4 100644
--- a/node_modules/react-native-exit-app/ios/RNExitApp/RNExitApp.h
+++ b/node_modules/react-native-exit-app/ios/RNExitApp/RNExitApp.h
@@ -1,19 +1,13 @@
-#if __has_include(<React/RCTBridgeModule.h>)
-#import <React/RCTBridgeModule.h>
-#elif __has_include("RCTBridgeModule.h")
-#import "RCTBridgeModule.h"
+#ifdef RCT_NEW_ARCH_ENABLED
+
+#import <RNExitAppSpec/RNExitAppSpec.h>
+@interface RNExitApp : NSObject <NativeRNExitAppSpec>
+
 #else
-#import "React/RCTBridgeModule.h"
-#endif
 
-#if RCT_NEW_ARCH_ENABLED
-#import <React-Codegen/RNExitAppSpec/RNExitAppSpec.h>
-#endif
+#import <React/RCTBridgeModule.h>
+@interface RNExitApp : NSObject <RCTBridgeModule>s
 
-@interface RNExitApp : NSObject <RCTBridgeModule>
-@end
+#endif
 
-#if RCT_NEW_ARCH_ENABLED
-@interface RNExitApp () <NativeRNExitAppSpec>
 @end
-#endif
diff --git a/node_modules/react-native-exit-app/ios/RNExitApp/RNExitApp.mm b/node_modules/react-native-exit-app/ios/RNExitApp/RNExitApp.mm
index bec5948..2199b8c 100644
--- a/node_modules/react-native-exit-app/ios/RNExitApp/RNExitApp.mm
+++ b/node_modules/react-native-exit-app/ios/RNExitApp/RNExitApp.mm
@@ -2,10 +2,6 @@
 
 #import "RNExitApp.h"
 
-#if RCT_NEW_ARCH_ENABLED
-#import <RNExitAppSpec/RNExitAppSpec.h>
-#endif
-
 @implementation RNExitApp
 
 RCT_EXPORT_MODULE();
@@ -17,11 +13,9 @@ @implementation RNExitApp
 
 # pragma mark - New Architecture
 
-#if RCT_NEW_ARCH_ENABLED
+#ifdef RCT_NEW_ARCH_ENABLED
 
-- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
-    (const facebook::react::ObjCTurboModule::InitParams &)params
-{
+- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:(const facebook::react::ObjCTurboModule::InitParams &)params {
     return std::make_shared<facebook::react::NativeRNExitAppSpecJSI>(params);
 }

@bk-software
Copy link

bk-software commented Apr 29, 2025

@ahc2806 patch didn't work but base on his patch
this one create with the help of AI worked for me.

"react-native-exit-app": "^2.0.0",
// patches/react-native-exit-app+2.0.0.patch

diff --git a/node_modules/react-native-exit-app/RNExitApp.podspec b/node_modules/react-native-exit-app/RNExitApp.podspec
index 7290b50..f40520a 100644
--- a/node_modules/react-native-exit-app/RNExitApp.podspec
+++ b/node_modules/react-native-exit-app/RNExitApp.podspec
@@ -1,6 +1,6 @@
 require 'json'
 
-packageJson = JSON.parse(File.read('package.json'))
+packageJson = JSON.parse(File.read(File.join(__dir__, "package.json")))
 version = packageJson["version"]
 description = packageJson["description"]
 homepage = packageJson["homepage"]
@@ -17,27 +17,15 @@ Pod::Spec.new do |s|
 	s.summary        = "Exit,close,kill,shutdown app completely for React Native"
 	s.license        = license
 	s.authors        = author
+	s.platforms      = { :ios => "12.4", :tvos => "12.4" }
+	s.requires_arc = true
+
 	s.source         = { :git => repository, :tag => version }
-	s.platforms      = { :ios => "9.0", :tvos => "11.0" }
-	s.preserve_paths = 'README.md', 'package.json', '*.js'
 	s.source_files   = 'ios/RNExitApp/**/*.{h,m,mm}'
 
-	s.dependency 'React-Core'
-  
-	# Don't install the dependencies when we run `pod install` in the old architecture.
-	if ENV["RCT_NEW_ARCH_ENABLED"] == "1"
-	  s.compiler_flags = folly_flags + " -DRCT_NEW_ARCH_ENABLED=1"
-	  s.pod_target_xcconfig    = {
-		"HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"",
-		"OTHER_CPLUSPLUSFLAGS" => "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1",
-		"CLANG_CXX_LANGUAGE_STANDARD" => "c++17"
-	  }
-  
-	  s.dependency "React-Codegen"
-	  s.dependency "React-RCTFabric"
-	  s.dependency "RCT-Folly"
-	  s.dependency "RCTRequired"
-	  s.dependency "RCTTypeSafety"
-	  s.dependency "ReactCommon/turbomodule/core"
+	if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then
+		install_modules_dependencies(s)
+	else
+		s.dependency "React-Core"
 	end
 end
diff --git a/node_modules/react-native-exit-app/ios/RNExitApp/RNExitApp.h b/node_modules/react-native-exit-app/ios/RNExitApp/RNExitApp.h
index 50a2135..e669051 100644
--- a/node_modules/react-native-exit-app/ios/RNExitApp/RNExitApp.h
+++ b/node_modules/react-native-exit-app/ios/RNExitApp/RNExitApp.h
@@ -1,19 +1,9 @@
-#if __has_include(<React/RCTBridgeModule.h>)
-#import <React/RCTBridgeModule.h>
-#elif __has_include("RCTBridgeModule.h")
-#import "RCTBridgeModule.h"
+#ifdef RCT_NEW_ARCH_ENABLED
+#import <RNExitAppSpec/RNExitAppSpec.h>
+@interface RNExitApp : NSObject <NativeRNExitAppSpec>
 #else
-#import "React/RCTBridgeModule.h"
-#endif
-
-#if RCT_NEW_ARCH_ENABLED
-#import <React-Codegen/RNExitAppSpec/RNExitAppSpec.h>
-#endif
-
+#import <React/RCTBridgeModule.h>
 @interface RNExitApp : NSObject <RCTBridgeModule>
-@end
+#endif
 
-#if RCT_NEW_ARCH_ENABLED
-@interface RNExitApp () <NativeRNExitAppSpec>
 @end
-#endif
diff --git a/node_modules/react-native-exit-app/ios/RNExitApp/RNExitApp.mm b/node_modules/react-native-exit-app/ios/RNExitApp/RNExitApp.mm
index bec5948..1cdb55b 100644
--- a/node_modules/react-native-exit-app/ios/RNExitApp/RNExitApp.mm
+++ b/node_modules/react-native-exit-app/ios/RNExitApp/RNExitApp.mm
@@ -2,7 +2,7 @@
 
 #import "RNExitApp.h"
 
-#if RCT_NEW_ARCH_ENABLED
+#ifdef RCT_NEW_ARCH_ENABLED
 #import <RNExitAppSpec/RNExitAppSpec.h>
 #endif
 
@@ -17,11 +17,9 @@ RCT_EXPORT_METHOD(exitApp)
 
 # pragma mark - New Architecture
 
-#if RCT_NEW_ARCH_ENABLED
+#ifdef RCT_NEW_ARCH_ENABLED
 
-- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
-    (const facebook::react::ObjCTurboModule::InitParams &)params
-{
+- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:(const facebook::react::ObjCTurboModule::InitParams &)params {
     return std::make_shared<facebook::react::NativeRNExitAppSpecJSI>(params);
 } 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants