I'm having a strange issue where after a ViroARSceneNavigator is rendered, then closed, the app becomes unresponsive. No errors are shown in XCode or inside the app. All touches and clicks are not registering and I need to rebuild the app in XCode to unfreeze.
Inside my app I'm conditionally rendering different ViroARSceneNavigators based on the type of experience the user has selected. I also have a back button rendered along with the AR Scene to pop them out of the AR Scene. After using the back button, this is when the freezing happens.
I'm wondering if after removing the ViroARSceneNavigator (which overlays the entire screen) is it still somehow sitting on top of the rest of my app's content and making it unclickable?
Is there a preferred way to disable or uninit an AR Scene?
Also, I'm not sure how much this helps, but here's a video of the issue:
You'll notice I click tabs at the bottom to show different screens, afterward jumping into the AR scene. After I click the back button within ViroARSceneNavigator, the app is frozen and none of my other clicks are registering.
Here is a version of the same workflow, however with the ViroARSceneNavigator removed and replaced with a simple <Text> component. You'll notice on this one, I'm able to navigate back and afterward can continue to move between tabs.
Hi @bryantAXS,
Thanks for reporting this issue. If you look at our Hello World Project, we "add" and "remove" the ViroARSceneNavigator component programatically and that has worked for us. However, we've not tried it extensively with React-Navigation.
Something that would help us debug would be, if you load up your application in Xcode, navigate to when the app is "frozen" and click on the highlighted button below:

That'll load the user interface into Xcode and you can see what views are rendered in iOS.
It'd be helpful to see if we may be possibly leaving a rogue view behind when you're removing the ViroARSceneNavigator.
ie. In the below view you can see that we have our VRTARSceneNavigator in view w/ a Exit button on top:

