From 75f2da23c5d557862cf4b7bcdd8a1445b54d1c31 Mon Sep 17 00:00:00 2001 From: Kevin Gozali Date: Fri, 1 Mar 2019 14:25:29 -0800 Subject: [PATCH] TM iOS: disable remote debugging toggle when TurboModule is active Summary: TurboModule needs sync calls from JS to native, and that's not supported with the current Chrome debugger. Until we have proper solution, disable it to avoid confusion. Reviewed By: PeteTheHeat Differential Revision: D14286383 fbshipit-source-id: e93903bf8fdfc714960d0d58e3f3eb0442c811bd --- React/DevSupport/RCTDevMenu.m | 5 ++++- React/Modules/RCTDevSettings.mm | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/React/DevSupport/RCTDevMenu.m b/React/DevSupport/RCTDevMenu.m index eff6040f8..d631fa5dc 100644 --- a/React/DevSupport/RCTDevMenu.m +++ b/React/DevSupport/RCTDevMenu.m @@ -219,9 +219,12 @@ RCT_EXPORT_MODULE() if (!devSettings.isRemoteDebuggingAvailable) { [items addObject:[RCTDevMenuItem buttonItemWithTitle:@"Remote JS Debugger Unavailable" handler:^{ + NSString *message = RCTTurboModuleEnabled() ? + @"You cannot use remote JS debugging when TurboModule system is enabled" : + @"You need to include the RCTWebSocket library to enable remote JS debugging"; UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Remote JS Debugger Unavailable" - message:@"You need to include the RCTWebSocket library to enable remote JS debugging" + message:message preferredStyle:UIAlertControllerStyleAlert]; __weak typeof(alertController) weakAlertController = alertController; [alertController addAction: diff --git a/React/Modules/RCTDevSettings.mm b/React/Modules/RCTDevSettings.mm index 70454aebc..3a2652c6e 100644 --- a/React/Modules/RCTDevSettings.mm +++ b/React/Modules/RCTDevSettings.mm @@ -220,6 +220,9 @@ RCT_EXPORT_MODULE() - (BOOL)isRemoteDebuggingAvailable { + if (RCTTurboModuleEnabled()) { + return NO; + } Class jsDebuggingExecutorClass = objc_lookUpClass("RCTWebSocketExecutor"); return (jsDebuggingExecutorClass != nil); }