react-native-maps / react-native-maps

React Native Mapview component for iOS + Android
MIT License
15.14k stars 4.86k forks source link

react-native-maps does not support the New Architecture #4383

Closed cipolleschi closed 6 months ago

cipolleschi commented 2 years ago

Summary

Hi @Simon-TechForm, I'm a software engineer at Meta, working on React Native. We notice that your library is really popular and we would like to know if you are considering migrating it to the New Architecture, using the Fabric Renderer and TurboModules. You can reed more about the New Architecture here, and here you can find a guide on how to migrate the library.

Are there any plans to proceed with the migration? Can we support you in any way?

Reproducible sample code

import React from 'react';
import MapView from 'react-native-maps';

export default function App() {
  return (
    <MapView
      style={{flex: 1}}
      initialRegion={{
        latitude: 42,
        longitude: 30,
        latitudeDelta: 1,
        longitudeDelta: 1,
      }}
    />
  );
}

Steps to reproduce

Expected result

A properly loaded map.

Actual result

A screen with pink background saying Unimplemented component:

iOSAndroid

React Native Maps Version

1.2.0

What platforms are you seeing the problem on?

Android, iOS (Apple Maps), iOS (Google Maps)

React Native Version

0.70.0-rc.2

What version of Expo are you using?

Not using Expo

Device(s)

iPhone 13 (iOS 15.5) | Android Pixel 5 (API 33)

Additional information

No response

monholm commented 2 years ago

Hello @cipolleschi. Thank you for reaching out.

I've already started doing some of the prerequisites, and I'm definitely planning to migrate as soon as my calendar allows me to. I spent some time looking into the migration a couple of weeks ago and wrote down a few notes/questions that I was planning to post in the new architecture workgroup.

I see that the documentation got a major overhaul, so I'll revisit the subject and get back to you if my questions are still relevant after reading the updated docs :)

cipolleschi commented 2 years ago

That's an amazing news! Thank you so much. Feel free to reach out anytime with any question you may have! :D

monholm commented 2 years ago

@cipolleschi I have a couple of questions that I hope you can help sort out :)

Prerequisites for Libraries states that The new renderer also known as Fabric doesn’t use the UIManager so direct calls to UIManager will need to be migrated.. Is that to be interpreted as any use of UIManager will have to be removed or only the specific cases that the documentation then goes on to describe? react-native-maps makes use of UIManager.getViewManagerConfig for instance.

I assume that it isn't, but is native code like:

UIManagerModule uiManager = context.getNativeModule(UIManagerModule.class);
uiManager.addUIBlock(new UIBlock(){}

or

[self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry){}

affected by the above?

Last but not least, react-native-maps makes use of a provider prop that determines what native component to load during runtime, meaning a single js/react component doesn't map to a single native component per platform, but to two or, in theory, more. Does the new arch make any use of the default export from <FABRIC COMPONENT>NativeComponent.ts or would it be possible to export multiple native components? E.g.:

export const AirMap = codegenNativeComponent<NativeProps>(
  'AirMap'
) as HostComponent<NativeProps>;

export const AirGoogleMap = codegenNativeComponent<NativeProps>(
  'AirGoogleMap'
) as HostComponent<NativeProps>;

or would it be better to create two <FABRIC COMPONENT>NativeComponent.ts, one for each native component, even though they are used by the same js/react component and share the same NativeProps and NativeCommands? Or do you have an entirely different solution?

cipolleschi commented 2 years ago

Hi @Simon-TechForm. I made some test on the second question, and unless I did something very wrong, it does not seem to work.

My tests were:

So, the output is that, currently, the only way to generate two components with the same props is to create two separate <FABRIC COMPONENT 1>NativeComponent.js and <FABRIC COMPONENT 2>NativeComponent.js files, copying and pasting the props.

That's far from ideal, but we plan to improve the Codegen a little, so I hope we would be able to bring this scenario to life.


For your first question I have to dig more internally. I hope to get back with an answer as soon as possible.

bnussman commented 2 years ago

Will this fix web support for Expo SDK 46? πŸ₯Ί

Uncaught TypeError: react_native_1.UIManager.getViewManagerConfig is not a function
    at ../node_modules/react-native-maps/lib/decorateMapComponent.js (decorateMapComponent.js:29:1)
    at __webpack_require__ (bootstrap:789:1)
    at fn (bootstrap:100:1)
    at ../node_modules/react-native-maps/lib/MapMarker.js (MapMarker.js:29:1)
    at __webpack_require__ (bootstrap:789:1)
    at fn (bootstrap:100:1)
    at ../node_modules/react-native-maps/lib/index.js (index.js:37:1)
    at __webpack_require__ (bootstrap:789:1)
    at fn (bootstrap:100:1)
    at ./routes/ride/FindBeep.tsx (Report.tsx:66:1)
    at __webpack_require__ (bootstrap:789:1)
    at fn (bootstrap:100:1)
    at ./navigators/Drawer.tsx (index.js:8:1)
    at __webpack_require__ (bootstrap:789:1)
    at fn (bootstrap:100:1)
    at ./App.tsx (App.tsx:1:1)
    at __webpack_require__ (bootstrap:789:1)
    at fn (bootstrap:100:1)
    at ./index.js (index.js:1:1)
    at __webpack_require__ (bootstrap:789:1)
    at fn (bootstrap:100:1)
    at 1 (useValidationErrors.tsx:38:1)
    at __webpack_require__ (bootstrap:789:1)
    at bootstrap:856:1
    at bootstrap:856:1
sammy-SC commented 2 years ago

Hello @Simon-TechForm

The linked paragraph talks about JavaScript specifically. iOS and Android have their dedicated sections.

When writing components in the new architecture, UIManager won't be accessible on the host platform. For example on iOS inside your component, there is no way to get hold of UIManager and other mechanisms have to be used.

What do you need view configs for? We can try to find a way to achieve the same functionality in the new architecture.

monholm commented 2 years ago

Hello @cipolleschi & @sammy-SC. Thank you both for getting back to me.

@cipolleschi thank you for running the tests. I'm not surprised by the results, and I get why it would "have" to behave like that. While the first case seems like an edge case, I could see the second case, importing props from another file, being useful outside of react-native-maps though :)

@sammy-SC UIManager.getViewManagerConfig is currently only being used for convenience. As requireNativeComponent will run and return a string for non-existing native views, getViewManagerConfig is used to print a warning and return null for the component instead of crashing the app when trying to render the non-existing native view (installing Google Maps is optional on iOS in react-native-maps). But given how early in the dev cycle the error will show itself, and how clear the error message is, I'm honestly fine just removing the check.

One other thing: Quite a few methods that are esentially NativeCommands for the NativeComponent was done as NativeModule methods to allow for async methods that could be resolved/rejected with a value. This is currently done by passing a view tag to the NativeModule method by passing findNodeHandle(this.ref.current) as the first argument, much like we used to do with dispatchViewManagerCommand before migrating to codegenNativeCommands. With findNodeHandle being out of the picture, can you recommend some other way (or docs) to do this? I currenly have a working example that passes this.ref.current._nativeTag instead, but I can imagine that accesing what I assume is meant to be a private member has both your eyebrows twitching violently 😬 😁

cipolleschi commented 2 years ago

Hi @Simon-TechForm! Sorry for the late answer.

I could see the second case, importing props from another file, being useful outside of react-native-maps though :)