Alright, so after about 30 seconds it spits out this giant ugly error into the XCode console. No tree was rendered.
Error: Unable to capture view hierarchy.
Details: Log Title: Data source expression execution failure.
Log Details: error evaluating expression โ(id)[[(Class)objc_getClass("DBGTargetHub") sharedHub] performRequestWithRequestInBase64:@"ewogICJEQkdIaWVyYXJjaHlSZXF1ZXN0UHJpb3JpdHkiIDogMCwKICAiREJHSGllcmFyY2h5T2JqZWN0RGlzY292ZXJ5IiA6IDEsCiAgIkRCR0hpZXJhcmNoeVJlcXVlc3RJZGVudGlmaWVyIiA6ICI0MTg5NTBDRS02MkMyLTREMUEtQTQ2Qy04RjAxMzI5NTk0NzQiLAogICJEQkdIaWVyYXJjaHlSZXF1ZXN0QWN0aW9ucyIgOiBbCiAgICB7CiAgICAgICJhY3Rpb25DbGFzcyIgOiAiRGVidWdIaWVyYXJjaHlSZXNldEFjdGlvbiIKICAgIH0sCiAgICB7CiAgICAgICJvYmplY3RJZGVudGlmaWVycyIgOiBudWxsLAogICAgICAib3B0aW9ucyIgOiAwLAogICAgICAicHJvcGVydHlOYW1lcyIgOiBbCiAgICAgICAgImRiZ0Zvcm1hdHRlZERpc3BsYXlOYW1lIgogICAgICBdLAogICAgICAiZXhhY3RUeXBlc0FyZUV4Y2x1c2l2ZSIgOiAwLAogICAgICAib3B0aW9uc0NvbXBhcmlzb25TdHlsZSIgOiAwLAogICAgICAiZXhhY3RUeXBlcyIgOiBudWxsLAogICAgICAidHlwZXNBcmVFeGNsdXNpdmUiIDogMCwKICAgICAgInZpc2liaWxpdHkiIDogMTUsCiAgICAgICJ0eXBlcyIgOiBudWxsLAogICAgICAib2JqZWN0SWRlbnRpZmllcnNBcmVFeGNsdXNpdmUiIDogMCwKICAgICAgImFjdGlvbkNsYXNzIiA6ICJEZWJ1Z0hpZXJhcmNoeVByb3BlcnR5QWN0aW9uIiwKICAgICAgInByb3BlcnR5TmFtZXNBcmVFeGNsdXNpdmUiIDogMAogICAgfSwKICAgIHsKICAgICAgIm9iamVjdElkZW50aWZpZXJzIiA6IG51bGwsCiAgICAgICJvcHRpb25zIiA6IDAsCiAgICAgICJwcm9wZXJ0eU5hbWVzIiA6IFsKICAgICAgICAiYW5jaG9yUG9pbnQiLAogICAgICAgICJhbmNob3JQb2ludFoiLAogICAgICAgICJib3VuZHMiLAogICAgICAgICJjb250ZW50c1NjYWxlIiwKICAgICAgICAiZG91YmxlU2lkZWQiLAogICAgICAgICJmcmFtZSIsCiAgICAgICAgImdlb21ldHJ5RmxpcHBlZCIsCiAgICAgICAgIm1hc2tzVG9Cb3VuZHMiLAogICAgICAgICJuYW1lIiwKICAgICAgICAib3BhY2l0eSIsCiAgICAgICAgIm9wYXF1ZSIsCiAgICAgICAgInBvc2l0aW9uIiwKICAgICAgICAic3VibGF5ZXJUcmFuc2Zvcm0iLAogICAgICAgICJ0cmFuc2Zvcm0iLAogICAgICAgICJ6UG9zaXRpb24iCiAgICAgIF0sCiAgICAgICJleGFjdFR5cGVzQXJlRXhjbHVzaXZlIiA6IDAsCiAgICAgICJvcHRpb25zQ29tcGFyaXNvblN0eWxlIiA6IDAsCiAgICAgICJleGFjdFR5cGVzIiA6IG51bGwsCiAgICAgICJ0eXBlc0FyZUV4Y2x1c2l2ZSIgOiAwLAogICAgICAidmlzaWJpbGl0eSIgOiAxNSwKICAgICAgInR5cGVzIiA6IFsKICAgICAgICAiQ0FMYXllciIKICAgICAgXSwKICAgICAgIm9iamVjdElkZW50aWZpZXJzQXJlRXhjbHVzaXZlIiA6IDAsCiAgICAgICJhY3Rpb25DbGFzcyIgOiAiRGVidWdIaWVyYXJjaHlQcm9wZXJ0eUFjdGlvbiIsCiAgICAgICJwcm9wZXJ0eU5hbWVzQXJlRXhjbHVzaXZlIiA6IDAKICAgIH0sCiAgICB7CiAgICAgICJvYmplY3RJZGVudGlmaWVycyIgOiBudWxsLAogICAgICAib3B0aW9ucyIgOiAwLAogICAgICAicHJvcGVydHlOYW1lcyIgOiBbCiAgICAgICAgImNvbnN0YW50IiwKICAgICAgICAiZmlyc3RBdHRyaWJ1dGUiLAogICAgICAgICJmaXJzdEl0ZW0iLAogICAgICAgICJpZGVudGlmaWVyIiwKICAgICAgICAibXVsdGlwbGllciIsCiAgICAgICAgInByaW9yaXR5IiwKICAgICAgICAicmVsYXRpb24iLAogICAgICAgICJzZWNvbmRBdHRyaWJ1dGUiLAogICAgICAgICJzZWNvbmRJdGVtIgogICAgICBdLAogICAgICAiZXhhY3RUeXBlc0FyZUV4Y2x1c2l2ZSIgOiAwLAogICAgICAib3B0aW9uc0NvbXBhcmlzb25TdHlsZSIgOiAwLAogICAgICAiZXhhY3RUeXBlcyIgOiBudWxsLAogICAgICAidHlwZXNBcmVFeGNsdXNpdmUiIDogMCwKICAgICAgInZpc2liaWxpdHkiIDogMTUsCiAgICAgICJ0eXBlcyIgOiBbCiAgICAgICAgIk5TTGF5b3V0Q29uc3RyYWludCIKICAgICAgXSwKICAgICAgIm9iamVjdElkZW50aWZpZXJzQXJlRXhjbHVzaXZlIiA6IDAsCiAgICAgICJhY3Rpb25DbGFzcyIgOiAiRGVidWdIaWVyYXJjaHlQcm9wZXJ0eUFjdGlvbiIsCiAgICAgICJwcm9wZXJ0eU5hbWVzQXJlRXhjbHVzaXZlIiA6IDAKICAgIH0sCiAgICB7CiAgICAgICJvYmplY3RJZGVudGlmaWVycyIgOiBudWxsLAogICAgICAib3B0aW9ucyIgOiAwLAogICAgICAicHJvcGVydHlOYW1lcyIgOiBbCiAgICAgICAgImFuY2hvclBvaW50IiwKICAgICAgICAiZnJhbWUiLAogICAgICAgICJoaWRkZW4iLAogICAgICAgICJwb3NpdGlvbiIsCiAgICAgICAgInVudHJhbnNmb3JtZWRTaXplIiwKICAgICAgICAidmlzdWFsUmVwcmVzZW50YXRpb25PZmZzZXQiLAogICAgICAgICJ4U2NhbGUiLAogICAgICAgICJ5U2NhbGUiLAogICAgICAgICJ6UG9zaXRpb24iLAogICAgICAgICJ6Um90YXRpb24iCiAgICAgIF0sCiAgICAgICJleGFjdFR5cGVzQXJlRXhjbHVzaXZlIiA6IDAsCiAgICAgICJvcHRpb25zQ29tcGFyaXNvblN0eWxlIiA6IDAsCiAgICAgICJleGFjdFR5cGVzIiA6IG51bGwsCiAgICAgICJ0eXBlc0FyZUV4Y2x1c2l2ZSIgOiAwLAogICAgICAidmlzaWJpbGl0eSIgOiAxNSwKICAgICAgInR5cGVzIiA6IFsKICAgICAgICAiU0tOb2RlIgogICAgICBdLAogICAgICAib2JqZWN0SWRlbnRpZmllcnNBcmVFeGNsdXNpdmUiIDogMCwKICAgICAgImFjdGlvbkNsYXNzIiA6ICJEZWJ1Z0hpZXJhcmNoeVByb3BlcnR5QWN0aW9uIiwKICAgICAgInByb3BlcnR5TmFtZXNBcmVFeGNsdXNpdmUiIDogMAogICAgfSwKICAgIHsKICAgICAgIm9iamVjdElkZW50aWZpZXJzIiA6IG51bGwsCiAgICAgICJvcHRpb25zIiA6IDAsCiAgICAgICJwcm9wZXJ0eU5hbWVzIiA6IFsKICAgICAgICAic2NhbGVNb2RlIiwKICAgICAgICAic2l6ZSIKICAgICAgXSwKICAgICAgImV4YWN0VHlwZXNBcmVFeGNsdXNpdmUiIDogMCwKICAgICAgIm9wdGlvbnNDb21wYXJpc29uU3R5bGUiIDogMCwKICAgICAgImV4YWN0VHlwZXMiIDogbnVsbCwKICAgICAgInR5cGVzQXJlRXhjbHVzaXZlIiA6IDAsCiAgICAgICJ2aXNpYmlsaXR5IiA6IDE1LAogICAgICAidHlwZXMiIDogWwogICAgICAgICJTS1NjZW5lIgogICAgICBdLAogICAgICAib2JqZWN0SWRlbnRpZmllcnNBcmVFeGNsdXNpdmUiIDogMCwKICAgICAgImFjdGlvbkNsYXNzIiA6ICJEZWJ1Z0hpZXJhcmNoeVByb3BlcnR5QWN0aW9uIiwKICAgICAgInByb3BlcnR5TmFtZXNBcmVFeGNsdXNpdmUiIDogMAogICAgfSwKICAgIHsKICAgICAgIm9iamVjdElkZW50aWZpZXJzIiA6IG51bGwsCiAgICAgICJvcHRpb25zIiA6IDEsCiAgICAgICJwcm9wZXJ0eU5hbWVzIiA6IG51bGwsCiAgICAgICJleGFjdFR5cGVzQXJlRXhjbHVzaXZlIiA6IDAsCiAgICAgICJvcHRpb25zQ29tcGFyaXNvblN0eWxlIiA6IDMsCiAgICAgICJleGFjdFR5cGVzIiA6IG51bGwsCiAgICAgICJ0eXBlc0FyZUV4Y2x1c2l2ZSIgOiAwLAogICAgICAidmlzaWJpbGl0eSIgOiAxNSwKICAgICAgInR5cGVzIiA6IFsKICAgICAgICAiU0tWaWV3IgogICAgICBdLAogICAgICAib2JqZWN0SWRlbnRpZmllcnNBcmVFeGNsdXNpdmUiIDogMCwKICAgICAgImFjdGlvbkNsYXNzIiA6ICJEZWJ1Z0hpZXJhcmNoeVByb3BlcnR5QWN0aW9uTGVnYWN5VjEiLAogICAgICAicHJvcGVydHlOYW1lc0FyZUV4Y2x1c2l2ZSIgOiAwCiAgICB9LAogICAgewogICAgICAib2JqZWN0SWRlbnRpZmllcnMiIDogbnVsbCwKICAgICAgIm9wdGlvbnMiIDogMSwKICAgICAgInByb3BlcnR5TmFtZXMiIDogbnVsbCwKICAgICAgImV4YWN0VHlwZXNBcmVFeGNsdXNpdmUiIDogMCwKICAgICAgIm9wdGlvbnNDb21wYXJpc29uU3R5bGUiIDogMywKICAgICAgImV4YWN0VHlwZXMiIDogbnVsbCwKICAgICAgInR5cGVzQXJlRXhjbHVzaXZlIiA6IDAsCiAgICAgICJ2aXNpYmlsaXR5IiA6IDE1LAogICAgICAidHlwZXMiIDogWwogICAgICAgICJTS1NjZW5lIgogICAgICBdLAogICAgICAib2JqZWN0SWRlbnRpZmllcnNBcmVFeGNsdXNpdmUiIDogMCwKICAgICAgImFjdGlvbkNsYXNzIiA6ICJEZWJ1Z0hpZXJhcmNoeVByb3BlcnR5QWN0aW9uTGVnYWN5VjEiLAogICAgICAicHJvcGVydHlOYW1lc0FyZUV4Y2x1c2l2ZSIgOiAwCiAgICB9LAogICAgewogICAgICAib2JqZWN0SWRlbnRpZmllcnMiIDogbnVsbCwKICAgICAgIm9wdGlvbnMiIDogMSwKICAgICAgInByb3BlcnR5TmFtZXMiIDogbnVsbCwKICAgICAgImV4YWN0VHlwZXNBcmVFeGNsdXNpdmUiIDogMCwKICAgICAgIm9wdGlvbnNDb21wYXJpc29uU3R5bGUiIDogMywKICAgICAgImV4YWN0VHlwZXMiIDogbnVsbCwKICAgICAgInR5cGVzQXJlRXhjbHVzaXZlIiA6IDAsCiAgICAgICJ2aXNpYmlsaXR5IiA6IDE1LAogICAgICAidHlwZXMiIDogWwogICAgICAgICJTS05vZGUiCiAgICAgIF0sCiAgICAgICJvYmplY3RJZGVudGlmaWVyc0FyZUV4Y2x1c2l2ZSIgOiAwLAogICAgICAiYWN0aW9uQ2xhc3MiIDogIkRlYnVnSGllcmFyY2h5UHJvcGVydHlBY3Rpb25MZWdhY3lWMSIsCiAgICAgICJwcm9wZXJ0eU5hbWVzQXJlRXhjbHVzaXZlIiA6IDAKICAgIH0sCiAgICB7CiAgICAgICJvYmplY3RJZGVudGlmaWVycyIgOiBudWxsLAogICAgICAib3B0aW9ucyIgOiAwLAogICAgICAicHJvcGVydHlOYW1lcyIgOiBbCiAgICAgICAgImRpc3BsYXlDb3JuZXJSYWRpdXMiLAogICAgICAgICJuYXRpdmVCb3VuZHMiLAogICAgICAgICJuYXRpdmVTY2FsZSIsCiAgICAgICAgInNjYWxlIgogICAgICBdLAogICAgICAiZXhhY3RUeXBlc0FyZUV4Y2x1c2l2ZSIgOiAwLAogICAgICAib3B0aW9uc0NvbXBhcmlzb25TdHlsZSIgOiAwLAogICAgICAiZXhhY3RUeXBlcyIgOiBudWxsLAogICAgICAidHlwZXNBcmVFeGNsdXNpdmUiIDogMCwKICAgICAgInZpc2liaWxpdHkiIDogMTUsCiAgICAgICJ0eXBlcyIgOiBbCiAgICAgICAgIlVJU2NyZWVuIgogICAgICBdLAogICAgICAib2JqZWN0SWRlbnRpZmllcnNBcmVFeGNsdXNpdmUiIDogMCwKICAgICAgImFjdGlvbkNsYXNzIiA6ICJEZWJ1Z0hpZXJhcmNoeVByb3BlcnR5QWN0aW9uIiwKICAgICAgInByb3BlcnR5TmFtZXNBcmVFeGNsdXNpdmUiIDogMAogICAgfSwKICAgIHsKICAgICAgIm9iamVjdElkZW50aWZpZXJzIiA6IG51bGwsCiAgICAgICJvcHRpb25zIiA6IDAsCiAgICAgICJwcm9wZXJ0eU5hbWVzIiA6IFsKICAgICAgICAia2V5V2luZG93IiwKICAgICAgICAibWFpbldpbmRvdyIsCiAgICAgICAgInN0YXR1c0Jhck9yaWVudGF0aW9uIgogICAgICBdLAogICAgICAiZXhhY3RUeXBlc0FyZUV4Y2x1c2l2ZSIgOiAwLAogICAgICAib3B0aW9uc0NvbXBhcmlzb25TdHlsZSIgOiAwLAogICAgICAiZXhhY3RUeXBlcyIgOiBudWxsLAogICAgICAidHlwZXNBcmVFeGNsdXNpdmUiIDogMCwKICAgICAgInZpc2liaWxpdHkiIDogMTUsCiAgICAgICJ0eXBlcyIgOiBbCiAgICAgICAgIlVJQXBwbGljYXRpb24iCiAgICAgIF0sCiAgICAgICJvYmplY3RJZGVudGlmaWVyc0FyZUV4Y2x1c2l2ZSIgOiAwLAogICAgICAiYWN0aW9uQ2xhc3MiIDogIkRlYnVnSGllcmFyY2h5UHJvcGVydHlBY3Rpb24iLAogICAgICAicHJvcGVydHlOYW1lc0FyZUV4Y2x1c2l2ZSIgOiAwCiAgICB9LAogICAgewogICAgICAib2JqZWN0SWRlbnRpZmllcnMiIDogbnVsbCwKICAgICAgIm9wdGlvbnMiIDogMCwKICAgICAgInByb3BlcnR5TmFtZXMiIDogWwogICAgICAgICJ0aXRsZSIsCiAgICAgICAgImludGVybmFsIiwKICAgICAgICAidmlzaWJsZSIKICAgICAgXSwKICAgICAgImV4YWN0VHlwZXNBcmVFeGNsdXNpdmUiIDogMCwKICAgICAgIm9wdGlvbnNDb21wYXJpc29uU3R5bGUiIDogMCwKICAgICAgImV4YWN0VHlwZXMiIDogbnVsbCwKICAgICAgInR5cGVzQXJlRXhjbHVzaXZlIiA6IDAsCiAgICAgICJ2aXNpYmlsaXR5IiA6IDE1LAogICAgICAidHlwZXMiIDogWwogICAgICAgICJVSVdpbmRvdyIKICAgICAgXSwKICAgICAgIm9iamVjdElkZW50aWZpZXJzQXJlRXhjbHVzaXZlIiA6IDAsCiAgICAgICJhY3Rpb25DbGFzcyIgOiAiRGVidWdIaWVyYXJjaHlQcm9wZXJ0eUFjdGlvbiIsCiAgICAgICJwcm9wZXJ0eU5hbWVzQXJlRXhjbHVzaXZlIiA6IDAKICAgIH0sCiAgICB7CiAgICAgICJvYmplY3RJZGVudGlmaWVycyIgOiBudWxsLAogICAgICAib3B0aW9ucyIgOiAwLAogICAgICAicHJvcGVydHlOYW1lcyIgOiBbCiAgICAgICAgInRpdGxlIgogICAgICBdLAogICAgICAiZXhhY3RUeXBlc0FyZUV4Y2x1c2l2ZSIgOiAwLAogICAgICAib3B0aW9uc0NvbXBhcmlzb25TdHlsZSIgOiAwLAogICAgICAiZXhhY3RUeXBlcyIgOiBudWxsLAogICAgICAidHlwZXNBcmVFeGNsdXNpdmUiIDogMCwKICAgICAgInZpc2liaWxpdHkiIDogMTUsCiAgICAgICJ0eXBlcyIgOiBbCiAgICAgICAgIlVJVmlld0NvbnRyb2xsZXIiCiAgICAgIF0sCiAgICAgICJvYmplY3RJZGVudGlmaWVyc0FyZUV4Y2x1c2l2ZSIgOiAwLAogICAgICAiYWN0aW9uQ2xhc3MiIDogIkRlYnVnSGllcmFyY2h5UHJvcGVydHlBY3Rpb24iLAogICAgICAicHJvcGVydHlOYW1lc0FyZUV4Y2x1c2l2ZSIgOiAwCiAgICB9LAogICAgewogICAgICAib2JqZWN0SWRlbnRpZmllcnMiIDogbnVsbCwKICAgICAgIm9wdGlvbnMiIDogMCwKICAgICAgInByb3BlcnR5TmFtZXMiIDogWwogICAgICAgICJhbHBoYSIsCiAgICAgICAgImFtYmlndWl0eVN0YXR1c01hc2siLAogICAgICAgICJib3VuZHMiLAogICAgICAgICJkYmdWaWV3Rm9yRmlyc3RCYXNlbGluZUxheW91dCIsCiAgICAgICAgImRiZ1ZpZXdGb3JMYXN0QmFzZWxpbmVMYXlvdXQiLAogICAgICAgICJmaXJzdEJhc2VsaW5lT2Zmc2V0RnJvbVRvcCIsCiAgICAgICAgImZyYW1lIiwKICAgICAgICAiaGFzQW1iaWd1b3VzTGF5b3V0IiwKICAgICAgICAiaGlkZGVuIiwKICAgICAgICAiaG9yaXpvbnRhbEFmZmVjdGluZ0NvbnN0cmFpbnRzIiwKICAgICAgICAibGFzdEJhc2VsaW5lT2Zmc2V0RnJvbUJvdHRvbSIsCiAgICAgICAgImxheW91dE1hcmdpbnMiLAogICAgICAgICJ2ZXJ0aWNhbEFmZmVjdGluZ0NvbnN0cmFpbnRzIgogICAgICBdLAogICAgICAiZXhhY3RUeXBlc0FyZUV4Y2x1c2l2ZSIgOiAwLAogICAgICAib3B0aW9uc0NvbXBhcmlzb25TdHlsZSIgOiAwLAogICAgICAiZXhhY3RUeXBlcyIgOiBudWxsLAogICAgICAidHlwZXNBcmVFeGNsdXNpdmUiIDogMCwKICAgICAgInZpc2liaWxpdHkiIDogMTUsCiAgICAgICJ0eXBlcyIgOiBbCiAgICAgICAgIlVJVmlldyIKICAgICAgXSwKICAgICAgIm9iamVjdElkZW50aWZpZXJzQXJlRXhjbHVzaXZlIiA6IDAsCiAgICAgICJhY3Rpb25DbGFzcyIgOiAiRGVidWdIaWVyYXJjaHlQcm9wZXJ0eUFjdGlvbiIsCiAgICAgICJwcm9wZXJ0eU5hbWVzQXJlRXhjbHVzaXZlIiA6IDAKICAgIH0KICBdLAogICJEQkdIaWVyYXJjaHlSZXF1ZXN0TmFtZSIgOiAiSW5pdGlhbCByZXF1ZXN0Igp9"]โ: error: Execution was interrupted.
The process has been returned to the state before expression evaluation.
Log Method: -[DBGDataSourceConnectionLibViewDebugger _executeLLDBExpression:forRequest:onPotentialThread:iteration:]_block_invoke_2
Method: -[DBGViewDebugger _initiateInitialRequestWithDataSourceVersion:]_block_invoke
Please file a bug at http://bugreport.apple.com with this warning message and any useful information you can provide.
(lldb)
Hi @bryantAXS,
Not sure what's going on with Xcode there, but there's a workaround.
Heirarchy Viewer, click on the Pause button to start the debugger(lldb) prompt: po [[[UIWindow keyWindow] rootViewController] _printHierarchy], you should see output like: <UIViewController 0x102c0bd40>, state: appeared, view: <RCTRootView 0x102d040d0>po [0x102d040d0 recursiveDescription]Here's a screenshot of what you should expect to see:

