Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Not compatible with default architecture 0.75.4 on IOS #1274

Open
lucaswitch opened this issue Oct 9, 2024 · 10 comments
Open

Not compatible with default architecture 0.75.4 on IOS #1274

lucaswitch opened this issue Oct 9, 2024 · 10 comments

Comments

@lucaswitch
Copy link
Contributor

Crash on trying to add the library on a brand 0.75.4 react-native app.

Just trying the library on bare react-native app with latest version.
It builds but crashes as soon ble-manager is added through js bindings on the app.

Details:
Screenshot 2024-10-09 at 15 40 48

What we know:
Looks like interop works for most of ble-manager methods as we can see on "methods" property on the stack trace.
27 of 34 methods are being correctly exported to the new arch.
Probably we need to investigate further why that happens with interop layer and react-native-ble-manager.

Also we all know this is happening because since react-native 0.74, bridge was removed but since react-native team added a interop layer for backward compability as discussed here: reactwg/react-native-new-architecture#175 to support most of used libraries without having to changing the current scope of those libraries.

Screenshot 2024-10-09 at 15 46 34

It still works with bridgeless disabled.
But i think we need to make the adjusts to support bridgeless interop layer(first) then actually add the new turbo methods as discussed here: https://github.com/reactwg/react-native-new-architecture/blob/main/docs/backwards-compat-turbo-modules.md

