From c656a07f53aec74ca95be328bce628842d9f6d05 Mon Sep 17 00:00:00 2001 From: Samuel Susla Date: Wed, 19 Feb 2025 07:44:12 -0800 Subject: [PATCH] initialise RN proxy object in bridge Summary: changelog: [internal] fix a deadlock when app that doesn't use bridgeless uses UIKit proxy objects. Reviewed By: jeffreyporter, Dawn-Top Differential Revision: D69855097 --- packages/react-native/React/Fabric/RCTSurfacePresenter.mm | 2 ++ .../react/runtime/platform/ios/ReactCommon/RCTHost.mm | 3 --- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/react-native/React/Fabric/RCTSurfacePresenter.mm b/packages/react-native/React/Fabric/RCTSurfacePresenter.mm index dbea5607fb98..11452ab5602d 100644 --- a/packages/react-native/React/Fabric/RCTSurfacePresenter.mm +++ b/packages/react-native/React/Fabric/RCTSurfacePresenter.mm @@ -18,6 +18,7 @@ #import #import #import +#import #import #import #import @@ -64,6 +65,7 @@ - (instancetype)initWithContextContainer:(ContextContainer::Shared)contextContai bridgelessBindingsExecutor:(std::optional)bridgelessBindingsExecutor { if (self = [super init]) { + RCTInitializeUIKitProxies(); assert(contextContainer && "RuntimeExecutor must be not null."); _runtimeExecutor = runtimeExecutor; _bridgelessBindingsExecutor = bridgelessBindingsExecutor; diff --git a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm index 26d75e51aa02..5142307e8b94 100644 --- a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +++ b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm @@ -12,7 +12,6 @@ #import #import #import -#import #import #import #import @@ -249,8 +248,6 @@ - (RCTFabricSurface *)createSurfaceWithModuleName:(NSString *)moduleName mode:(DisplayMode)displayMode initialProperties:(NSDictionary *)properties { - RCTInitializeUIKitProxies(); - RCTFabricSurface *surface = [[RCTFabricSurface alloc] initWithSurfacePresenter:self.surfacePresenter moduleName:moduleName initialProperties:properties];