Yes, I agree. That's an interesting use case and can lead to much better code. I hope to find some time to deliver this soon.

This is currently done by passing a view tag to the NativeModule method by passing findNodeHandle(this.ref.current) as the first argument, much like we used to do with dispatchViewManagerCommand before migrating to codegenNativeCommands. With findNodeHandle being out of the picture, can you recommend some other way (or docs) to do this? I currenly have a working example that passes this.ref.current._nativeTag instead, but I can imagine that accesing what I assume is meant to be a private member has both your eyebrows twitching violently 😬 😁

XD Yep, access a private APIs should be avoided. So, the proper way to replace findNodeHandle is with forwardRefs for function components and with a getter for class components. That said, we are working on ways to simplify the migration and we are considering keeping around the findNodeHandle API for a while. This should give you and other library maintainer some more time to migrate! ;)

The reason why we are deprecating it is because its behavior is unpredictable with some new features of React18. However, this features are opt-in and therefore, it should be safe to still use findNodeHandle if you don't adopt them (however, you'll never know if an app importing your library will wrap your component in some of the new features... So it is much safer to migrate them).

monholm commented 2 years ago

Hi @cipolleschi. Don't worry :)

Problem is, we are passing it to the native side through NativeModule methods, so I can't really use either of them.

E.g:

NativeModules.AirMapModule.coordinateForPoint(findNodeHandle(this.map.current), point);

and then on the native side we are doing (android as an example):

  @ReactMethod
  public void coordinateForPoint(final int tag, ReadableMap point, final Promise promise) {
    ...
    UIManagerModule uiManager = context.getNativeModule(UIManagerModule.class);
    uiManager.addUIBlock(new UIBlock()
    {
      @Override
      public void execute(NativeViewHierarchyManager nvhm)
      {
        AirMapView view = (AirMapView) nvhm.resolveView(tag);
        ...
    });
  }

to get a reference to the view on the native side. This is currently the only use we have for findNodeHandle, so I'd prefer migrating as well :)

github-actions[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

midrizi commented 1 year ago

@Simon-TechForm Are you still working on the new arch?

kalyantm commented 1 year ago

@Simon-TechForm Hey, hope you are doing well :) Like @midrizi, I also wanted to see if there was an update around the usage of the new architecture? Is there a place where pending tasks are listed? More than happy to contribute!

monholm commented 1 year ago

@midrizi @kalyantm I've had very limited time to spend on react-native-maps in the previous months, but the time I had, I spent on supporting the new architecture. I've had no "behind the scenes" communication with the RN team, so the issue I mentioned in my latest comment is very much still applicable. But since findNodeHandle seems to stick around, I've moved on to the next step(s).

I've just applied for access to the new architecture working group as I've stumbled upon a couple of features that doesn't seem to be supported when codegenerating typescript specs in the new architecture and am currently awaiting access :)

cortinico commented 1 year ago

and am currently awaiting access :)

You should have access by now πŸ‘

uwakahuche commented 1 year ago

For me it was adding the two lines below.

import {enableLatestRenderer} from 'react-native-maps'; enableLatestRenderer();

kalyantm commented 1 year ago

@uwakahuche Where did you specify that? I still get Unimplemented component <AIRGoogleMap>

uwakahuche commented 1 year ago

@kalyantm App.js

monholm commented 1 year ago

@cortinico Thank you and apologies for the late reply :)

I've just commented in the Codegen Missing features discussion, raising the issues that's currently blocking migration of react-native-maps.

Ilphrin commented 1 year ago

Hi!

Thank you for this awesome library! It's really one of the most helpful I've ever used on RN :D