Full XCode stacktrace:
#0 0x00000001fa607dc4 in _platform_strlen () #1 0x00000001009033fc in std::__1::__constexpr_strlen[abi:v160006](char const*) at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/cstring:114 #2 0x00000001009032fc in std::__1::char_traits<char>::length(char const*) at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__string/char_traits.h:220 #3 0x0000000100903280 in std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::basic_string[abi:v160006]<std::nullptr_t>(char const*) at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/string:882 #4 0x0000000100902124 in std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::basic_string[abi:v160006]<std::nullptr_t>(char const*) at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/string:880 #5 0x000000010119c628 in facebook::react::(anonymous namespace)::parseExportedMethods(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, objc_class*) at /Users/lucas/Documents/impeto/metabolic-app/node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm:126 #6 0x000000010119bd24 in facebook::react::ObjCInteropTurboModule::ObjCInteropTurboModule(facebook::react::ObjCTurboModule::InitParams const&) at /Users/lucas/Documents/impeto/metabolic-app/node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm:188 #7 0x000000010119d5fc in facebook::react::ObjCInteropTurboModule::ObjCInteropTurboModule(facebook::react::ObjCTurboModule::InitParams const&) at /Users/lucas/Documents/impeto/metabolic-app/node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm:187 #8 0x00000001011d6ab8 in facebook::react::ObjCInteropTurboModule* std::__1::construct_at[abi:v160006]<facebook::react::ObjCInteropTurboModule, facebook::react::ObjCTurboModule::InitParams&, facebook::react::ObjCInteropTurboModule*>(facebook::react::ObjCInteropTurboModule*, facebook::react::ObjCTurboModule::InitParams&) at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__memory/construct_at.h:38 #9 0x00000001011d68d8 in void std::__1::allocator_traits<std::__1::allocator<facebook::react::ObjCInteropTurboModule>>::construct[abi:v160006]<facebook::react::ObjCInteropTurboModule, facebook::react::ObjCTurboModule::InitParams&, void, void>(std::__1::allocator<facebook::react::ObjCInteropTurboModule>&, facebook::react::ObjCInteropTurboModule*, facebook::react::ObjCTurboModule::InitParams&) at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__memory/allocator_traits.h:304 #10 0x00000001011d6804 in std::__1::__shared_ptr_emplace<facebook::react::ObjCInteropTurboModule, std::__1::allocator<facebook::react::ObjCInteropTurboModule>>::__shared_ptr_emplace[abi:v160006]<facebook::react::ObjCTurboModule::InitParams&>(std::__1::allocator<facebook::react::ObjCInteropTurboModule>, facebook::react::ObjCTurboModule::InitParams&) at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__memory/shared_ptr.h:284 #11 0x00000001011d64f0 in std::__1::__shared_ptr_emplace<facebook::react::ObjCInteropTurboModule, std::__1::allocator<facebook::react::ObjCInteropTurboModule>>::__shared_ptr_emplace[abi:v160006]<facebook::react::ObjCTurboModule::InitParams&>(std::__1::allocator<facebook::react::ObjCInteropTurboModule>, facebook::react::ObjCTurboModule::InitParams&) at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__memory/shared_ptr.h:276 #12 0x00000001011d63f8 in std::__1::shared_ptr<facebook::react::ObjCInteropTurboModule> std::__1::allocate_shared[abi:v160006]<facebook::react::ObjCInteropTurboModule, std::__1::allocator<facebook::react::ObjCInteropTurboModule>, facebook::react::ObjCTurboModule::InitParams&, void>(std::__1::allocator<facebook::react::ObjCInteropTurboModule> const&, facebook::react::ObjCTurboModule::InitParams&) at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__memory/shared_ptr.h:995 #13 0x00000001011cb710 in std::__1::shared_ptr<facebook::react::ObjCInteropTurboModule> std::__1::make_shared[abi:v160006]<facebook::react::ObjCInteropTurboModule, facebook::react::ObjCTurboModule::InitParams&, void>(facebook::react::ObjCTurboModule::InitParams&) at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__memory/shared_ptr.h:1004 #14 0x00000001011cb48c in -[RCTTurboModuleManager provideLegacyModule:] at /Users/lucas/Documents/impeto/metabolic-app/node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm:470 #15 0x00000001011dc3bc in -[RCTTurboModuleManager installJSBindings:]::$_1::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) const at /Users/lucas/Documents/impeto/metabolic-app/node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm:959 #16 0x00000001011dc330 in decltype(std::declval<-[RCTTurboModuleManager installJSBindings:]::$_1&>()(std::declval<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&>())) std::__1::__invoke[abi:v160006]<-[RCTTurboModuleManager installJSBindings:]::$_1&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&>(-[RCTTurboModuleManager installJSBindings:]::$_1&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__functional/invoke.h:394 #17 0x00000001011dc2d8 in std::__1::shared_ptr<facebook::react::TurboModule> std::__1::__invoke_void_return_wrapper<std::__1::shared_ptr<facebook::react::TurboModule>, false>::__call<-[RCTTurboModuleManager installJSBindings:]::$_1&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&>(-[RCTTurboModuleManager installJSBindings:]::$_1&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__functional/invoke.h:478 #18 0x00000001011dc2a4 in std::__1::__function::__alloc_func<-[RCTTurboModuleManager installJSBindings:]::$_1, std::__1::allocator<-[RCTTurboModuleManager installJSBindings:]::$_1>, std::__1::shared_ptr<facebook::react::TurboModule> (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)>::operator()[abi:v160006](std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__functional/function.h:185 #19 0x00000001011daf54 in std::__1::__function::__func<-[RCTTurboModuleManager installJSBindings:]::$_1, std::__1::allocator<-[RCTTurboModuleManager installJSBindings:]::$_1>, std::__1::shared_ptr<facebook::react::TurboModule> (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)>::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__functional/function.h:356 #20 0x0000000101674574 in std::__1::__function::__value_func<std::__1::shared_ptr<facebook::react::TurboModule> (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)>::operator()[abi:v160006](std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) const at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__functional/function.h:510 #21 0x0000000101670cf8 in std::__1::function<std::__1::shared_ptr<facebook::react::TurboModule> (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)>::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) const at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__functional/function.h:1156 #22 0x0000000101670a28 in facebook::react::TurboModuleBinding::getModule(facebook::jsi::Runtime&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) const at /Users/lucas/Documents/impeto/metabolic-app/node_modules/react-native/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp:137 #23 0x0000000101673ed4 in facebook::react::BridgelessNativeModuleProxy::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&) at /Users/lucas/Documents/impeto/metabolic-app/node_modules/react-native/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp:46 #24 0x0000000100ade4ec in facebook::jsi::DecoratedHostObject::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&) at /Users/lucas/Documents/impeto/metabolic-app/ios/Pods/Headers/Public/React-jsi/jsi/decorator.h:70 #25 0x00000001083140a0 in facebook::hermes::HermesRuntimeImpl::JsiProxy::get(hermes::vm::SymbolID) () #26 0x00000001083f4214 in hermes::vm::JSObject::getNamedWithReceiver_RJS(hermes::vm::Handle<hermes::vm::JSObject>, hermes::vm::Runtime&, hermes::vm::SymbolID, hermes::vm::Handle<hermes::vm::HermesValue>, hermes::vm::PropOpFlags, hermes::vm::PropertyCacheEntry*) () #27 0x00000001083dd438 in hermes::vm::CallResult<hermes::vm::HermesValue, (hermes::vm::detail::CallResultSpecialize)2> hermes::vm::Interpreter::interpretFunction<false, false>(hermes::vm::Runtime&, hermes::vm::InterpreterState&) () #28 0x00000001083dab58 in hermes::vm::Runtime::interpretFunctionImpl(hermes::vm::CodeBlock*) () #29 0x00000001083c1d28 in hermes::vm::JSFunction::_callImpl(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime&) () #30 0x00000001083c06d0 in hermes::vm::Callable::executeCall(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime&, hermes::vm::Handle<hermes::vm::HermesValue>, hermes::vm::Handle<hermes::vm::HermesValue>, hermes::vm::Handle<hermes::vm::JSObject>) () #31 0x000000010847faa8 in hermes::vm::functionPrototypeApply(void*, hermes::vm::Runtime&, hermes::vm::NativeArgs) () #32 0x00000001083c1a54 in hermes::vm::NativeFunction::_nativeCall(hermes::vm::NativeFunction*, hermes::vm::Runtime&) () #33 0x00000001083db470 in hermes::vm::CallResult<hermes::vm::HermesValue, (hermes::vm::detail::CallResultSpecialize)2> hermes::vm::Interpreter::interpretFunction<false, false>(hermes::vm::Runtime&, hermes::vm::InterpreterState&) () #34 0x00000001083dab58 in hermes::vm::Runtime::interpretFunctionImpl(hermes::vm::CodeBlock*) () #35 0x00000001083c1d28 in hermes::vm::JSFunction::_callImpl(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime&) () #36 0x00000001083bffd8 in hermes::vm::Callable::executeCall3(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime&, hermes::vm::Handle<hermes::vm::HermesValue>, hermes::vm::HermesValue, hermes::vm::HermesValue, hermes::vm::HermesValue, bool) () #37 0x00000001084396d8 in hermes::vm::arrayPrototypeForEach(void*, hermes::vm::Runtime&, hermes::vm::NativeArgs) () #38 0x00000001083c1a54 in hermes::vm::NativeFunction::_nativeCall(hermes::vm::NativeFunction*, hermes::vm::Runtime&) () #39 0x00000001083db470 in hermes::vm::CallResult<hermes::vm::HermesValue, (hermes::vm::detail::CallResultSpecialize)2> hermes::vm::Interpreter::interpretFunction<false, false>(hermes::vm::Runtime&, hermes::vm::InterpreterState&) () #40 0x00000001083dab58 in hermes::vm::Runtime::interpretFunctionImpl(hermes::vm::CodeBlock*) () #41 0x00000001083c1d28 in hermes::vm::JSFunction::_callImpl(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime&) () #42 0x00000001083bffd8 in hermes::vm::Callable::executeCall3(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime&, hermes::vm::Handle<hermes::vm::HermesValue>, hermes::vm::HermesValue, hermes::vm::HermesValue, hermes::vm::HermesValue, bool) () #43 0x00000001084396d8 in hermes::vm::arrayPrototypeForEach(void*, hermes::vm::Runtime&, hermes::vm::NativeArgs) () #44 0x00000001083c1a54 in hermes::vm::NativeFunction::_nativeCall(hermes::vm::NativeFunction*, hermes::vm::Runtime&) () #45 0x00000001083db470 in hermes::vm::CallResult<hermes::vm::HermesValue, (hermes::vm::detail::CallResultSpecialize)2> hermes::vm::Interpreter::interpretFunction<false, false>(hermes::vm::Runtime&, hermes::vm::InterpreterState&) () #46 0x00000001083dab58 in hermes::vm::Runtime::interpretFunctionImpl(hermes::vm::CodeBlock*) () #47 0x00000001083c1d28 in hermes::vm::JSFunction::_callImpl(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime&) () #48 0x00000001083bffd8 in hermes::vm::Callable::executeCall3(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime&, hermes::vm::Handle<hermes::vm::HermesValue>, hermes::vm::HermesValue, hermes::vm::HermesValue, hermes::vm::HermesValue, bool) () #49 0x00000001084396d8 in hermes::vm::arrayPrototypeForEach(void*, hermes::vm::Runtime&, hermes::vm::NativeArgs) () #50 0x00000001083c1a54 in hermes::vm::NativeFunction::_nativeCall(hermes::vm::NativeFunction*, hermes::vm::Runtime&) () #51 0x00000001083db470 in hermes::vm::CallResult<hermes::vm::HermesValue, (hermes::vm::detail::CallResultSpecialize)2> hermes::vm::Interpreter::interpretFunction<false, false>(hermes::vm::Runtime&, hermes::vm::InterpreterState&) () #52 0x00000001083dab58 in hermes::vm::Runtime::interpretFunctionImpl(hermes::vm::CodeBlock*) () #53 0x00000001083c1d28 in hermes::vm::JSFunction::_callImpl(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime&) () #54 0x00000001083c1578 in hermes::vm::BoundFunction::_boundCall(hermes::vm::BoundFunction*, hermes::inst::Inst const*, hermes::vm::Runtime&) () #55 0x00000001083c06d0 in hermes::vm::Callable::executeCall(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime&, hermes::vm::Handle<hermes::vm::HermesValue>, hermes::vm::Handle<hermes::vm::HermesValue>, hermes::vm::Handle<hermes::vm::JSObject>) () #56 0x000000010847faa8 in hermes::vm::functionPrototypeApply(void*, hermes::vm::Runtime&, hermes::vm::NativeArgs) () #57 0x00000001083c1a54 in hermes::vm::NativeFunction::_nativeCall(hermes::vm::NativeFunction*, hermes::vm::Runtime&) () #58 0x00000001083db470 in hermes::vm::CallResult<hermes::vm::HermesValue, (hermes::vm::detail::CallResultSpecialize)2> hermes::vm::Interpreter::interpretFunction<false, false>(hermes::vm::Runtime&, hermes::vm::InterpreterState&) () #59 0x00000001083dab58 in hermes::vm::Runtime::interpretFunctionImpl(hermes::vm::CodeBlock*) () #60 0x00000001083c1d28 in hermes::vm::JSFunction::_callImpl(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime&) () #61 0x00000001083c1578 in hermes::vm::BoundFunction::_boundCall(hermes::vm::BoundFunction*, hermes::inst::Inst const*, hermes::vm::Runtime&) () #62 0x000000010830cc9c in facebook::hermes::HermesRuntimeImpl::call(facebook::jsi::Function const&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long) () #63 0x0000000100add8b4 in facebook::jsi::RuntimeDecorator<facebook::jsi::Runtime, facebook::jsi::Runtime>::call(facebook::jsi::Function const&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long) at /Users/lucas/Documents/impeto/metabolic-app/ios/Pods/Headers/Public/React-jsi/jsi/decorator.h:347 #64 0x00000001009ec4a0 in facebook::jsi::Function::call(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned long) const at /Users/lucas/Documents/impeto/metabolic-app/ios/Pods/Headers/Public/React-jsi/jsi/jsi-inl.h:264 #65 0x00000001009ec3b0 in facebook::jsi::Function::call(facebook::jsi::Runtime&, std::initializer_list<facebook::jsi::Value>) const at /Users/lucas/Documents/impeto/metabolic-app/ios/Pods/Headers/Public/React-jsi/jsi/jsi-inl.h:269 #66 0x00000001015481d4 in facebook::react::Task::execute(facebook::jsi::Runtime&, bool) at /Users/lucas/Documents/impeto/metabolic-app/node_modules/react-native/ReactCommon/react/renderer/runtimescheduler/Task.cpp:45 #67 0x000000010152f9f4 in facebook::react::RuntimeScheduler_Modern::executeMacrotask(facebook::jsi::Runtime&, facebook::react::Task&, bool) const at /Users/lucas/Documents/impeto/metabolic-app/node_modules/react-native/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp:360 #68 0x000000010152f2e8 in facebook::react::RuntimeScheduler_Modern::executeTask(facebook::jsi::Runtime&, facebook::react::Task&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l>>>) at /Users/lucas/Documents/impeto/metabolic-app/node_modules/react-native/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp:320 #69 0x000000010152f5b8 in facebook::react::RuntimeScheduler_Modern::startWorkLoop(facebook::jsi::Runtime&, bool) at /Users/lucas/Documents/impeto/metabolic-app/node_modules/react-native/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp:267 #70 0x00000001015365e0 in facebook::react::RuntimeScheduler_Modern::scheduleWorkLoop()::$_1::operator()(facebook::jsi::Runtime&) const at /Users/lucas/Documents/impeto/metabolic-app/node_modules/react-native/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp:247 #71 0x00000001015365a8 in decltype(std::declval<facebook::react::RuntimeScheduler_Modern::scheduleWorkLoop()::$_1&>()(std::declval<facebook::jsi::Runtime&>())) std::__1::__invoke[abi:v160006]<facebook::react::RuntimeScheduler_Modern::scheduleWorkLoop()::$_1&, facebook::jsi::Runtime&>(facebook::react::RuntimeScheduler_Modern::scheduleWorkLoop()::$_1&, facebook::jsi::Runtime&) at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__functional/invoke.h:394 #72 0x0000000101536558 in void std::__1::__invoke_void_return_wrapper<void, true>::__call<facebook::react::RuntimeScheduler_Modern::scheduleWorkLoop()::$_1&, facebook::jsi::Runtime&>(facebook::react::RuntimeScheduler_Modern::scheduleWorkLoop()::$_1&, facebook::jsi::Runtime&) at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__functional/invoke.h:487 #73 0x000000010153652c in std::__1::__function::__alloc_func<facebook::react::RuntimeScheduler_Modern::scheduleWorkLoop()::$_1, std::__1::allocator<facebook::react::RuntimeScheduler_Modern::scheduleWorkLoop()::$_1>, void (facebook::jsi::Runtime&)>::operator()[abi:v160006](facebook::jsi::Runtime&) at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__functional/function.h:185 #74 0x00000001015353a8 in std::__1::__function::__func<facebook::react::RuntimeScheduler_Modern::scheduleWorkLoop()::$_1, std::__1::allocator<facebook::react::RuntimeScheduler_Modern::scheduleWorkLoop()::$_1>, void (facebook::jsi::Runtime&)>::operator()(facebook::jsi::Runtime&) at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__functional/function.h:356 #75 0x0000000100a0c608 in std::__1::__function::__value_func<void (facebook::jsi::Runtime&)>::operator()[abi:v160006](facebook::jsi::Runtime&) const at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__functional/function.h:510 #76 0x0000000100a0c5b0 in std::__1::function<void (facebook::jsi::Runtime&)>::operator()(facebook::jsi::Runtime&) const at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__functional/function.h:1156 #77 0x00000001013b7668 in auto facebook::react::ReactInstance::ReactInstance(std::__1::unique_ptr<facebook::react::JSRuntime, std::__1::default_delete<facebook::react::JSRuntime>>, std::__1::shared_ptr<facebook::react::MessageQueueThread>, std::__1::shared_ptr<facebook::react::TimerManager>, std::__1::function<void (facebook::react::JsErrorHandler::ParsedError const&)>, facebook::react::jsinspector_modern::HostTarget*)::$_0::operator()<std::__1::function<void (facebook::jsi::Runtime&)>>(std::__1::function<void (facebook::jsi::Runtime&)>) const::'lambda'()::operator()() const at /Users/lucas/Documents/impeto/metabolic-app/node_modules/react-native/ReactCommon/react/runtime/ReactInstance.cpp:71 #78 0x00000001013b75e0 in decltype(std::declval<auto facebook::react::ReactInstance::ReactInstance(std::__1::unique_ptr<facebook::react::JSRuntime, std::__1::default_delete<facebook::react::JSRuntime>>, std::__1::shared_ptr<facebook::react::MessageQueueThread>, std::__1::shared_ptr<facebook::react::TimerManager>, std::__1::function<void (facebook::react::JsErrorHandler::ParsedError const&)>, facebook::react::jsinspector_modern::HostTarget*)::$_0::operator()<std::__1::function<void (facebook::jsi::Runtime&)>>(std::__1::function<void (facebook::jsi::Runtime&)>) const::'lambda'()>()()) std::__1::__invoke[abi:v160006]<auto facebook::react::ReactInstance::ReactInstance(std::__1::unique_ptr<facebook::react::JSRuntime, std::__1::default_delete<facebook::react::JSRuntime>>, std::__1::shared_ptr<facebook::react::MessageQueueThread>, std::__1::shared_ptr<facebook::react::TimerManager>, std::__1::function<void (facebook::react::JsErrorHandler::ParsedError const&)>, facebook::react::jsinspector_modern::HostTarget*)::$_0::operator()<std::__1::function<void (facebook::jsi::Runtime&)>>(std::__1::function<void (facebook::jsi::Runtime&)>) const::'lambda'()&>(auto facebook::react::ReactInstance::ReactInstance(std::__1::unique_ptr<facebook::react::JSRuntime, std::__1::default_delete<facebook::react::JSRuntime>>, std::__1::shared_ptr<facebook::react::MessageQueueThread>, std::__1::shared_ptr<facebook::react::TimerManager>, std::__1::function<void (facebook::react::JsErrorHandler::ParsedError const&)>, facebook::react::jsinspector_modern::HostTarget*)::$_0::operator()<std::__1::function<void (facebook::jsi::Runtime&)>>(std::__1::function<void (facebook::jsi::Runtime&)>) const::'lambda'()&&, decltype(std::declval<auto facebook::react::ReactInstance::ReactInstance(std::__1::unique_ptr<facebook::react::JSRuntime, std::__1::default_delete<facebook::react::JSRuntime>>, std::__1::shared_ptr<facebook::react::MessageQueueThread>, std::__1::shared_ptr<facebook::react::TimerManager>, std::__1::function<void (facebook::react::JsErrorHandler::ParsedError const&)>, facebook::react::jsinspector_modern::HostTarget*)::$_0::operator()<std::__1::function<void (facebook::jsi::Runtime&)>>(std::__1::function<void (facebook::jsi::Runtime&)>) const::'lambda'()>()())&&...) at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__functional/invoke.h:394 #79 0x00000001013b7598 in void std::__1::__invoke_void_return_wrapper<void, true>::__call<auto facebook::react::ReactInstance::ReactInstance(std::__1::unique_ptr<facebook::react::JSRuntime, std::__1::default_delete<facebook::react::JSRuntime>>, std::__1::shared_ptr<facebook::react::MessageQueueThread>, std::__1::shared_ptr<facebook::react::TimerManager>, std::__1::function<void (facebook::react::JsErrorHandler::ParsedError const&)>, facebook::react::jsinspector_modern::HostTarget*)::$_0::operator()<std::__1::function<void (facebook::jsi::Runtime&)>>(std::__1::function<void (facebook::jsi::Runtime&)>) const::'lambda'()&>(auto facebook::react::ReactInstance::ReactInstance(std::__1::unique_ptr<facebook::react::JSRuntime, std::__1::default_delete<facebook::react::JSRuntime>>, std::__1::shared_ptr<facebook::react::MessageQueueThread>, std::__1::shared_ptr<facebook::react::TimerManager>, std::__1::function<void (facebook::react::JsErrorHandler::ParsedError const&)>, facebook::react::jsinspector_modern::HostTarget*)::$_0::operator()<std::__1::function<void (facebook::jsi::Runtime&)>>(std::__1::function<void (facebook::jsi::Runtime&)>) const::'lambda'()&) at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__functional/invoke.h:487 #80 0x00000001013b7574 in std::__1::__function::__alloc_func<auto facebook::react::ReactInstance::ReactInstance(std::__1::unique_ptr<facebook::react::JSRuntime, std::__1::default_delete<facebook::react::JSRuntime>>, std::__1::shared_ptr<facebook::react::MessageQueueThread>, std::__1::shared_ptr<facebook::react::TimerManager>, std::__1::function<void (facebook::react::JsErrorHandler::ParsedError const&)>, facebook::react::jsinspector_modern::HostTarget*)::$_0::operator()<std::__1::function<void (facebook::jsi::Runtime&)>>(std::__1::function<void (facebook::jsi::Runtime&)>) const::'lambda'(), std::__1::allocator<std::__1::allocator>, void ()>::operator()[abi:v160006]() at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__functional/function.h:185 #81 0x00000001013b62cc in std::__1::__function::__func<auto facebook::react::ReactInstance::ReactInstance(std::__1::unique_ptr<facebook::react::JSRuntime, std::__1::default_delete<facebook::react::JSRuntime>>, std::__1::shared_ptr<facebook::react::MessageQueueThread>, std::__1::shared_ptr<facebook::react::TimerManager>, std::__1::function<void (facebook::react::JsErrorHandler::ParsedError const&)>, facebook::react::jsinspector_modern::HostTarget*)::$_0::operator()<std::__1::function<void (facebook::jsi::Runtime&)>>(std::__1::function<void (facebook::jsi::Runtime&)>) const::'lambda'(), std::__1::allocator<std::__1::allocator>, void ()>::operator()() at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__functional/function.h:356 #82 0x00000001009f41fc in std::__1::__function::__value_func<void ()>::operator()[abi:v160006]() const at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__functional/function.h:510 #83 0x00000001009f3cf8 in std::__1::function<void ()>::operator()() const at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__functional/function.h:1156 #84 0x0000000100df17f4 in facebook::react::tryAndReturnError(std::__1::function<void ()> const&) at /Users/lucas/Documents/impeto/metabolic-app/node_modules/react-native/React/CxxModule/RCTCxxUtils.mm:73 #85 0x0000000100e19098 in facebook::react::RCTMessageThread::tryFunc(std::__1::function<void ()> const&) at /Users/lucas/Documents/impeto/metabolic-app/node_modules/react-native/React/CxxBridge/RCTMessageThread.mm:68 #86 0x0000000100e1db20 in facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_1::operator()() const at /Users/lucas/Documents/impeto/metabolic-app/node_modules/react-native/React/CxxBridge/RCTMessageThread.mm:81 #87 0x0000000100e1dac4 in decltype(std::declval<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_1&>()()) std::__1::__invoke[abi:v160006]<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_1&>(facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_1&) at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__functional/invoke.h:394 #88 0x0000000100e1da7c in void std::__1::__invoke_void_return_wrapper<void, true>::__call<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_1&>(facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_1&) at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__functional/invoke.h:487 #89 0x0000000100e1da58 in std::__1::__function::__alloc_func<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_1, std::__1::allocator<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_1>, void ()>::operator()[abi:v160006]() at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__functional/function.h:185 #90 0x0000000100e1c768 in std::__1::__function::__func<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_1, std::__1::allocator<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_1>, void ()>::operator()() at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__functional/function.h:356 #91 0x00000001009f41fc in std::__1::__function::__value_func<void ()>::operator()[abi:v160006]() const at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__functional/function.h:510 #92 0x00000001009f3cf8 in std::__1::function<void ()>::operator()() const at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk/usr/include/c++/v1/__functional/function.h:1156 #93 0x0000000100e18e5c in invocation function for block in facebook::react::RCTMessageThread::runAsync(std::__1::function<void ()>) at /Users/lucas/Documents/impeto/metabolic-app/node_modules/react-native/React/CxxBridge/RCTMessageThread.mm:44 #94 0x000000019d8eec9c in __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ () #95 0x000000019d8dcdec in __CFRunLoopDoBlocks () #96 0x000000019d8dcad0 in __CFRunLoopRun () #97 0x000000019d8dbcd8 in CFRunLoopRunSpecific () #98 0x00000001013a22a0 in +[RCTJSThreadManager runRunLoop] at /Users/lucas/Documents/impeto/metabolic-app/node_modules/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTJSThreadManager.mm:102 #99 0x000000019c813718 in __NSThread__start__ () #100 0x00000001fa6c006c in _pthread_start ()

