Twinmotion crashes on startup, if an external display is not connected to my MacBook pro. I have investigated a little bit of why this could happen, and have found the answer.
If I close the Twinmotion window, when an external display is connected, and the Twinmotion window is currently on the external display, then the next time I start Twinmotion, it will open on the same place where it was when I closed it, which is on the external display.
Now the interesting thing is, that Twinmotion wants to open on the external display even if there is no external display connected to the MacBook. Obviously, it can not find the external display, and therefore it panics and crashes.
If I close Twinmotion on the built-in display, and then I try to start Twinmotion again without the external display connected, Twinmotion opens without any problem, as it finds the built-in display, and it can open on the same place where it was closed last time.
Please Epic Games, solve this problem, as it is quite annoying, and I think it would be easily fixed by the developers. An easy solution would be, that Twinmotion shouldn't remember where it was last closed, and always open at a default position, on the built-in display.
As a workaround for anyone experiencing this issue, just remember to never close Twinmotion on an external display, but drag the window first to the built-in display, and always close it there.
I have already filed a bug report, just wanted to share this with everyone, that is experiencing the same issue.
I'll post the stack trace here, just in case:
Caught signal
FMallocBinned2::Free(void*) Address = 0x1051575d1 (filename not found) [in Twinmotion-Mac-Shipping]
TArray<FHittestGrid::FCell, TSizedDefaultAllocator<32> >::SetNumZeroed(int, bool) Address = 0x10561a686 (filename not found) [in Twinmotion-Mac-Shipping]
FHittestGrid::ClearInternal(int) Address = 0x10561a400 (filename not found) [in Twinmotion-Mac-Shipping]
FHittestGrid::SetHittestArea(FVector2D const&, FVector2D const&, FVector2D const&) Address = 0x10561a3a0 (filename not found) [in Twinmotion-Mac-Shipping]
SWindow::PaintWindow(double, float, FSlateWindowElementList&, FWidgetStyle const&, bool) Address = 0x1056a9bc1 (filename not found) [in Twinmotion-Mac-Shipping]
FSlateApplication::DrawWindowAndChildren(TSharedRef<SWindow, (ESPMode)0> const&, FDrawWindowArgs&) Address = 0x1056f83b9 (filename not found) [in Twinmotion-Mac-Shipping]
FSlateApplication::PrivateDrawWindows(TSharedPtr<SWindow, (ESPMode)0>) Address = 0x1056f7e82 (filename not found) [in Twinmotion-Mac-Shipping]
FSlateApplication::TickAndDrawWidgets(float) Address = 0x1056f9f5c (filename not found) [in Twinmotion-Mac-Shipping]
FSlateApplication::Tick(ESlateTickType) Address = 0x1056f9966 (filename not found) [in Twinmotion-Mac-Shipping]
FEngineLoop::Tick() Address = 0x103771fbb (filename not found) [in Twinmotion-Mac-Shipping]
GuardedMain(char16_t const*) Address = 0x1037739c2 (filename not found) [in Twinmotion-Mac-Shipping]
-[UE4AppDelegate runGameThread:] Address = 0x103780f3a (filename not found) [in Twinmotion-Mac-Shipping]
-[FCocoaGameThread main] Address = 0x105204c31 (filename not found) [in Twinmotion-Mac-Shipping]
Unknown() Address = 0x7ff8049442c9 (filename not found) [in Foundation]
_pthread_start Address = 0x7ff803af94f4 (filename not found) [in libsystem_pthread.dylib]
thread_start Address = 0x7ff803af500f (filename not found) [in libsystem_pthread.dylib]