mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
fix React-jsitooling build error for use_frameworks build (#50252)
Summary: to resolve use_frameworks build error. this is an edge case happening only when there's objective-c files import to `React_RCTAppDelegate`. Xcode will have `include of non-modular header inside framework module` error originally. this is the generated umbrella header for jsitooling is incorrect. even the header path are correct, they are not modular headers. ~this pr adds a workaround to import header from outside the module.~ updates: this pr uses a forward declaration to prevent exposing the dependency in umbrella header. [IOS] [FIXED] - `JSRuntimeFactoryCAPI.h` build error for `use_frameworks` build Pull Request resolved: https://github.com/facebook/react-native/pull/50252 Test Plan: to reproduce the build error, we can build `USE_FRAMEWORKS=static bundle exec pod install` from rn-tester. we also need to import `React_RCTAppDelegate` from objective-c files. in this case, we can add `import React_RCTAppDelegate;` in rn-tester's main.m ```diff --- a/packages/rn-tester/RNTester/main.m +++ b/packages/rn-tester/RNTester/main.m @@ -8,6 +8,9 @@ #import <UIKit/UIKit.h> #import "AppDelegate.h" +@import React_RCTAppDelegate; +// This also triggers the error +//#import <React_RCTAppDelegate/React-RCTAppDelegate-umbrella.h> int main(int argc, char *argv[]) { ``` Reviewed By: fabriziocucci Differential Revision: D71963188 Pulled By: cipolleschi fbshipit-source-id: 5d566ae5aadb9efc032aacfe32862ea289134f87
This commit is contained in:
committed by
Fabrizio Cucci
parent
0bd7b4eb47
commit
6c907ee11b
@@ -5,13 +5,14 @@
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <react/runtime/JSRuntimeFactoryCAPI.h>
|
||||
|
||||
#pragma once
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
// Forward declarations for umbrella headers.
|
||||
// In implementations, import `<react/runtime/JSRuntimeFactoryCAPI.h>` to obtain the actual type.
|
||||
typedef void *JSRuntimeFactoryRef;
|
||||
|
||||
@protocol RCTJSRuntimeConfiguratorProtocol
|
||||
|
||||
- (JSRuntimeFactoryRef)createJSRuntimeFactory;
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
#import <react/renderer/runtimescheduler/RuntimeScheduler.h>
|
||||
#import <react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h>
|
||||
#import <react/runtime/JSRuntimeFactory.h>
|
||||
#import <react/runtime/JSRuntimeFactoryCAPI.h>
|
||||
|
||||
@implementation RCTRootViewFactoryConfiguration
|
||||
|
||||
|
||||
@@ -48,8 +48,11 @@ Pod::Spec.new do |s|
|
||||
s.header_mappings_dir = "./"
|
||||
end
|
||||
|
||||
s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => header_search_paths.join(" "),
|
||||
"CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard() }
|
||||
s.pod_target_xcconfig = {
|
||||
"HEADER_SEARCH_PATHS" => header_search_paths.join(" "),
|
||||
"CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
|
||||
"DEFINES_MODULE" => "YES",
|
||||
}
|
||||
|
||||
s.dependency "React-cxxreact", version
|
||||
s.dependency "React-jsi", version
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
#include <ReactCommon/RuntimeExecutor.h>
|
||||
#include <cxxreact/MessageQueueThread.h>
|
||||
#include <jsi/jsi.h>
|
||||
@@ -72,3 +74,5 @@ class JSIRuntimeHolder : public JSRuntime {
|
||||
};
|
||||
|
||||
} // namespace facebook::react
|
||||
|
||||
#endif // __cplusplus
|
||||
|
||||
Reference in New Issue
Block a user