@thompsonnoah
Copy link

thompsonnoah commented Oct 25, 2024

Hello!

I'm having the same issue after enabling the New Architecture in my app and upgrading to 0.76. The app starts, then crashes after the BleManager is created. @marcosinigaglia Is there any ETA on an update given that the new arch is enabled by default in 0.76?

Thanks,

Noah

@lucaswitch
Copy link
Contributor Author

I'm working on that on my little spare time(and not tired) @thompsonnoah
I already did half of the work to migrate that to new arch as you can see the progress on my personal branch https://github.com/lucaswitch/react-native-ble-manager

It is still working in progress but mostly because the new codegen needs the explicit type definitions of each "object" in methods which needs a little more attention to be used.

What needs to be done:

  1. Each ts "object" needs to be properly explicit typed accordingly with the docs and the old bridge methods.
  2. Also i need to add an new arch app to the repo so we can control if something goes wrong on new arch methods while we can keep the bridge methods.

Probably an 12.x candidate.
[See the codegen file](https://github.com/lucaswitch/react-native-ble-manager/blob/master/src/NativeBleManager.ts)

@thompsonnoah
Copy link

Hi @lucaswitch,

Thanks so much for the update! I'll be actively monitoring this post for news.

Best,

Noah

@lucaswitch
Copy link
Contributor Author

@thompsonnoah @marcosinigaglia i think i got it working, still needs to be fully tested.
I'll try it on a production app then i guess we have a 12.x.x

@thompsonnoah
Copy link

Hi @lucaswitch,

Thanks so much for the amazing effort! I look forward to hearing more and to the 12.x update.

Best,

Noah

@lucaswitch
Copy link
Contributor Author

It's not quite ready yet. I guess it needs some work to make the events compatible again.

@vhakulinen
Copy link
Contributor

vhakulinen commented Nov 2, 2024

I had a peek at your branch. Did I understand correctly that the code generated from the types will call into the current native methods, and that is the provided interop for legacy modules?

To make the typing more robust, would it be possible that the "actual" BleManager in typescript side implements the Spec interface?

@marcosinigaglia
Copy link
Member

Hi @lucaswitch , thanks for your work, can you make a PR so we can work on your code?

@lucaswitch
Copy link
Contributor Author

I had a peek at your branch. Did I understand correctly that the code generated from the types will call into the current native methods, and that is the provided interop for legacy modules?

Yes, you're right.
But not with the old RCT_* macros, thats the old way to do it. But that should be kept for backwards compability.
The typescript will do the turbo modules bindings when user install pods.

To make the typing more robust, would it be possible that the "actual" BleManager in typescript side implements the Spec interface?

Thats a great idea.

@lucaswitch
Copy link
Contributor Author

Hi @lucaswitch , thanks for your work, can you make a PR so we can work on your code?

I'll do that right now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants