diff --git a/ios/Libsodium.mm b/ios/Libsodium.mm index fbc745de0b351ca6193930a5682e5fa44589e8bf..7f75eaa3e62230435bd634882cdb98cd38ced0b6 100644 --- a/ios/Libsodium.mm +++ b/ios/Libsodium.mm @@ -4,6 +4,12 @@ #import #import "react-native-libsodium.h" +// Orca: RN 0.88 removed RCTCxxBridge.runtime. Under bridgeless the module's bridge is an +// RCTBridgeProxy, which still implements -runtime but no longer declares it publicly. +@protocol OrcaLibsodiumRuntimeProvider +- (void *)runtime; +@end + @implementation Libsodium @synthesize bridge=_bridge; @@ -13,14 +19,14 @@ RCT_EXPORT_MODULE() RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(install) { RCTLogInfo(@"installing libsodium"); - RCTCxxBridge *cxxBridge = (RCTCxxBridge *)self.bridge; - if (!cxxBridge.runtime) { - RCTLogInfo(@"libsodium install failure: no cxx bridge runtime"); + void *runtime = [(id)self.bridge runtime]; + if (!runtime) { + RCTLogInfo(@"libsodium install failure: no bridge runtime"); return nil; } - RCTLogInfo(@"calling installLibsodium with cxx bridge runtime"); - ReactNativeLibsodium::installLibsodium(*(facebook::jsi::Runtime *)cxxBridge.runtime); + RCTLogInfo(@"calling installLibsodium with bridge runtime"); + ReactNativeLibsodium::installLibsodium(*(facebook::jsi::Runtime *)runtime); return nil; }