Is there any news regarding this issue ? I'm currently working with RN 0.71.2 with the new Architecture and I really miss react-native-maps 😬 I forked @michbil's fork (https://github.com/michbil/react-native-maps/tree/feature/new-architecture-exp) where he tried to add support for the new architecture, and I got it working on iOS but not on Android yet, and my knowledge of native code is...well, not enough sadly! I just tried to command some stuff but of course I suppose this is not enough even though it compiles and run on dev env for iOS πŸ˜„ (https://github.com/michbil/react-native-maps/tree/feature/new-architecture-exp)

Is the anything I can do to help make react-native-maps support the new architecture ?

BraveEvidence commented 1 year ago

I have figured it out for iOS . Check this https://www.youtube.com/watch?v=-08s1kr1SBE

murilogok commented 1 year ago

Any updates? We still earnestly waiting for it πŸ₯Ή

michbil commented 1 year ago

I am also willing to help. I am author of this summer hack(https://github.com/michbil/react-native-maps/tree/feature/new-architecture-exp) to make library work on new architecture iOS. @Simon-TechForm Is there any branch where help is needed?

BraveEvidence commented 1 year ago

I have figured out how to display google maps for both android as well, if interested check it out https://www.youtube.com/watch?v=ZpYDzLGJTXY

monholm commented 1 year ago

A quick update for everyone interested. The status of this is the same as mentioned in https://github.com/react-native-maps/react-native-maps/issues/4383#issuecomment-1435786037 :)

ravindraguptacapgemini commented 1 year ago

@Simon-TechForm we are migrating our app to new architecture, Is there any quick workaround to add support for fabric. Please suggest.

chr314 commented 1 year ago

@ravindraguptacapgemini you can try the new interop layer https://github.com/reactwg/react-native-new-architecture/discussions/135 but I'm not sure if it will work with react-native-maps

cipolleschi commented 1 year ago

yes, please! If any of you had chance, let's try to use the interop layer and report failures. We are actively working on that and any feedback is super valuable. We are committing on fixing most of the basic failures to try and support most of the use cases with the interop layer!

ravindraguptacapgemini commented 1 year ago

@cipolleschi thanks for the update. I have tried Interop layer with 0.72.0 with react-native-maps on iOS, specified this in react-native-config.js

module.exports = {
    project: {
        android: {
            unstable_reactLegacyComponentNames: ['AIRGoogleMap'],
        },
        ios: {
            unstable_reactLegacyComponentNames: ['AIRGoogleMap'],
        }
    },
};

It crash on load the map, sharing part of crash report here:

Incident Identifier: 7B53C949-83B7-4B42-A5B0-39AE5F2F933A CrashReporter Key: 6E546EFD-FB91-747D-EE9D-6F28E9A1CB76 Hardware Model: Mac14,10 Process: intelexMobile [4241] Path: /Users/USER/Library/Developer/CoreSimulator/Devices/CAB004FE-326E-4CAE-8167-3CEEE227C70C/data/Containers/Bundle/Application/D9F5B09C-1A1F-411D-A2E9-0BFFE049988C/intelexMobile.app/intelexMobile Identifier: com.intelex.intelexMobile Version: 1.0 (1.0) Code Type: X86-64 (Native) Role: Foreground Parent Process: launchd_sim [2229] Coalition: com.apple.CoreSimulator.SimDevice.CAB004FE-326E-4CAE-8167-3CEEE227C70C [1448] Responsible Process: SimulatorTrampoline [2133]

Date/Time: 2023-06-30 21:21:46.7224 +0530 Launch Time: 2023-06-30 21:18:31.0195 +0530 OS Version: macOS 13.4 (22F66) Release Type: User Report Version: 104

Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Triggered by Thread: 6

Thread 0:: Dispatch queue: com.apple.main-thread 0 ??? 0x1058539a8 ??? 1 0x105929584 ??? 2 libsystem_kernel.dylib 0x116dcc72d mach_msg2_internal + 78 3 libsystem_kernel.dylib 0x116dc55e4 mach_msg_overwrite + 692 4 libsystem_kernel.dylib 0x116dbe89a mach_msg + 19 5 CoreFoundation 0x1171bc437 CFRunLoopServiceMachPort + 145 6 CoreFoundation 0x1171b6b7b CFRunLoopRun + 1338 7 CoreFoundation 0x1171b6264 CFRunLoopRunSpecific + 560 8 GraphicsServices 0x11adc724e GSEventRunModal + 139 9 UIKitCore 0x1265a67bf -[UIApplication _run] + 994 10 UIKitCore 0x1265ab5de UIApplicationMain + 123 11 intelexMobile 0x10081ae68 main + 104 (main.m:7) 12 dyld_sim 0x10de52384 start_sim + 10 13 dyld 0x2059b841f start + 1903

Thread 1:: com.apple.rosetta.exceptionserver 0 ??? 0x7ff7ffbd6694 ???

Thread 2:: com.apple.uikit.eventfetch-thread 0 ??? 0x1058539a8 ??? 1 0x105929584 ??? 2 libsystem_kernel.dylib 0x116dcc72d mach_msg2_internal + 78 3 libsystem_kernel.dylib 0x116dc55e4 mach_msg_overwrite + 692 4 libsystem_kernel.dylib 0x116dbe89a mach_msg + 19 5 CoreFoundation 0x1171bc437 CFRunLoopServiceMachPort + 145 6 CoreFoundation 0x1171b6b7b CFRunLoopRun + 1338 7 CoreFoundation 0x1171b6264 CFRunLoopRunSpecific + 560 8 Foundation 0x114f7bc8d -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 213 9 Foundation 0x114f7bf04 -[NSRunLoop(NSRunLoop) runUntilDate:] + 72 10 UIKitCore 0x12667ac29 -[UIEventFetcher threadMain] + 521 11 Foundation 0x114fa53f4 NSThreadstart__ + 1009 12 libsystem_pthread.dylib 0x116e2f1d3 _pthread_start + 125 13 libsystem_pthread.dylib 0x116e2abd3 thread_start + 15

Thread 3:: KSCrash Exception Handler (Secondary) 0 ??? 0x1058539a8 ??? 1 0x105929584 ??? 2 libsystem_kernel.dylib 0x116dcc72d mach_msg2_internal + 78 3 libsystem_kernel.dylib 0x116de39d0 thread_suspend + 84 4 intelexMobile 0x100821118 ksmachexc_i_handleExceptions + 136 (BSG_KSCrashSentry_MachException.c:222) 5 libsystem_pthread.dylib 0x116e2f1d3 _pthread_start + 125 6 libsystem_pthread.dylib 0x116e2abd3 thread_start + 15

Thread 4:: KSCrash Exception Handler (Primary) 0 ??? 0x1058539a8 ??? 1 0x105929584 ??? 2 libsystem_kernel.dylib 0x116dcc72d mach_msg2_internal + 78 3 libsystem_kernel.dylib 0x116dc55e4 mach_msg_overwrite + 692 4 libsystem_kernel.dylib 0x116dbe89a mach_msg + 19 5 intelexMobile 0x100821156 ksmachexc_i_handleExceptions + 198 (BSG_KSCrashSentry_MachException.c:229) 6 libsystem_pthread.dylib 0x116e2f1d3 _pthread_start + 125 7 libsystem_pthread.dylib 0x116e2abd3 thread_start + 15

Thread 5:: com.bugsnag.app-hang-detector 0 ??? 0x1058539a8 ??? 1 0x106b98934 ??? 2 libdispatch.dylib 0x113cc851d _dispatch_sema4_wait + 16 3 libdispatch.dylib 0x113cc8a44 _dispatch_semaphore_wait_slow + 98 4 intelexMobile 0x10082a8b9 -[BSGAppHangDetector detectAppHangs] + 169 (BSGAppHangDetector.m:126) 5 intelexMobile 0x10082a805 DetectAppHangs + 21 (BSGAppHangDetector.m:216) 6 libsystem_pthread.dylib 0x116e2f1d3 _pthread_start + 125 7 libsystem_pthread.dylib 0x116e2abd3 thread_start + 15

Thread 6 Crashed:: com.facebook.react.JavaScript 0 0x1849ad3a4 ??? 1 0x1849ad3a4 ??? 2 libsystem_platform.dylib 0x1168bb603 _sigtramp + 51 3 libsystem_c.dylib 0x114101e58 abort + 130 4 libsystem_c.dylib 0x114101144 assert_rtn + 314 5 intelexMobile 0x100de56d1 facebook::react::constructCoordinator(std::__1::shared_ptr const&, std::1::shared_ptr const&) + 257 (LegacyViewManagerInteropComponentDescriptor.mm:64) 6 intelexMobile 0x100de5549 facebook::react::LegacyViewManagerInteropComponentDescriptor::LegacyViewManagerInteropComponentDescriptor(facebook::react::ComponentDescriptorParameters const&) + 73 (LegacyViewManagerInteropComponentDescriptor.mm:94) 7 intelexMobile 0x100de5bfd facebook::react::LegacyViewManagerInteropComponentDescriptor::LegacyViewManagerInteropComponentDescriptor(facebook::react::ComponentDescriptorParameters const&) + 29 (LegacyViewManagerInteropComponentDescriptor.mm:95) 8 intelexMobile 0x100fccfaf std::1::unique_if::unique_single std::1::make_unique[abi:v15006]<facebook::react::LegacyViewManagerInteropComponentDescriptor const, facebook::react::ComponentDescriptorParameters const&>(facebook::react::ComponentDescriptorParameters const&) + 63 (unique_ptr.h:714) 9 intelexMobile 0x100fccf48 std::1::unique_ptr<facebook::react::ComponentDescriptor const, std::1::default_delete> facebook::react::concreteComponentDescriptorConstructor(facebook::react::ComponentDescriptorParameters const&) + 40 (ComponentDescriptorProvider.h:53) 10 intelexMobile 0x100d5fd39 facebook::react::ComponentDescriptorRegistry::add(facebook::react::ComponentDescriptorProvider) const + 153 (ComponentDescriptorRegistry.cpp:33) 11 intelexMobile 0x100d5a8fb facebook::react::ComponentDescriptorProviderRegistry::add(facebook::react::ComponentDescriptorProvider const&) const + 539 (ComponentDescriptorProviderRegistry.cpp:40) 12 intelexMobile 0x100f96246 -[RCTComponentViewFactory _addDescriptorToProviderRegistry:] + 118 (RCTComponentViewFactory.mm:174) 13 intelexMobile 0x100f957b0 -[RCTComponentViewFactory registerComponentIfPossible:] + 576 (RCTComponentViewFactory.mm:131) 14 intelexMobile 0x100f991c4 +[RCTComponentViewFactory currentComponentViewFactory]::'block-literal'::$_1::operator()(char const) const + 68 (RCTComponentViewFactory.mm:79) 15 intelexMobile 0x100f99170 decltype(std::declval<+[RCTComponentViewFactory currentComponentViewFactory]::'block-literal'::$_1&>()(std::declval<char const>())) std::1::invoke[abi:v15006]<+[RCTComponentViewFactory currentComponentViewFactory]::'block-literal'::$_1&, char const>(+[RCTComponentViewFactory currentComponentViewFactory]::'block-literal'::$_1&, char const&&) + 32 (invoke.h:394) 16 intelexMobile 0x100f9911d void std::1::invoke_void_return_wrapper<void, true>::call<+[RCTComponentViewFactory currentComponentViewFactory]::'block-literal'::$_1&, char const>(+[RCTComponentViewFactory currentComponentViewFactory]::'block-literal'::$_1&, char const&&) + 29 (invoke.h:479) 17 intelexMobile 0x100f990f5 std::1::function::alloc_func<+[RCTComponentViewFactory currentComponentViewFactory]::'block-literal'::$_1, std::1::allocator<+[RCTComponentViewFactory currentComponentViewFactory]::'block-literal'::$_1>, void (char const)>::operator()[abi:v15006](char const&&) + 37 (function.h:185) 18 intelexMobile 0x100f98121 std::1::function::__func<+[RCTComponentViewFactory currentComponentViewFactory]::'block-literal'::$_1, std::1::allocator<+[RCTComponentViewFactory currentComponentViewFactory]::'block-literal'::$_1>, void (char const)>::operator()(char const&&) + 33 (function.h:359) 19 intelexMobile 0x100d5d2ea std::1::function::value_func<void (char const)>::operator()[abi:v15006](char const&&) const + 58 (function.h:512) 20 intelexMobile 0x100d5aead std::1::function<void (char const)>::operator()(char const) const + 29 (function.h:1197) 21 intelexMobile 0x100d5ad79 facebook::react::ComponentDescriptorProviderRegistry::request(char const*) const + 137 (ComponentDescriptorProviderRegistry.cpp:62) 22 intelexMobile 0x100d603df facebook::react::ComponentDescriptorRegistry::at(std::1::basic_string<char, std::1::char_traits, std::1::allocator> const&) const + 255 (ComponentDescriptorRegistry.cpp:69) 23 intelexMobile 0x100eb38f5 facebook::react::UIManager::createNode(int, std::1::basic_string<char, std::1::char_traits, std::1::allocator> const&, int, facebook::react::RawProps const&, std::1::shared_ptr) const + 165 (UIManager.cpp:64) 24 intelexMobile 0x100ed7320 facebook::react::UIManagerBinding::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)::$_1::operator()(facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const, unsigned long) const + 576 (UIManagerBinding.cpp:197) 25 intelexMobile 0x100ed70d6 decltype(std::declval<facebook::react::UIManagerBinding::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)::$_1&>()(std::declval<facebook::jsi::Runtime&>(), std::declval<facebook::jsi::Value const&>(), std::declval<facebook::jsi::Value const>(), std::declval())) std::1::invoke[abi:v15006]<facebook::react::UIManagerBinding::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)::$_1&, facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const, unsigned long>(facebook::react::UIManagerBinding::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)::$_1&, facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const&&, unsigned long&&) + 70 (invoke.h:394) 26 intelexMobile 0x100ed7060 facebook::jsi::Value std::1::__invoke_void_return_wrapper<facebook::jsi::Value, false>::__call<facebook::react::UIManagerBinding::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)::$_1&, facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const, unsigned long>(facebook::react::UIManagerBinding::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)::$_1&, facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const&&, unsigned long&&) + 64 (invoke.h:470) 27 intelexMobile 0x100ed7010