Ok wow lots of output here. I'm not really sure where to start looking but here's hoping you do!
(lldb) po [[[UIWindow keyWindow] rootViewController] _printHierarchy]
<UIViewController 0x107212640>, state: appeared, view: <RCTRootView 0x107311130>
(lldb) po [0x107311130 recursiveDescription]
<RCTRootView: 0x107311130; frame = (0 0; 375 667); autoresize = W+H; layer = <CALayer: 0x1c003e760>>
| <RCTRootContentView: 0x10732ab50; reactTag: 1; frame = (0 0; 375 667); gestureRecognizers = <NSArray: 0x1c0257ca0>; layer = <CALayer: 0x1c003e840>>
| | <RCTView: 0x10722db50; reactTag: 32; frame = (0 0; 375 667); layer = <CALayer: 0x1c422c740>>
| | | <RCTView: 0x10722d690; reactTag: 30; frame = (0 0; 375 667); layer = <CALayer: 0x1c422c680>>
| | | | <RCTView: 0x10722d1d0; reactTag: 29; frame = (0 0; 375 667); layer = <CALayer: 0x1c422c5e0>>
| | | | | <RCTView: 0x10722cd10; reactTag: 28; frame = (0 0; 375 667); layer = <CALayer: 0x1c422c460>>
| | | | | | <RCTView: 0x10722c120; reactTag: 27; frame = (0 0; 375 667); layer = <CALayer: 0x1c422bdc0>>
| | | | | | | <RCTView: 0x10722aff0; reactTag: 26; frame = (0 0; 375 667); layer = <CALayer: 0x1c422c480>>
| | | | | | | | <RCTView: 0x10722ace0; reactTag: 25; frame = (0 0; 375 667); layer = <CALayer: 0x1c422c400>>
| | | | | | | | | <RCTView: 0x10722a9d0; reactTag: 24; frame = (0 0; 375 667); layer = <CALayer: 0x1c422c3a0>>
| | | | | | | | | | <RCTView: 0x10722a6c0; reactTag: 23; frame = (0 0; 375 667); layer = <CALayer: 0x1c422c340>>
| | | | | | | | | | | <RCTView: 0x10722a120; reactTag: 22; frame = (0 0; 375 667); alpha = 0; userInteractionEnabled = NO; layer = <CALayer: 0x1c422c2e0>>
| | | | | | | | | | | | <RCTView: 0x107229e10; reactTag: 20; frame = (0 0; 375 667); layer = <CALayer: 0x1c422bd80>>
| | | | | | | | | | | | | <RCTView: 0x107342fa0; reactTag: 12; frame = (0 0; 375 70); layer = <CALayer: 0x1c0226740>>
| | | | | | | | | | | | | | <RCTView: 0x107321020; reactTag: 10; frame = (0 0; 375 70); layer = <CALayer: 0x1c022cba0>>
| | | | | | | | | | | | | | | <RCTView: 0x107325cd0; reactTag: 2; frame = (10 42.5; 118.5 0); layer = <CALayer: 0x1c022c4c0>>
| | | | | | | | | | | | | | | <RCTView: 0x107223ae0; reactTag: 5; frame = (128.5 29; 118 27); layer = <CALayer: 0x1c42237e0>>
| | | | | | | | | | | | | | | | <RCTTextView: 0x1072236b0; reactTag: 4; text: AUTHENTIC AR frame = (7.5 0; 104 27); opaque = NO; layer = <CALayer: 0x1c422b1c0>>
| | | | | | | | | | | | | | | <RCTView: 0x10732c800; reactTag: 9; frame = (246.5 32.5; 118.5 20); layer = <CALayer: 0x1c022cb00>>
| | | | | | | | | | | | | | | | <RCTView: 0x1073158b0; reactTag: 8; frame = (98.5 0; 20 20); layer = <CALayer: 0x1c022c980>>
| | | | | | | | | | | | | | | | | <RCTTextView: 0x10733ed50; reactTag: 7; text: ๎ frame = (0 0; 20.5 21); opaque = NO; layer = <CALayer: 0x1c022c800>>
| | | | | | | | | | | | | <RCTScrollView: 0x10804b000; reactTag: 19; frame = (0 70; 375 597); clipsToBounds = YES; layer = <CALayer: 0x1c422c160>>
| | | | | | | | | | | | | | <RCTCustomScrollView: 0x10804be00; baseClass = UIScrollView; frame = (0 0; 375 597); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x1c4455660>; layer = <CALayer: 0x1c422c120>; contentOffset: {0, 0}; contentSize: {375, 597}; adjustedContentInset: {0, 0, 0, 0}>
| | | | | | | | | | | | | | | <RCTScrollContentView: 0x107229500; reactTag: 18; frame = (0 0; 375 597); layer = <CALayer: 0x1c422bec0>>
| | | | | | | | | | | | | | | | <RCTView: 0x107226b40; reactTag: 15; frame = (0 20; 375 40); layer = <CALayer: 0x1c422b4a0>>
| | | | | | | | | | | | | | | | | <RCTTextView: 0x107226910; reactTag: 14; text: PROJECTS frame = (25 0; 350 27.5); opaque = NO; layer = <CALayer: 0x1c4227160>>
| | | | | | | | | | | | | | | | <RCTScrollView: 0x10788f000; reactTag: 17; frame = (0 60; 375 537); clipsToBounds = YES; layer = <CALayer: 0x1c0032d80>>
| | | | | | | | | | | | | | | | | <RCTCustomScrollView: 0x107899200; baseClass = UIScrollView; frame = (0 0; 375 537); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x1c0444740>; layer = <CALayer: 0x1c0032dc0>; contentOffset: {0, 0}; contentSize: {1015, 537}; adjustedContentInset: {0, 0, 0, 0}>
| | | | | | | | | | | | | | | | | | <RCTScrollContentView: 0x107227e10; reactTag: 16; frame = (0 0; 1015 537); layer = <CALayer: 0x1c422bb40>>
| | | | | | | | | | | | | | | | | | | <RCTView: 0x107232be0; reactTag: 47; frame = (27.5 0; 320 537); layer = <CALayer: 0x1c422d760>>
| | | | | | | | | | | | | | | | | | | | <RCTView: 0x1072328d0; reactTag: 46; frame = (0 0; 320 537); layer = <CALayer: 0x1c422d6e0>>
| | | | | | | | | | | | | | | | | | | | | <RCTView: 0x1072325c0; reactTag: 45; frame = (0 0; 320 427); layer = <CALayer: 0x1c422d680>>
| | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x1073470b0; reactTag: 34; frame = (0 0; 320 213.5); clipsToBounds = YES; layer = <CALayer: 0x1c022e140>>
| | | | | | | | | | | | | | | | | | | | | | | <RCTImageView: 0x107346dd0; baseClass = UIImageView; frame = (-56.5 0; 433.5 213.5); clipsToBounds = YES; opaque = NO; layer = <CALayer: 0x1c022bd00>>
| | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x1072322b0; reactTag: 44; frame = (0 250.5; 320 176.5); layer = <CALayer: 0x1c422d500>>
| | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x107231870; reactTag: 39; frame = (20 0; 280 100.5); layer = <CALayer: 0x1c422ce60>>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x1073475b0; reactTag: 36; text: Portal Experience frame = (0 0; 280 29); opaque = NO; layer = <CALayer: 0x1c022e420>>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x107231640; reactTag: 38; text: Initial rendering of the Speer Arts Center atrium and surrounding area using the latest project spec sheet. frame = (0 38.5; 280 62.5); opaque = NO; layer = <CALayer: 0x1c422cce0>>
| | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x107231fa0; reactTag: 43; frame = (20 115; 280 61.5); layer = <CALayer: 0x1c422d200>>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x107231d70; reactTag: 42; text: VIEW NOW frame = (0 0; 280 27); opaque = NO; layer = <CALayer: 0x1c422d020>>
| | | | | | | | | | | | | | | | | | | <RCTView: 0x107235460; reactTag: 63; frame = (347.5 0; 320 537); layer = <CALayer: 0x1c422de60>>
| | | | | | | | | | | | | | | | | | | | <RCTView: 0x107235150; reactTag: 62; frame = (16 26.85; 288 483.3); transform = [0.89999997615814209, 0, 0, 0.89999997615814209, 0, 0]; alpha = 0.7; layer = <CALayer: 0x1c422de00>>
| | | | | | | | | | | | | | | | | | | | | <RCTView: 0x107234e40; reactTag: 60; frame = (0 0; 320 427); layer = <CALayer: 0x1c422dda0>>
| | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x107347de0; reactTag: 49; frame = (0 0; 320 213.5); clipsToBounds = YES; layer = <CALayer: 0x1c022e5e0>>
| | | | | | | | | | | | | | | | | | | | | | | <RCTImageView: 0x107232ef0; baseClass = UIImageView; frame = (-56.5 0; 434 213.5); clipsToBounds = YES; opaque = NO; layer = <CALayer: 0x1c422d780>>
| | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x107234b30; reactTag: 59; frame = (0 250.5; 320 176.5); layer = <CALayer: 0x1c422dd40>>
| | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x1072340f0; reactTag: 55; frame = (20 0; 280 100.5); layer = <CALayer: 0x1c422d7e0>>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x1073482e0; reactTag: 52; text: 3D Model Experience frame = (0 0; 280 29); opaque = NO; layer = <CALayer: 0x1c022d680>>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x107348700; reactTag: 54; text: Initial rendering of the Speer Arts Center atrium and surrounding area using the latest project spec sheet. frame = (0 38.5; 280 62.5); opaque = NO; layer = <CALayer: 0x1c022e920>>
| | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x107234820; reactTag: 58; frame = (20 115; 280 61.5); layer = <CALayer: 0x1c422d8a0>>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x1072345f0; reactTag: 57; text: VIEW NOW frame = (0 0; 280 27); opaque = NO; layer = <CALayer: 0x1c422d9e0>>
| | | | | | | | | | | | | | | <UIImageView: 0x10734c7d0; frame = (369.5 -39; 2.5 36); alpha = 0; opaque = NO; autoresize = LM; userInteractionEnabled = NO; layer = <CALayer: 0x1c022b200>>
| | | | | | | | | | | | | | | <UIImageView: 0x10734c3a0; frame = (-39 591.5; 36 2.5); alpha = 0; opaque = NO; autoresize = TM; userInteractionEnabled = NO; layer = <CALayer: 0x1c02248e0>>
| | | | | | | | | | | <RCTView: 0x107364e90; reactTag: 132; frame = (0 0; 375 667); layer = <CALayer: 0x1c0227c00>>
| | | | | | | | | | | | <RCTView: 0x1073653c0; reactTag: 130; frame = (0 0; 375 667); layer = <CALayer: 0x1c02282e0>>
| | | | | | | | | | | | | <RCTView: 0x1073634e0; reactTag: 129; frame = (0 0; 375 667); layer = <CALayer: 0x1c02283a0>>
| | | | | | | | | | | | | | <RCTView: 0x1073631d0; reactTag: 128; frame = (0 0; 375 667); layer = <CALayer: 0x1c0227e20>>
| | | | | | | | | | | | | | | <RCTView: 0x107362ec0; reactTag: 127; frame = (0 0; 375 667); layer = <CALayer: 0x1c0227f40>>
| | | | | | | | | | | | | | | | <RCTView: 0x107362bb0; reactTag: 126; frame = (0 0; 375 667); clipsToBounds = YES; layer = <CALayer: 0x1c0227240>>
| | | | | | | | | | | | | | | | | <RCTView: 0x10735fd60; reactTag: 109; frame = (0 0; 1125 597); layer = <CALayer: 0x1c0228ca0>>
| | | | | | | | | | | | | | | | | | <RCTView: 0x1072651c0; reactTag: 106; frame = (0 0; 375 597); layer = <CALayer: 0x1c4234b20>>
| | | | | | | | | | | | | | | | | | | <RCTView: 0x107264eb0; reactTag: 105; frame = (0 0; 375 597); clipsToBounds = YES; layer = <CALayer: 0x1c42345e0>>
| | | | | | | | | | | | | | | | | | | | <RCTView: 0x10735f280; reactTag: 104; frame = (0 0; 375 597); layer = <CALayer: 0x1c02291e0>>
| | | | | | | | | | | | | | | | | | | | | <RCTView: 0x10735ef70; reactTag: 103; frame = (0 0; 375 597); layer = <CALayer: 0x1c02295e0>>
| | | | | | | | | | | | | | | | | | | | | | <RCTImageView: 0x10725d820; baseClass = UIImageView; frame = (0 0; 752 1624); clipsToBounds = YES; opaque = NO; layer = <CALayer: 0x1c42341e0>>
| | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x10725ed30; reactTag: 88; frame = (0 0; 375 85); layer = <CALayer: 0x1c422b2c0>>
| | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x10725ea20; reactTag: 87; frame = (0 0; 375 85); layer = <CALayer: 0x1c42347c0>>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x10725e0f0; reactTag: 84; frame = (10 37.5; 118.5 25); layer = <CALayer: 0x1c4234600>>
| | | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x10725dde0; reactTag: 83; frame = (0 0; 25 25); layer = <CALayer: 0x1c403fa80>>
| | | | | | | | | | | | | | | | | | | | | | | | | | <RCTImageView: 0x10725db00; baseClass = UIImageView; frame = (0 0; 25 25); clipsToBounds = YES; opaque = NO; layer = <CALayer: 0x1c422e080>>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x10725e400; reactTag: 85; frame = (128.5 50; 118 0); layer = <CALayer: 0x1c422dc20>>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x10725e710; reactTag: 86; frame = (246.5 50; 118.5 0); layer = <CALayer: 0x1c4234800>>
| | | | | | | | | | | | | | | | | | | | | | <RCTScrollView: 0x1078cce00; reactTag: 102; frame = (0 85; 375 512); clipsToBounds = YES; layer = <CALayer: 0x1c0229060>>
| | | | | | | | | | | | | | | | | | | | | | | <RCTCustomScrollView: 0x1078b8e00; baseClass = UIScrollView; frame = (0 0; 375 512); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x1c0443930>; layer = <CALayer: 0x1c0228f80>; contentOffset: {0, 0}; contentSize: {375, 458.5}; adjustedContentInset: {0, 0, 0, 0}>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTScrollContentView: 0x10735ea60; reactTag: 100; frame = (0 0; 375 458.5); layer = <CALayer: 0x1c0229120>>
| | | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x10735e750; reactTag: 99; frame = (0 0; 375 458.5); layer = <CALayer: 0x1c0229040>>
| | | | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x10734e950; reactTag: 95; frame = (15 0; 345 378.5); layer = <CALayer: 0x1c0229660>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTImageView: 0x107262750; baseClass = UIImageView; frame = (68.5 45; 208 184.5); clipsToBounds = YES; opaque = NO; layer = <CALayer: 0x1c422dba0>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x10735da60; reactTag: 92; text: To activate, hold your device in front of your body. frame = (20 249; 305 57.5); opaque = NO; layer = <CALayer: 0x1c0229860>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x10735bc50; reactTag: 94; text: THEN, WALK TOWARDS THE PORTAL frame = (43 316; 259 27.5); opaque = NO; layer = <CALayer: 0x1c0229780>>
| | | | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x10735e440; reactTag: 98; frame = (15 398.5; 345 60); layer = <CALayer: 0x1c0229520>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x10733d780; reactTag: 97; text: ENTER EXPERIENCE frame = (89 18.5; 167 27.5); opaque = NO; layer = <CALayer: 0x1c003e120>>
| | | | | | | | | | | | | | | | | | | | | | | | <UIImageView: 0x107268950; frame = (369.5 -39; 2.5 36); alpha = 0; opaque = NO; autoresize = LM; userInteractionEnabled = NO; layer = <CALayer: 0x1c4237120>>
| | | | | | | | | | | | | | | | | | | | | | | | <UIImageView: 0x10724e9e0; frame = (-39 506.5; 36 2.5); alpha = 0; opaque = NO; autoresize = TM; userInteractionEnabled = NO; layer = <CALayer: 0x1c4237080>>
| | | | | | | | | | | | | | | | | | <RCTView: 0x10735f740; reactTag: 107; frame = (375 0; 375 597); layer = <CALayer: 0x1c0229100>>
| | | | | | | | | | | | | | | | | | | <RCTView: 0x1073708a0; reactTag: 134; frame = (0 0; 375 597); clipsToBounds = YES; layer = <CALayer: 0x1c022ba40>>
| | | | | | | | | | | | | | | | | | | | <RCTView: 0x10726fb10; reactTag: 133; frame = (0 3000; 375 597); layer = <CALayer: 0x1c4234840>>
| | | | | | | | | | | | | | | | | | | | | <RCTView: 0x10727dfb0; reactTag: 156; frame = (0 0; 375 597); layer = <CALayer: 0x1c4239940>>
| | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x10727b1d0; reactTag: 147; frame = (0 0; 375 70); layer = <CALayer: 0x1c4238d80>>
| | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x10727aec0; reactTag: 146; frame = (0 0; 375 70); layer = <CALayer: 0x1c4238ce0>>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x107278220; reactTag: 137; frame = (10 42.5; 118.5 0); layer = <CALayer: 0x1c4237620>>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x107279330; reactTag: 140; frame = (128.5 29; 118 27); layer = <CALayer: 0x1c4237400>>
| | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x107279100; reactTag: 139; text: AUTHENTIC AR frame = (7.5 0; 104 27); opaque = NO; layer = <CALayer: 0x1c42387c0>>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x10727abb0; reactTag: 145; frame = (246.5 32.5; 118.5 20); layer = <CALayer: 0x1c4238ba0>>
| | | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x10727a8a0; reactTag: 144; frame = (98.5 0; 20 20); layer = <CALayer: 0x1c4238920>>
| | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x10727a670; reactTag: 143; text: ๎ frame = (0 0; 20.5 21); opaque = NO; layer = <CALayer: 0x1c4237c40>>
| | | | | | | | | | | | | | | | | | | | | | <RCTScrollView: 0x1080a7a00; reactTag: 155; frame = (0 70; 375 527); clipsToBounds = YES; layer = <CALayer: 0x1c4235620>>
| | | | | | | | | | | | | | | | | | | | | | | <RCTCustomScrollView: 0x1080a8000; baseClass = UIScrollView; frame = (0 0; 375 527); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x1c4643e40>; layer = <CALayer: 0x1c4239740>; contentOffset: {0, 0}; contentSize: {375, 527}; adjustedContentInset: {0, 0, 0, 0}>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTScrollContentView: 0x10727d870; reactTag: 154; frame = (0 0; 375 527); layer = <CALayer: 0x1c42394c0>>
| | | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x10727b900; reactTag: 150; frame = (0 20; 375 40); layer = <CALayer: 0x1c4238ea0>>
| | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x10727b6d0; reactTag: 149; text: COMMENTS frame = (25 0; 350 27.5); opaque = NO; layer = <CALayer: 0x1c4238e40>>
| | | | | | | | | | | | | | | | | | | | | | | | | <RCTScrollView: 0x1080a6c00; reactTag: 153; frame = (0 60; 375 467); clipsToBounds = YES; layer = <CALayer: 0x1c42390a0>>
| | | | | | | | | | | | | | | | | | | | | | | | | | <RCTCustomScrollView: 0x1080a7200; baseClass = UIScrollView; frame = (0 0; 375 467); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x1c46454c0>; layer = <CALayer: 0x1c4239080>; contentOffset: {0, 0}; contentSize: {375, 627.5}; adjustedContentInset: {0, 0, 0, 0}>
| | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTScrollContentView: 0x10727cfa0; reactTag: 152; frame = (0 0; 375 627.5); layer = <CALayer: 0x1c4238f00>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x10727f530; reactTag: 163; frame = (30 0; 315 103.5); layer = <CALayer: 0x1c423a080>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x107371860; reactTag: 158; text: 1 Here is a message in a comment frame = (25 25; 265 25.5); opaque = NO; layer = <CALayer: 0x1c022e700>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x10727f300; reactTag: 162; text: โ BRYANT HUGHES frame = (25 60; 265 19); opaque = NO; layer = <CALayer: 0x1c423a020>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x107280040; reactTag: 169; frame = (30 123.5; 315 103.5); layer = <CALayer: 0x1c423a2e0>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x10727fa30; reactTag: 165; text: 2 Here is a message in a comment frame = (25 25; 265 25.5); opaque = NO; layer = <CALayer: 0x1c423a140>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x10727cba0; reactTag: 168; text: โ BRYANT HUGHES frame = (25 60; 265 19); opaque = NO; layer = <CALayer: 0x1c423a260>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x107280e50; reactTag: 176; frame = (30 247; 315 103.5); layer = <CALayer: 0x1c423a460>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x107280540; reactTag: 172; text: 3 Here is a message in a comment frame = (25 25; 265 25.5); opaque = NO; layer = <CALayer: 0x1c4239d40>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x107280c20; reactTag: 175; text: โ BRYANT HUGHES frame = (25 60; 265 19); opaque = NO; layer = <CALayer: 0x1c423a400>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x107281960; reactTag: 183; frame = (30 370.5; 315 103.5); layer = <CALayer: 0x1c42374e0>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x10727e950; reactTag: 178; text: 4 Here is a message in a comment frame = (25 25; 265 25.5); opaque = NO; layer = <CALayer: 0x1c423a520>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x107281730; reactTag: 182; text: โ BRYANT HUGHES frame = (25 60; 265 19); opaque = NO; layer = <CALayer: 0x1c423a620>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x107282470; reactTag: 189; frame = (30 494; 315 103.5); layer = <CALayer: 0x1c423a820>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x107282970; reactTag: 185; text: 5 Here is a message in a comment frame = (25 25; 265 25.5); opaque = NO; layer = <CALayer: 0x1c42383e0>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x107282240; reactTag: 188; text: โ BRYANT HUGHES frame = (25 60; 265 19); opaque = NO; layer = <CALayer: 0x1c423a7c0>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | <UIImageView: 0x107285830; frame = (369.5 -39; 2.5 36); alpha = 0; opaque = NO; autoresize = LM; userInteractionEnabled = NO; layer = <CALayer: 0x1c423aee0>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | <UIImageView: 0x107285600; frame = (-39 461.5; 36 2.5); alpha = 0; opaque = NO; autoresize = TM; userInteractionEnabled = NO; layer = <CALayer: 0x1c423ae20>>
| | | | | | | | | | | | | | | | | | | | | | | | <UIImageView: 0x1072853d0; frame = (369.5 -39; 2.5 36); alpha = 0; opaque = NO; autoresize = LM; userInteractionEnabled = NO; layer = <CALayer: 0x1c423acc0>>
| | | | | | | | | | | | | | | | | | | | | | | | <UIImageView: 0x107284ff0; frame = (-39 521.5; 36 2.5); alpha = 0; opaque = NO; autoresize = TM; userInteractionEnabled = NO; layer = <CALayer: 0x1c423abc0>>
| | | | | | | | | | | | | | | | | | <RCTView: 0x10735fa50; reactTag: 108; frame = (750 0; 375 597); layer = <CALayer: 0x1c0228fc0>>
| | | | | | | | | | | | | | | | | | | <RCTView: 0x107371150; reactTag: 136; frame = (0 0; 375 597); clipsToBounds = YES; layer = <CALayer: 0x1c0228e00>>
| | | | | | | | | | | | | | | | | | | | <RCTView: 0x107370e40; reactTag: 135; frame = (0 3000; 375 597); layer = <CALayer: 0x1c022a0c0>>
| | | | | | | | | | | | | | | | | <RCTView: 0x1073628a0; reactTag: 125; frame = (0 597; 375 70); layer = <CALayer: 0x1c0228120>>
| | | | | | | | | | | | | | | | | | <RCTView: 0x107267ba0; reactTag: 124; frame = (0 0.5; 375 69.5); layer = <CALayer: 0x1c4235f60>>
| | | | | | | | | | | | | | | | | | | <RCTView: 0x1072662d0; reactTag: 113; frame = (0 7.5; 125 55); layer = <CALayer: 0x1c42350c0>>
| | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x1072660a0; reactTag: 112; text: ๎ frame = (52 17; 21 20.5); opaque = NO; layer = <CALayer: 0x1c4234d60>>
| | | | | | | | | | | | | | | | | | | <RCTView: 0x107267160; reactTag: 119; frame = (125 18.5; 125 32.5); layer = <CALayer: 0x1c4235740>>
| | | | | | | | | | | | | | | | | | | | <RCTView: 0x107266c20; reactTag: 116; frame = (75 -3; 16 18); layer = <CALayer: 0x1c42353a0>>
| | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x1072669f0; reactTag: 115; text: 2 frame = (3 1.5; 10.5 15.5); opaque = NO; layer = <CALayer: 0x1c4235340>>
| | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x107266f30; reactTag: 118; text: ๎ frame = (51 6; 23 20.5); opaque = NO; layer = <CALayer: 0x1c4235080>>
| | | | | | | | | | | | | | | | | | | <RCTView: 0x107267890; reactTag: 123; frame = (250 7.5; 125 55); layer = <CALayer: 0x1c4235e80>>
| | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x107267660; reactTag: 122; text: ๎ frame = (51.5 17; 22 20.5); opaque = NO; layer = <CALayer: 0x1c42352a0>>
(lldb)
Hi @bryantAXS,
Thanks for the output. For this issue, we suspect there might be a rogue view sitting on top of your app (eating your touch events).
Unfortunately, there doesn't seem to be a Viro* view in the hierarchy meaning that our views do seem to be destroyed. Also, with the bugged view hierarchy debugger, that also means we can't use the debug tools to easily see what view might be on top. With the tool, you could simply click on the view on top and it'd highlight it.
I'm curious if you could re-run the command using a "working" view hierarchy so we can compare the two outputs to see if we can identify a rogue view.
Also, what component/module are you using to switch between your React Native views? Maybe we can build a simpler app in-house to see if we can repro the issue.
Thanks,
Yeah no problem. So here is the hierarchy _before_ I click into the ARScene. When the app "freezes" we're clicking into the AR Scene from this view, then clicking "back" bringing us back to the same view here.
(lldb) po [[[UIWindow keyWindow] rootViewController] _printHierarchy]
<UIViewController 0x119d19010>, state: appeared, view: <RCTRootView 0x119d11090>
(lldb) po [0x119d11090 recursiveDescription]
<RCTRootView: 0x119d11090; frame = (0 0; 375 667); autoresize = W+H; layer = <CALayer: 0x1c42222e0>>
| <RCTRootContentView: 0x119e256d0; reactTag: 1; frame = (0 0; 375 667); gestureRecognizers = <NSArray: 0x1c04451f0>; layer = <CALayer: 0x1c0222b20>>
| | <RCTView: 0x119e3c030; reactTag: 32; frame = (0 0; 375 667); layer = <CALayer: 0x1c022a180>>
| | | <RCTView: 0x119e3bd20; reactTag: 30; frame = (0 0; 375 667); layer = <CALayer: 0x1c022a120>>
| | | | <RCTView: 0x119e3ba10; reactTag: 29; frame = (0 0; 375 667); layer = <CALayer: 0x1c0229b40>>
| | | | | <RCTView: 0x119e3b3f0; reactTag: 28; frame = (0 0; 375 667); layer = <CALayer: 0x1c0229e40>>
| | | | | | <RCTView: 0x119e3b0e0; reactTag: 27; frame = (0 0; 375 667); layer = <CALayer: 0x1c0229de0>>
| | | | | | | <RCTView: 0x119e3add0; reactTag: 26; frame = (0 0; 375 667); layer = <CALayer: 0x1c02298a0>>
| | | | | | | | <RCTView: 0x119d30230; reactTag: 25; frame = (0 0; 375 667); layer = <CALayer: 0x1c422adc0>>
| | | | | | | | | <RCTView: 0x119d2ff20; reactTag: 24; frame = (0 0; 375 667); layer = <CALayer: 0x1c422a480>>
| | | | | | | | | | <RCTView: 0x119d2fc10; reactTag: 23; frame = (0 0; 375 667); layer = <CALayer: 0x1c422a600>>
| | | | | | | | | | | <RCTView: 0x119d2f670; reactTag: 22; frame = (0 0; 375 667); alpha = 0; userInteractionEnabled = NO; layer = <CALayer: 0x1c422a780>>
| | | | | | | | | | | | <RCTView: 0x119d2f360; reactTag: 20; frame = (0 0; 375 667); layer = <CALayer: 0x1c422a940>>
| | | | | | | | | | | | | <RCTView: 0x119d2c890; reactTag: 12; frame = (0 0; 375 70); layer = <CALayer: 0x1c42210a0>>
| | | | | | | | | | | | | | <RCTView: 0x119d2c580; reactTag: 10; frame = (0 0; 375 70); layer = <CALayer: 0x1c42211e0>>
| | | | | | | | | | | | | | | <RCTView: 0x119d0f8c0; reactTag: 2; frame = (10 42.5; 118.5 0); layer = <CALayer: 0x1c422b460>>
| | | | | | | | | | | | | | | <RCTView: 0x119e21510; reactTag: 5; frame = (128.5 29; 118 27); layer = <CALayer: 0x1c0221720>>
| | | | | | | | | | | | | | | | <RCTTextView: 0x119e12b30; reactTag: 4; text: AUTHENTIC AR frame = (7.5 0; 104 27); opaque = NO; layer = <CALayer: 0x1c022a220>>
| | | | | | | | | | | | | | | <RCTView: 0x119d2c230; reactTag: 9; frame = (246.5 32.5; 118.5 20); layer = <CALayer: 0x1c4221300>>
| | | | | | | | | | | | | | | | <RCTView: 0x119d2bf20; reactTag: 8; frame = (98.5 0; 20 20); layer = <CALayer: 0x1c422b980>>
| | | | | | | | | | | | | | | | | <RCTTextView: 0x119e35c20; reactTag: 7; text: ๎ frame = (0 0; 20.5 21); opaque = NO; layer = <CALayer: 0x1c0220dc0>>
| | | | | | | | | | | | | <RCTScrollView: 0x11a049a00; reactTag: 19; frame = (0 70; 375 597); clipsToBounds = YES; layer = <CALayer: 0x1c02295a0>>
| | | | | | | | | | | | | | <RCTCustomScrollView: 0x11a084800; baseClass = UIScrollView; frame = (0 0; 375 597); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x1c4449cf0>; layer = <CALayer: 0x1c02296a0>; contentOffset: {0, 0}; contentSize: {375, 597}; adjustedContentInset: {0, 0, 0, 0}>
| | | | | | | | | | | | | | | <RCTScrollContentView: 0x119e397f0; reactTag: 18; frame = (0 0; 375 597); layer = <CALayer: 0x1c0229360>>
| | | | | | | | | | | | | | | | <RCTView: 0x119e38430; reactTag: 15; frame = (0 20; 375 40); layer = <CALayer: 0x1c0228120>>
| | | | | | | | | | | | | | | | | <RCTTextView: 0x119e38200; reactTag: 14; text: PROJECTS frame = (25 0; 350 27.5); opaque = NO; layer = <CALayer: 0x1c0220d00>>
| | | | | | | | | | | | | | | | <RCTScrollView: 0x11a082600; reactTag: 17; frame = (0 60; 375 537); clipsToBounds = YES; layer = <CALayer: 0x1c0228760>>
| | | | | | | | | | | | | | | | | <RCTCustomScrollView: 0x11a083000; baseClass = UIScrollView; frame = (0 0; 375 537); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x1c444af50>; layer = <CALayer: 0x1c0228820>; contentOffset: {0, 0}; contentSize: {1015, 537}; adjustedContentInset: {0, 0, 0, 0}>
| | | | | | | | | | | | | | | | | | <RCTScrollContentView: 0x119d2d670; reactTag: 16; frame = (0 0; 1015 537); layer = <CALayer: 0x1c4220c60>>
| | | | | | | | | | | | | | | | | | | <RCTView: 0x119d350d0; reactTag: 47; frame = (27.5 0; 320 537); layer = <CALayer: 0x1c4229300>>
| | | | | | | | | | | | | | | | | | | | <RCTView: 0x119d34dc0; reactTag: 46; frame = (0 0; 320 537); layer = <CALayer: 0x1c42292c0>>
| | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119d34ab0; reactTag: 45; frame = (0 0; 320 427); layer = <CALayer: 0x1c4228fc0>>
| | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119e34ca0; reactTag: 34; frame = (0 0; 320 213.5); clipsToBounds = YES; layer = <CALayer: 0x1c022ab40>>
| | | | | | | | | | | | | | | | | | | | | | | <RCTImageView: 0x119d32670; baseClass = UIImageView; frame = (-56.5 0; 433.5 213.5); clipsToBounds = YES; opaque = NO; layer = <CALayer: 0x1c4229700>>
| | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119d347a0; reactTag: 44; frame = (0 250.5; 320 176.5); layer = <CALayer: 0x1c4229000>>
| | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119e3eab0; reactTag: 39; frame = (20 0; 280 100.5); layer = <CALayer: 0x1c0229000>>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x119e3a430; reactTag: 36; text: Portal Experience frame = (0 0; 280 29); opaque = NO; layer = <CALayer: 0x1c0229a60>>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x119e3e880; reactTag: 38; text: Initial rendering of the Speer Arts Center atrium and surrounding area using the latest project spec sheet. frame = (0 38.5; 280 62.5); opaque = NO; layer = <CALayer: 0x1c0228640>>
| | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119d34490; reactTag: 43; frame = (20 115; 280 61.5); layer = <CALayer: 0x1c4229140>>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x119e3efb0; reactTag: 42; text: VIEW NOW frame = (0 0; 280 27); opaque = NO; layer = <CALayer: 0x1c022ac00>>
| | | | | | | | | | | | | | | | | | | <RCTView: 0x119e42170; reactTag: 63; frame = (347.5 0; 320 537); layer = <CALayer: 0x1c022bce0>>
| | | | | | | | | | | | | | | | | | | | <RCTView: 0x119e41c90; reactTag: 62; frame = (16 26.85; 288 483.3); transform = [0.89999997615814209, 0, 0, 0.89999997615814209, 0, 0]; alpha = 0.7; layer = <CALayer: 0x1c022bc80>>
| | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119e41980; reactTag: 60; frame = (0 0; 320 427); layer = <CALayer: 0x1c022bc40>>
| | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119e405c0; reactTag: 49; frame = (0 0; 320 213.5); clipsToBounds = YES; layer = <CALayer: 0x1c022b8c0>>
| | | | | | | | | | | | | | | | | | | | | | | <RCTImageView: 0x119e402e0; baseClass = UIImageView; frame = (-56.5 0; 434 213.5); clipsToBounds = YES; opaque = NO; layer = <CALayer: 0x1c022b760>>
| | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119e41670; reactTag: 59; frame = (0 250.5; 320 176.5); layer = <CALayer: 0x1c022bac0>>
| | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119d35fa0; reactTag: 55; frame = (20 0; 280 100.5); layer = <CALayer: 0x1c4228e80>>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x119e40ac0; reactTag: 52; text: 3D Model Experience frame = (0 0; 280 29); opaque = NO; layer = <CALayer: 0x1c022b980>>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x119e40ee0; reactTag: 54; text: Initial rendering of the Speer Arts Center atrium and surrounding area using the latest project spec sheet. frame = (0 38.5; 280 62.5); opaque = NO; layer = <CALayer: 0x1c022ba40>>
| | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119d366d0; reactTag: 58; frame = (20 115; 280 61.5); layer = <CALayer: 0x1c42296c0>>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x119d364a0; reactTag: 57; text: VIEW NOW frame = (0 0; 280 27); opaque = NO; layer = <CALayer: 0x1c4228b60>>
| | | | | | | | | | | | | | | <UIImageView: 0x119d490c0; frame = (369.5 -39; 2.5 36); alpha = 0; opaque = NO; autoresize = LM; userInteractionEnabled = NO; layer = <CALayer: 0x1c42304a0>>
| | | | | | | | | | | | | | | <UIImageView: 0x119d48c90; frame = (-39 591.5; 36 2.5); alpha = 0; opaque = NO; autoresize = TM; userInteractionEnabled = NO; layer = <CALayer: 0x1c42303e0>>
| | | | | | | | | | | <RCTView: 0x119d6cd30; reactTag: 132; frame = (0 0; 375 667); layer = <CALayer: 0x1c4232be0>>
| | | | | | | | | | | | <RCTView: 0x119d6ca20; reactTag: 130; frame = (0 0; 375 667); layer = <CALayer: 0x1c4232b80>>
| | | | | | | | | | | | | <RCTView: 0x119d6c710; reactTag: 129; frame = (0 0; 375 667); layer = <CALayer: 0x1c4232b00>>
| | | | | | | | | | | | | | <RCTView: 0x119e5f9c0; reactTag: 128; frame = (0 0; 375 667); layer = <CALayer: 0x1c0230ee0>>
| | | | | | | | | | | | | | | <RCTView: 0x119e5f6b0; reactTag: 127; frame = (0 0; 375 667); layer = <CALayer: 0x1c0230e80>>
| | | | | | | | | | | | | | | | <RCTView: 0x119d6c0a0; reactTag: 126; frame = (0 0; 375 667); clipsToBounds = YES; layer = <CALayer: 0x1c42329e0>>
| | | | | | | | | | | | | | | | | <RCTView: 0x119d69410; reactTag: 109; frame = (0 0; 1125 597); layer = <CALayer: 0x1c42321c0>>
| | | | | | | | | | | | | | | | | | <RCTView: 0x119d68ae0; reactTag: 106; frame = (0 0; 375 597); layer = <CALayer: 0x1c4230b00>>
| | | | | | | | | | | | | | | | | | | <RCTView: 0x119d687d0; reactTag: 105; frame = (0 0; 375 597); clipsToBounds = YES; layer = <CALayer: 0x1c4230860>>
| | | | | | | | | | | | | | | | | | | | <RCTView: 0x119d684c0; reactTag: 104; frame = (0 0; 375 597); layer = <CALayer: 0x1c42293a0>>
| | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119d681b0; reactTag: 103; frame = (0 0; 375 597); layer = <CALayer: 0x1c42308c0>>
| | | | | | | | | | | | | | | | | | | | | | <RCTImageView: 0x119d62e90; baseClass = UIImageView; frame = (0 0; 752 1624); clipsToBounds = YES; opaque = NO; layer = <CALayer: 0x1c42291a0>>
| | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119e59010; reactTag: 88; frame = (0 0; 375 85); layer = <CALayer: 0x1c022f580>>
| | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119e58d00; reactTag: 87; frame = (0 0; 375 85); layer = <CALayer: 0x1c022f4e0>>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119d4b400; reactTag: 84; frame = (10 37.5; 118.5 25); layer = <CALayer: 0x1c4231820>>
| | | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119d101a0; reactTag: 83; frame = (0 0; 25 25); layer = <CALayer: 0x1c42317e0>>
| | | | | | | | | | | | | | | | | | | | | | | | | | <RCTImageView: 0x119e58360; baseClass = UIImageView; frame = (0 0; 25 25); clipsToBounds = YES; opaque = NO; layer = <CALayer: 0x1c003f240>>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119d4b710; reactTag: 85; frame = (128.5 50; 118 0); layer = <CALayer: 0x1c4231760>>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119d4ba20; reactTag: 86; frame = (246.5 50; 118.5 0); layer = <CALayer: 0x1c4228e60>>
| | | | | | | | | | | | | | | | | | | | | | <RCTScrollView: 0x11a0a2800; reactTag: 102; frame = (0 85; 375 512); clipsToBounds = YES; layer = <CALayer: 0x1c022fae0>>
| | | | | | | | | | | | | | | | | | | | | | | <RCTCustomScrollView: 0x11a08a800; baseClass = UIScrollView; frame = (0 0; 375 512); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x1c04526f0>; layer = <CALayer: 0x1c022fb00>; contentOffset: {0, 0}; contentSize: {375, 458.5}; adjustedContentInset: {0, 0, 0, 0}>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTScrollContentView: 0x119e5b250; reactTag: 100; frame = (0 0; 375 458.5); layer = <CALayer: 0x1c022fe40>>
| | | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119e5af40; reactTag: 99; frame = (0 0; 375 458.5); layer = <CALayer: 0x1c022fd00>>
| | | | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119d0ba70; reactTag: 95; frame = (15 0; 345 378.5); layer = <CALayer: 0x1c4220bc0>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTImageView: 0x119e594d0; baseClass = UIImageView; frame = (68.5 45; 208 184.5); clipsToBounds = YES; opaque = NO; layer = <CALayer: 0x1c022f660>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x119d663d0; reactTag: 92; text: To activate, hold your device in front of your body. frame = (20 249; 305 57.5); opaque = NO; layer = <CALayer: 0x1c4228c80>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x119d667f0; reactTag: 94; text: THEN, WALK TOWARDS THE PORTAL frame = (43 316; 259 27.5); opaque = NO; layer = <CALayer: 0x1c42309a0>>
| | | | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119d4a770; reactTag: 98; frame = (15 398.5; 345 60); layer = <CALayer: 0x1c4230820>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x119d66c10; reactTag: 97; text: ENTER EXPERIENCE frame = (89 18.5; 167 27.5); opaque = NO; layer = <CALayer: 0x1c42315c0>>
| | | | | | | | | | | | | | | | | | | | | | | | <UIImageView: 0x119e5fff0; frame = (369.5 -39; 2.5 36); alpha = 0; opaque = NO; autoresize = LM; userInteractionEnabled = NO; layer = <CALayer: 0x1c02326c0>>
| | | | | | | | | | | | | | | | | | | | | | | | <UIImageView: 0x119e03a40; frame = (-39 506.5; 36 2.5); alpha = 0; opaque = NO; autoresize = TM; userInteractionEnabled = NO; layer = <CALayer: 0x1c0232600>>
| | | | | | | | | | | | | | | | | | <RCTView: 0x119d68df0; reactTag: 107; frame = (375 0; 375 597); layer = <CALayer: 0x1c42320a0>>
| | | | | | | | | | | | | | | | | | | <RCTView: 0x119d77f60; reactTag: 134; frame = (0 0; 375 597); clipsToBounds = YES; layer = <CALayer: 0x1c4231400>>
| | | | | | | | | | | | | | | | | | | | <RCTView: 0x119e67750; reactTag: 133; frame = (0 3000; 375 597); layer = <CALayer: 0x1c022dee0>>
| | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119d7b960; reactTag: 156; frame = (0 0; 375 597); layer = <CALayer: 0x1c4232de0>>
| | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119e6ccd0; reactTag: 147; frame = (0 0; 375 70); layer = <CALayer: 0x1c003eca0>>
| | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119e6c9c0; reactTag: 146; frame = (0 0; 375 70); layer = <CALayer: 0x1c0232a80>>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119e687f0; reactTag: 137; frame = (10 42.5; 118.5 0); layer = <CALayer: 0x1c0231100>>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119e6b9b0; reactTag: 140; frame = (128.5 29; 118 27); layer = <CALayer: 0x1c0233040>>
| | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x119e60e20; reactTag: 139; text: AUTHENTIC AR frame = (7.5 0; 104 27); opaque = NO; layer = <CALayer: 0x1c0232e40>>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119d79420; reactTag: 145; frame = (246.5 32.5; 118.5 20); layer = <CALayer: 0x1c42330e0>>
| | | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119d77aa0; reactTag: 144; frame = (98.5 0; 20 20); layer = <CALayer: 0x1c4233140>>
| | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x119d742d0; reactTag: 143; text: ๎ frame = (0 0; 20.5 21); opaque = NO; layer = <CALayer: 0x1c4229660>>
| | | | | | | | | | | | | | | | | | | | | | <RCTScrollView: 0x11a8b4000; reactTag: 155; frame = (0 70; 375 527); clipsToBounds = YES; layer = <CALayer: 0x1c42354a0>>
| | | | | | | | | | | | | | | | | | | | | | | <RCTCustomScrollView: 0x11a8b4600; baseClass = UIScrollView; frame = (0 0; 375 527); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x1c4454e50>; layer = <CALayer: 0x1c4233900>; contentOffset: {0, 0}; contentSize: {375, 527}; adjustedContentInset: {0, 0, 0, 0}>
| | | | | | | | | | | | | | | | | | | | | | | | <RCTScrollContentView: 0x119d7b220; reactTag: 154; frame = (0 0; 375 527); layer = <CALayer: 0x1c4232560>>
| | | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119d7a520; reactTag: 150; frame = (0 20; 375 40); layer = <CALayer: 0x1c403ea80>>
| | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x119d7a2f0; reactTag: 149; text: COMMENTS frame = (25 0; 350 27.5); opaque = NO; layer = <CALayer: 0x1c4233440>>
| | | | | | | | | | | | | | | | | | | | | | | | | <RCTScrollView: 0x11a8b3200; reactTag: 153; frame = (0 60; 375 467); clipsToBounds = YES; layer = <CALayer: 0x1c4233000>>
| | | | | | | | | | | | | | | | | | | | | | | | | | <RCTCustomScrollView: 0x11a8b3800; baseClass = UIScrollView; frame = (0 0; 375 467); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x1c44552d0>; layer = <CALayer: 0x1c4232ea0>; contentOffset: {0, 0}; contentSize: {375, 627.5}; adjustedContentInset: {0, 0, 0, 0}>
| | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTScrollContentView: 0x119d7a830; reactTag: 152; frame = (0 0; 375 627.5); layer = <CALayer: 0x1c4233460>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119e70640; reactTag: 163; frame = (30 0; 315 103.5); layer = <CALayer: 0x1c0233800>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x119e6fe00; reactTag: 158; text: 1 Here is a message in a comment frame = (25 25; 265 25.5); opaque = NO; layer = <CALayer: 0x1c0233200>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x119e70410; reactTag: 162; text: โ BRYANT HUGHES frame = (25 60; 265 19); opaque = NO; layer = <CALayer: 0x1c02336a0>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119e71380; reactTag: 169; frame = (30 123.5; 315 103.5); layer = <CALayer: 0x1c0233c20>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x119e70b40; reactTag: 165; text: 2 Here is a message in a comment frame = (25 25; 265 25.5); opaque = NO; layer = <CALayer: 0x1c0233a20>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x119e71150; reactTag: 168; text: โ BRYANT HUGHES frame = (25 60; 265 19); opaque = NO; layer = <CALayer: 0x1c0233bc0>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119d7c800; reactTag: 176; frame = (30 247; 315 103.5); layer = <CALayer: 0x1c4234200>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x119d79e20; reactTag: 172; text: 3 Here is a message in a comment frame = (25 25; 265 25.5); opaque = NO; layer = <CALayer: 0x1c4234020>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x119d7c570; reactTag: 175; text: โ BRYANT HUGHES frame = (25 60; 265 19); opaque = NO; layer = <CALayer: 0x1c4234140>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119e74810; reactTag: 183; frame = (30 370.5; 315 103.5); layer = <CALayer: 0x1c02342e0>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x119e73fd0; reactTag: 178; text: 4 Here is a message in a comment frame = (25 25; 265 25.5); opaque = NO; layer = <CALayer: 0x1c0233de0>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x119e745e0; reactTag: 182; text: โ BRYANT HUGHES frame = (25 60; 265 19); opaque = NO; layer = <CALayer: 0x1c0234240>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTView: 0x119e75550; reactTag: 189; frame = (30 494; 315 103.5); layer = <CALayer: 0x1c0234900>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x119e74d10; reactTag: 185; text: 5 Here is a message in a comment frame = (25 25; 265 25.5); opaque = NO; layer = <CALayer: 0x1c0234500>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x119e75320; reactTag: 188; text: โ BRYANT HUGHES frame = (25 60; 265 19); opaque = NO; layer = <CALayer: 0x1c0234880>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | <UIImageView: 0x119d863b0; frame = (369.5 -39; 2.5 36); alpha = 0; opaque = NO; autoresize = LM; userInteractionEnabled = NO; layer = <CALayer: 0x1c42355e0>>
| | | | | | | | | | | | | | | | | | | | | | | | | | | <UIImageView: 0x119d85fd0; frame = (-39 461.5; 36 2.5); alpha = 0; opaque = NO; autoresize = TM; userInteractionEnabled = NO; layer = <CALayer: 0x1c4235520>>
| | | | | | | | | | | | | | | | | | | | | | | | <UIImageView: 0x119d86810; frame = (369.5 -39; 2.5 36); alpha = 0; opaque = NO; autoresize = LM; userInteractionEnabled = NO; layer = <CALayer: 0x1c4235740>>
| | | | | | | | | | | | | | | | | | | | | | | | <UIImageView: 0x119d865e0; frame = (-39 521.5; 36 2.5); alpha = 0; opaque = NO; autoresize = TM; userInteractionEnabled = NO; layer = <CALayer: 0x1c4235680>>
| | | | | | | | | | | | | | | | | | <RCTView: 0x119d69100; reactTag: 108; frame = (750 0; 375 597); layer = <CALayer: 0x1c4232060>>
| | | | | | | | | | | | | | | | | | | <RCTView: 0x119d786e0; reactTag: 136; frame = (0 0; 375 597); clipsToBounds = YES; layer = <CALayer: 0x1c4232360>>
| | | | | | | | | | | | | | | | | | | | <RCTView: 0x119d78270; reactTag: 135; frame = (0 3000; 375 597); layer = <CALayer: 0x1c4232380>>
| | | | | | | | | | | | | | | | | <RCTView: 0x119d6bd90; reactTag: 125; frame = (0 597; 375 70); layer = <CALayer: 0x1c4232980>>
| | | | | | | | | | | | | | | | | | <RCTView: 0x119d6ba80; reactTag: 124; frame = (0 0.5; 375 69.5); layer = <CALayer: 0x1c4232920>>
| | | | | | | | | | | | | | | | | | | <RCTView: 0x119d69f70; reactTag: 113; frame = (0 7.5; 125 55); layer = <CALayer: 0x1c42322e0>>
| | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x119e5bbf0; reactTag: 112; text: ๎ frame = (52 17; 21 20.5); opaque = NO; layer = <CALayer: 0x1c022f6e0>>
| | | | | | | | | | | | | | | | | | | <RCTView: 0x119e5d700; reactTag: 119; frame = (125 18.5; 125 32.5); layer = <CALayer: 0x1c02305c0>>
| | | | | | | | | | | | | | | | | | | | <RCTView: 0x119e5ce90; reactTag: 116; frame = (75 -3; 16 18); layer = <CALayer: 0x1c02304a0>>
| | | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x119e5cc60; reactTag: 115; text: 2 frame = (3 1.5; 10.5 15.5); opaque = NO; layer = <CALayer: 0x1c0230440>>
| | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x119e5d4d0; reactTag: 118; text: ๎ frame = (51 6; 23 20.5); opaque = NO; layer = <CALayer: 0x1c0230560>>
| | | | | | | | | | | | | | | | | | | <RCTView: 0x119d6b650; reactTag: 123; frame = (250 7.5; 125 55); layer = <CALayer: 0x1c42328c0>>
| | | | | | | | | | | | | | | | | | | | <RCTTextView: 0x119d6b360; reactTag: 122; text: ๎ frame = (51.5 17; 22 20.5); opaque = NO; layer = <CALayer: 0x1c42327a0>>
(lldb)
Regarding the component/module, I'm using React Navigation for loading views within the app. This particular screen is part of a Stack Navigator, which toggles between the "app screens" and the "ar screens".
The "ar screens" component has a conditional to load various types of ViroARSceneNavigators based on the AR experience we're loading.
I'd be happy to share this repo if that helps you, just let me know!
As far as I can tell the view hierarchy is the same.
If you don't mind, sharing the repo would be helpful. You can send it to [email protected], or simply add me to it.
Thanks,
Just added you to the repo.
Hi @bryantAXS,
Thanks for that, it looks like there's some deadlock on the destruction of our ViroARSceneNavigator (that curiously doesn't happen outside of React Navigation). We'll take a look at it, thanks!
Hi @bryantAXS,
Actually, I think I've come up with a workaround, it seems like this is caused when running the app in debug mode while connected to Xcode.
If you open up your app after disconnecting from the debug session, then it no longer deadlocks. Another way you can do this is to click on your target virodemo next to the Stop button -> Edit Schemes -> Run -> Options -> GPU Frame Capture -> Set to Disabled.
Once you do that, your app should no longer freeze after leaving the AR view.
It looks like there's some interaction with Xcode's debugging tools and Viro that's causing this deadlock when destroying the ViroARSceneNavigator.
See image below:

Wow, that was some master-level sleuthing. Great job and thanks!
This was massively helpful to me as well. Thanks @achuvm !!
Thanks a lot!
Most helpful comment
Hi @bryantAXS,
Actually, I think I've come up with a workaround, it seems like this is caused when running the app in debug mode while connected to Xcode.
If you open up your app after disconnecting from the debug session, then it no longer deadlocks. Another way you can do this is to click on your target
virodemonext to the Stop button -> Edit Schemes -> Run -> Options -> GPU Frame Capture -> Set to Disabled.Once you do that, your app should no longer freeze after leaving the AR view.
It looks like there's some interaction with Xcode's debugging tools and Viro that's causing this deadlock when destroying the ViroARSceneNavigator.
See image below:
