From 0f8ef32830a486547c4d2f0b46846e2bc673fa5a Mon Sep 17 00:00:00 2001 From: Samuel Susla Date: Wed, 19 Feb 2025 09:29:26 -0800 Subject: [PATCH] initialise RN proxy object in bridge (#49527) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/49527 changelog: [internal] fix a deadlock when app that doesn't use bridgeless uses UIKit proxy objects. Reviewed By: jeffreyporter, Dawn-Top Differential Revision: D69855097 fbshipit-source-id: a158daa2a6de1a0aebfb9fbf3d758ffa3afec7be --- 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 dbea5607fb9..11452ab5602 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 @@ using namespace facebook::react; 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 26d75e51aa0..5142307e8b9 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 @@ class RCTHostHostTargetDelegate : public facebook::react::jsinspector_modern::Ho mode:(DisplayMode)displayMode initialProperties:(NSDictionary *)properties { - RCTInitializeUIKitProxies(); - RCTFabricSurface *surface = [[RCTFabricSurface alloc] initWithSurfacePresenter:self.surfacePresenter moduleName:moduleName initialProperties:properties];