cipolleschi commented 1 year ago

@ravindraguptacapgemini thanks for testing that. For 0.72.0, we are aware of a bug in the iOS interop layer, for which legacy components with ViewManagers not starting with the RCT prefix were crashing the app. The bug has been fixed in 0.72.1, so now that should be ok. Commit for reference.

Let me know if you have time to try with 72.1! :D

ravindraguptacapgemini commented 1 year ago

@cipolleschi thank you so much, I tried with React Native 0.72.1, and it did work fine for iOS but somehow it's breaking up for android, the map loads with some error, here is the error screenshot. Please check of you can help here.

Screenshot 2023-07-03 at 7 19 02 PM
cipolleschi commented 1 year ago

@ravindraguptacapgemini thank you so much for testing this! In your message, you wrote:

I tried with React Native 0.72.1, and it did work fine for android but somehow it's breaking up for android

I guess that the first android was actually ios, as the image you linked with the error is of an Android device.

@cortinico this seems to be a problem with the events (surprise surprise).

@ravindraguptacapgemini can you create a repro using this repo?

ravindraguptacapgemini commented 1 year ago

@cipolleschi @cortinico can we expect this issue to be fixed in coming version (may be an RC) of React Native, also please let me know, if there is any timeline. thanks

cipolleschi commented 1 year ago

Very likely yes. Events are one of the basic features of React Native and the interop layer, so we would like to have it fixed in the interop layer. But to fix this effectively, we are going to need a reliable repro

ravindraguptacapgemini commented 1 year ago

@cipolleschi I have created a repro for you, please check it out from here.

cipolleschi commented 1 year ago

@cortinico ☝️

ravindraguptacapgemini commented 1 year ago

@cortinico hey man!, have you got a chance to check for this issue?

cortinico commented 1 year ago

Hey @ravindraguptacapgemini Please don't ping us over the weekend. I'll check that once we're back in the office next week. Thank you

Yagnesh7028 commented 1 year ago

Hey, also face this issue on android, find any solution for it?

ravindraguptacapgemini commented 1 year ago

Hey @ravindraguptacapgemini Please don't ping us over the weekend. I'll check that once we're back in the office next week. Thank you

@cortinico sorry to ping here on weekend, hope now you are in office and just curious to if by any chance you checked on this issue. Thanks

NonSerializedClass commented 1 year ago

We are facing the unsupported event issue as well for Android. Is there a solution for this?

cortinico commented 1 year ago

Hi @ravindraguptacapgemini, Thanks for providing a reproducer, this was really valuable for me. I identified a scenario in the interop layer where direct (non-bubbling) events, like the one fired from react-native-maps are not properly handled. I'll work on a fix, and this should hopefully land in the next point release of 0.72

cortinico commented 1 year ago

The fix is here:

I'll have it reviewed and merged in the upcoming stable for 0.72

ravindraguptacapgemini commented 1 year ago

@cortinico really appreciate your effort to check for the issue. I have tried to apply the changes from the PR on my local, but they do not work, still getting the same error. I even tried to replace contents of the file as there were other changes as well, nothing changed. Could you please suggest how to check this fix on local. Also please let me know if there is any tentative date for the next stable release of 0.72. Thanks again!

Yagnesh7028 commented 1 year ago

@cortinico Thanks for your effort. Trying this changes locally with react-native 0.72.3 but facing same issue on it.

cortinico commented 1 year ago

This change is not released yet. It will be included in 0.72.4

ravindraguptacapgemini commented 1 year ago

@Simon-TechForm please update if you are now planning the add new architecture support for the library.

ravindraguptacapgemini commented 1 year ago

@cortinico We are also observing the map to crash on re-render in some case with new architecture, here is the stack-trace:

Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Triggered by Thread: 0

Last Exception Backtrace: 0 CoreFoundation 0x11b4aa77b exceptionPreprocess + 226 1 libobjc.A.dylib 0x112b51b73 objc_exception_throw + 48 2 Foundation 0x1190fe109 -[NSMutableDictionary(NSMutableDictionary) classForCoder] + 0 3 intelexMobile 0x10512ad41 -[RCTComponentViewRegistry _enqueueComponentViewWithComponentHandle:componentViewDescriptor:] + 721 (RCTComponentViewRegistry.mm:115) 4 intelexMobile 0x10512a1bc -[RCTComponentViewRegistry enqueueComponentViewWithComponentHandle:tag:componentViewDescriptor:] + 940 (RCTComponentViewRegistry.mm:70) 5 intelexMobile 0x10516d921 RCTPerformMountInstructions(std::1::vector<facebook::react::ShadowViewMutation, std::1::allocator> const&, RCTComponentViewRegistry*, RCTMountingTransactionObserverCoordinator&, int) + 593 (RCTMountingManager.mm:71) 6 intelexMobile 0x10516d6bb -[RCTMountingManager performTransaction:]::$_1::operator()(facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&) const + 75 (RCTMountingManager.mm:279) 7 intelexMobile 0x10516d665 decltype(std::declval<-[RCTMountingManager performTransaction:]::$_1&>()(std::declval<facebook::react::MountingTransaction const&>(), std::declval<facebook::react::SurfaceTelemetry const&>())) std::1::invoke[abi:v15006]<-[RCTMountingManager performTransaction:]::$_1&, facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&>(-[RCTMountingManager performTransaction:]::$_1&, facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&) + 37 (invoke.h:394) 8 intelexMobile 0x10516d615 void std::1::invoke_void_return_wrapper<void, true>::call<-[RCTMountingManager performTransaction:]::$_1&, facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&>(-[RCTMountingManager performTransaction:]::$_1&, facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&) + 37 (invoke.h:480) 9 intelexMobile 0x10516d5dd std::1::function::alloc_func<-[RCTMountingManager performTransaction:]::$_1, std::1::allocator<-[RCTMountingManager performTransaction:]::$_1>, void (facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&)>::operator()[abi:v15006](facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&) + 45 (function.h:185) 10 intelexMobile 0x10516c5d9 std::1::function::func<-[RCTMountingManager performTransaction:]::$_1, std::__1::allocator<-[RCTMountingManager performTransaction:]::$_1>, void (facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&)>::operator()(facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&) + 41 (function.h:359) 11 intelexMobile 0x105015102 std::1::function::value_func<void (facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&)>::operator()[abi:v15006](facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&) const + 66 (function.h:512) 12 intelexMobile 0x105013b35 std::1::function<void (facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&)>::operator()(facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&) const + 37 (function.h:1197) 13 intelexMobile 0x105013949 facebook::react::TelemetryController::pullTransaction(std::1::function<void (facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&)> const&, std::1::function<void (facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&)> const&, std::1::function<void (facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&)> const&) const + 377 (TelemetryController.cpp:39) 14 intelexMobile 0x105167e69 -[RCTMountingManager performTransaction:] + 649 (RCTMountingManager.mm:271) 15 intelexMobile 0x105167bba -[RCTMountingManager initiateTransaction:] + 394 16 intelexMobile 0x10516753e 42-[RCTMountingManager scheduleTransaction:]_block_invoke + 350 (RCTMountingManager.mm:213) 17 intelexMobile 0x104e5c66a RCTExecuteOnMainQueue_block_invoke + 26 (RCTUtils.m:266) 18 libdispatch.dylib 0x117f12e40 _dispatch_call_block_and_release + 12 19 libdispatch.dylib 0x117f140d9 _dispatch_client_callout + 8 20 libdispatch.dylib 0x117f23b86 _dispatch_main_queue_drain + 1330 21 libdispatch.dylib 0x117f23646 _dispatch_main_queue_callback_4CF + 31 22 CoreFoundation 0x11b4086cc CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE + 9 23 CoreFoundation 0x11b402fbe __CFRunLoopRun + 2429 24 CoreFoundation 0x11b402264 CFRunLoopRunSpecific + 560 25 GraphicsServices 0x11f01324e GSEventRunModal + 139 26 UIKitCore 0x12a7f27bf -[UIApplication _run] + 994 27 UIKitCore 0x12a7f75de UIApplicationMain + 123 28 intelexMobile 0x10499bbb8 main + 104 (main.m:7) 29 dyld_sim 0x11209e384 start_sim + 10 30 dyld 0x209c2241f start + 1903

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 0x18acc266c ??? 1 0x18acc266c ??? 2 libsystem_platform.dylib 0x11ab07603 _sigtramp + 51 3 libsystem_c.dylib 0x11834de58 abort + 130 4 libc++abi.dylib 0x1121ca5f2 abort_message + 241 5 libc++abi.dylib 0x1121bc7cb demangling_terminate_handler() + 267 6 libobjc.A.dylib 0x112b36182 _objc_terminate() + 96 7 intelexMobile 0x1049a1345 CPPExceptionTerminate() + 277 (BSG_KSCrashSentry_CPPException.mm:137) 8 libc++abi.dylib 0x1121c9a4b std::terminate(void (*)()) + 6 9 libc++abi.dylib 0x1121c9a06 std::terminate() + 54 10 libdispatch.dylib 0x117f140ed _dispatch_client_callout + 28 11 libdispatch.dylib 0x117f23b86 _dispatch_main_queue_drain + 1330 12 libdispatch.dylib 0x117f23646 _dispatch_main_queue_callback_4CF + 31 13 CoreFoundation 0x11b4086cc CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE + 9 14 CoreFoundation 0x11b402fbe CFRunLoopRun + 2429 15 CoreFoundation 0x11b402264 CFRunLoopRunSpecific + 560 16 GraphicsServices 0x11f01324e GSEventRunModal + 139 17 UIKitCore 0x12a7f27bf -[UIApplication _run] + 994 18 UIKitCore 0x12a7f75de UIApplicationMain + 123 19 intelexMobile 0x10499bbb8 main + 104 (main.m:7) 20 dyld_sim 0x11209e384 start_sim + 10 21 dyld 0x209c2241f start + 1903

Thread 1:: com.apple.rosetta.exceptionserver 0 ??? 0x7ff7fff95694 ???

Thread 2:: com.apple.uikit.eventfetch-thread 0 ??? 0x109a9f9a8 ??? 1 0x109b7554c ??? 2 libsystem_kernel.dylib 0x11b01872d mach_msg2_internal + 78 3 libsystem_kernel.dylib 0x11b0115e4 mach_msg_overwrite + 692 4 libsystem_kernel.dylib 0x11b00a89a mach_msg + 19 5 CoreFoundation 0x11b408437 CFRunLoopServiceMachPort + 145 6 CoreFoundation 0x11b402b7b CFRunLoopRun + 1338 7 CoreFoundation 0x11b402264 CFRunLoopRunSpecific + 560 8 Foundation 0x1191c7c8d -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 213 9 Foundation 0x1191c7f04 -[NSRunLoop(NSRunLoop) runUntilDate:] + 72 10 UIKitCore 0x12a8c6c29 -[UIEventFetcher threadMain] + 521 11 Foundation 0x1191f13f4 NSThreadstart__ + 1009 12 libsystem_pthread.dylib 0x11b07b1d3 _pthread_start + 125 13 libsystem_pthread.dylib 0x11b076bd3 thread_start + 15

Thread 3:: KSCrash Exception Handler (Secondary) 0 ??? 0x109a9f9a8 ??? 1 0x109b7554c ??? 2 libsystem_kernel.dylib 0x11b01872d mach_msg2_internal + 78 3 libsystem_kernel.dylib 0x11b02f9d0 thread_suspend + 84 4 intelexMobile 0x1049a1e68 ksmachexc_i_handleExceptions + 136 (BSG_KSCrashSentry_MachException.c:222) 5 libsystem_pthread.dylib 0x11b07b1d3 _pthread_start + 125 6 libsystem_pthread.dylib 0x11b076bd3 thread_start + 15

Thread 4:: KSCrash Exception Handler (Primary) 0 ??? 0x109a9f9a8 ??? 1 0x109b7554c ??? 2 libsystem_kernel.dylib 0x11b01872d mach_msg2_internal + 78 3 libsystem_kernel.dylib 0x11b0115e4 mach_msg_overwrite + 692 4 libsystem_kernel.dylib 0x11b00a89a mach_msg + 19 5 intelexMobile 0x1049a1ea6 ksmachexc_i_handleExceptions + 198 (BSG_KSCrashSentry_MachException.c:229) 6 libsystem_pthread.dylib 0x11b07b1d3 _pthread_start + 125 7 libsystem_pthread.dylib 0x11b076bd3 thread_start + 15

cipolleschi commented 1 year ago

This is an iOS crash, so more on my plate rather than @cortinico.

Can you set up a repro for this crash so that I can investigate it properly?

ravindraguptacapgemini commented 1 year ago

@cipolleschi I was not able to add it to the reproducer app. It happens when providing custom icon component for marker, like:

<Marker coordinate={{latitude: latitude, longitude: longitude}}>
  <MyCustomMarkerView {...marker} />
</Marker>

Please check if updated log can help:

Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Triggered by Thread: 0

Last Exception Backtrace: 0 CoreFoundation 0x11b9df77b exceptionPreprocess + 226 1 libobjc.A.dylib 0x113086b73 objc_exception_throw + 48 2 CoreFoundation 0x11b9ee8c4 +[NSObject(NSObject) instanceMethodSignatureForSelector:] + 0 3 UIKitCore 0x12ad61822 -[UIResponder doesNotRecognizeSelector:] + 264 4 CoreFoundation 0x11b9e3c66 __forwarding + 1443 5 CoreFoundation 0x11b9e5e08 _CF_forwarding_prep_0 + 120 6 intelexMobile 0x10595b99d -[AIRGoogleMapMarker removeReactSubview:] + 61 (AIRGoogleMapMarker.m:100) 7 intelexMobile 0x1056cea6d -[RCTLegacyViewManagerInteropComponentView unmountChildComponentView:index:] + 157 (RCTLegacyViewManagerInteropComponentView.mm:163) 8 intelexMobile 0x1056e752f RCTPerformMountInstructions(std::1::vector<facebook::react::ShadowViewMutation, std::1::allocator> const&, RCTComponentViewRegistry*, RCTMountingTransactionObserverCoordinator&, int) + 1679 (RCTMountingManager.mm:104) 9 intelexMobile 0x1056e6e8b -[RCTMountingManager performTransaction:]::$_1::operator()(facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&) const + 75 (RCTMountingManager.mm:279) 10 intelexMobile 0x1056e6e35 decltype(std::declval<-[RCTMountingManager performTransaction:]::$_1&>()(std::declval<facebook::react::MountingTransaction const&>(), std::declval<facebook::react::SurfaceTelemetry const&>())) std::1::invoke[abi:v15006]<-[RCTMountingManager performTransaction:]::$_1&, facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&>(-[RCTMountingManager performTransaction:]::$_1&, facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&) + 37 (invoke.h:394) 11 intelexMobile 0x1056e6de5 void std::1::invoke_void_return_wrapper<void, true>::call<-[RCTMountingManager performTransaction:]::$_1&, facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&>(-[RCTMountingManager performTransaction:]::$_1&, facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&) + 37 (invoke.h:480) 12 intelexMobile 0x1056e6dad std::1::function::alloc_func<-[RCTMountingManager performTransaction:]::$_1, std::1::allocator<-[RCTMountingManager performTransaction:]::$_1>, void (facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&)>::operator()[abi:v15006](facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&) + 45 (function.h:185) 13 intelexMobile 0x1056e5da9 std::1::function::__func<-[RCTMountingManager performTransaction:]::$_1, std::1::allocator<-[RCTMountingManager performTransaction:]::$_1>, void (facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&)>::operator()(facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&) + 41 (function.h:359) 14 intelexMobile 0x10558dc32 std::1::function::value_func<void (facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&)>::operator()[abi:v15006](facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&) const + 66 (function.h:512) 15 intelexMobile 0x10558c665 std::1::function<void (facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&)>::operator()(facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&) const + 37 (function.h:1197) 16 intelexMobile 0x10558c479 facebook::react::TelemetryController::pullTransaction(std::1::function<void (facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&)> const&, std::1::function<void (facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&)> const&, std::1::function<void (facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&)> const&) const + 377 (TelemetryController.cpp:39) 17 intelexMobile 0x1056e1639 -[RCTMountingManager performTransaction:] + 649 (RCTMountingManager.mm:271) 18 intelexMobile 0x1056e138a -[RCTMountingManager initiateTransaction:] + 394 19 intelexMobile 0x1056e0d0e 42-[RCTMountingManager scheduleTransaction:]_block_invoke + 350 (RCTMountingManager.mm:213) 20 intelexMobile 0x1053d5d1a RCTExecuteOnMainQueue_block_invoke + 26 (RCTUtils.m:266) 21 libdispatch.dylib 0x118447e40 _dispatch_call_block_and_release + 12 22 libdispatch.dylib 0x1184490d9 _dispatch_client_callout + 8 23 libdispatch.dylib 0x118458b86 _dispatch_main_queue_drain + 1330 24 libdispatch.dylib 0x118458646 _dispatch_main_queue_callback_4CF + 31 25 CoreFoundation 0x11b93d6cc CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE + 9 26 CoreFoundation 0x11b937fbe CFRunLoopRun + 2429 27 CoreFoundation 0x11b937264 CFRunLoopRunSpecific + 560 28 GraphicsServices 0x11f54824e GSEventRunModal + 139 29 UIKitCore 0x12ad277bf -[UIApplication _run] + 994 30 UIKitCore 0x12ad2c5de UIApplicationMain + 123 31 intelexMobile 0x104f1b198 main + 104 (main.m:7) 32 dyld_sim 0x1125d3384 start_sim + 10 33 dyld 0x20a27e41f start + 1903

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 0x18bb22054 ??? 1 0x18bb22054 ??? 2 libsystem_platform.dylib 0x11b03c603 _sigtramp + 51 3 libsystem_c.dylib 0x118882e58 abort + 130 4 libc++abi.dylib 0x1126ff5f2 abort_message + 241 5 libc++abi.dylib 0x1126f17cb demangling_terminate_handler() + 267 6 libobjc.A.dylib 0x11306b182 _objc_terminate() + 96 7 intelexMobile 0x104f20925 CPPExceptionTerminate() + 277 (BSG_KSCrashSentry_CPPException.mm:137) 8 libc++abi.dylib 0x1126fea4b std::terminate(void (*)()) + 6 9 libc++abi.dylib 0x1126fea06 std::terminate() + 54 10 libdispatch.dylib 0x1184490ed _dispatch_client_callout + 28 11 libdispatch.dylib 0x118458b86 _dispatch_main_queue_drain + 1330 12 libdispatch.dylib 0x118458646 _dispatch_main_queue_callback_4CF + 31 13 CoreFoundation 0x11b93d6cc CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE + 9 14 CoreFoundation 0x11b937fbe CFRunLoopRun + 2429 15 CoreFoundation 0x11b937264 CFRunLoopRunSpecific + 560 16 GraphicsServices 0x11f54824e GSEventRunModal + 139 17 UIKitCore 0x12ad277bf -[UIApplication _run] + 994 18 UIKitCore 0x12ad2c5de UIApplicationMain + 123 19 intelexMobile 0x104f1b198 main + 104 (main.m:7) 20 dyld_sim 0x1125d3384 start_sim + 10 21 dyld 0x20a27e41f start + 1903

Thread 1:: com.apple.rosetta.exceptionserver 0 ??? 0x7ff7ffd73694 ???

Thread 2:: com.apple.uikit.eventfetch-thread 0 ??? 0x109fd49a8 ??? 1 0x10a0aa584 ??? 2 libsystem_kernel.dylib 0x11b54d72d mach_msg2_internal + 78 3 libsystem_kernel.dylib 0x11b5465e4 mach_msg_overwrite + 692 4 libsystem_kernel.dylib 0x11b53f89a mach_msg + 19 5 CoreFoundation 0x11b93d437 CFRunLoopServiceMachPort + 145 6 CoreFoundation 0x11b937b7b CFRunLoopRun + 1338 7 CoreFoundation 0x11b937264 CFRunLoopRunSpecific + 560 8 Foundation 0x1196fcc8d -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 213 9 Foundation 0x1196fcf04 -[NSRunLoop(NSRunLoop) runUntilDate:] + 72 10 UIKitCore 0x12adfbc29 -[UIEventFetcher threadMain] + 521 11 Foundation 0x1197263f4 NSThreadstart__ + 1009 12 libsystem_pthread.dylib 0x11b5b01d3 _pthread_start + 125 13 libsystem_pthread.dylib 0x11b5abbd3 thread_start + 15

Thread 3:: KSCrash Exception Handler (Secondary) 0 ??? 0x109fd49a8 ??? 1 0x10a0aa584 ??? 2 libsystem_kernel.dylib 0x11b54d72d mach_msg2_internal + 78 3 libsystem_kernel.dylib 0x11b5649d0 thread_suspend + 84 4 intelexMobile 0x104f21448 ksmachexc_i_handleExceptions + 136 (BSG_KSCrashSentry_MachException.c:222) 5 libsystem_pthread.dylib 0x11b5b01d3 _pthread_start + 125 6 libsystem_pthread.dylib 0x11b5abbd3 thread_start + 15

Thread 4:: KSCrash Exception Handler (Primary) 0 ??? 0x109fd49a8 ??? 1 0x10a0aa584 ??? 2 libsystem_kernel.dylib 0x11b54d72d mach_msg2_internal + 78 3 libsystem_kernel.dylib 0x11b5465e4 mach_msg_overwrite + 692 4 libsystem_kernel.dylib 0x11b53f89a mach_msg + 19 5 intelexMobile 0x104f21486 ksmachexc_i_handleExceptions + 198 (BSG_KSCrashSentry_MachException.c:229) 6 libsystem_pthread.dylib 0x11b5b01d3 _pthread_start + 125 7 libsystem_pthread.dylib 0x11b5abbd3 thread_start + 15

Thread 5:: com.bugsnag.app-hang-detector 0 ??? 0x109fd49a8 ??? 1 0x10ae42cec ??? 2 libdispatch.dylib 0x11844959d _dispatch_sema4_timedwait + 72 3 libdispatch.dylib 0x118449a1c _dispatch_semaphore_wait_slow + 58 4 intelexMobile 0x104f2ac4d -[BSGAppHangDetector detectAppHangs] + 269 (BSGAppHangDetector.m:133) 5 intelexMobile 0x104f2ab35 DetectAppHangs + 21 (BSGAppHangDetector.m:216) 6 libsystem_pthread.dylib 0x11b5b01d3 _pthread_start + 125 7 libsystem_pthread.dylib 0x11b5abbd3 thread_start + 15

Thread 6:: com.apple.NSURLConnectionLoader 0 ??? 0x109fd49a8 ??? 1 0x10a0aa584 ??? 2 libsystem_kernel.dylib 0x11b54d72d mach_msg2_internal + 78 3 libsystem_kernel.dylib 0x11b5465e4 mach_msg_overwrite + 692 4 libsystem_kernel.dylib 0x11b53f89a mach_msg + 19 5 CoreFoundation 0x11b93d437 CFRunLoopServiceMachPort + 145 6 CoreFoundation 0x11b937b7b CFRunLoopRun + 1338 7 CoreFoundation 0x11b937264 CFRunLoopRunSpecific + 560 8 CFNetwork 0x113ff048e 0x113dc5000 + 2274446 9 Foundation 0x1197263f4 NSThreadstart__ + 1009 10 libsystem_pthread.dylib 0x11b5b01d3 _pthread_start + 125 11 libsystem_pthread.dylib 0x11b5abbd3 thread_start + 15

cipolleschi commented 1 year ago

have you added also MyCustomMarker to the interop layer?