Мое демонстрационное приложение UE4 вылетает после запуска

#ios #crash #unreal-engine4

#iOS #сбой #unreal-engine4

Вопрос:

Мое демонстрационное приложение UnrealEngine4 для ios вылетает сразу после запуска. В то же время сборка Android работает нормально. Вот журнал сбоев:

 Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000000
VM Region Info: 0 is not in any region.  Bytes before following region: 4366614528
  REGION TYPE                      START - END             [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
  UNUSED SPACE AT START
--->  
  __TEXT                 0000000104454000-000000010a1f0000 [ 93.6M] r-x/r-x SM=COW  ...podealUE4Demo

Termination Signal: Segmentation fault: 11
Termination Reason: Namespace SIGNAL, Code 0xb
Terminating Process: exc handler [5038]
Triggered by Thread:  0

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   UE4Demo                 0x0000000106081624 FOutputDevice::LogfImpl  29546020 (char16_t const*, ...)   204
1   UE4Demo                 0x00000001060815b8 FOutputDevice::LogfImpl  29545912 (char16_t const*, ...)   96
2   UE4Demo                 0x0000000105feff88 FDebug::AssertFailed  28950408 (char const*, char const*, int, char16_t const*, ...)   312
3   UE4Demo                 0x0000000105ed5eec FGenericPlatformTime::GetSecondsPerCycle64  27795180 ()   244
4   UE4Demo                 0x0000000105f17c4c FThreadHeartBeat::Get  28064844 ()   464
5   UE4Demo                 0x0000000106009bfc FDebug::EnsureFailed  29055996 (char const*, char const*, int, char16_t const*, int)   384
6   UE4Demo                 0x000000010600a288 FDebug::OptionallyLogFormattedEnsureMessageReturningFalseImpl  29057672 (bool, char const*, char const*, int, char16_t const*, ...)   116
7   UE4Demo                 0x0000000105ef1780 LLMMap<PointerKey, unsigned int, ELLMTag>::Remove  27907968 (PointerKey constamp;)   464
8   UE4Demo                 0x0000000105eefae0 FLLMTracker::TrackFree  27900640 (void const*, ELLMTracker, ELLMAllocType)   112
9   UE4Demo                 0x0000000105f1c49c FMemory::Free  28083356 (void*)   200
10  CFNetwork                       0x00000001bb945ce0 XTubeManager::~XTubeManager  204000 ()   56
11  CFNetwork                       0x00000001bb945c28 XTubeManager::~XTubeManager  203816 ()   12
12  CFNetwork                       0x00000001bb920300 -[__NSURLSessionLocal dealloc]   48
13  libobjc.A.dylib                 0x00000001ba565b9c (anonymous namespace)::AutoreleasePoolPage::pop  129948 (void*)   672
14  libobjc.A.dylib                 0x00000001ba54e220 call_load_methods   732
15  libobjc.A.dylib                 0x00000001ba54fe54 load_images   180
16  dyld                            0x000000010e54e390 dyld::notifySingle  9104 (dyld_image_states, ImageLoader const*, ImageLoader::InitializerTimingList*)   444
17  dyld                            0x000000010e560314 ImageLoader::recursiveInitialization  82708 (ImageLoader::LinkContext constamp;, unsigned int, char const*, ImageLoader::InitializerTimingListamp;, ImageLoader::UninitedUpwardsamp;)   440
18  dyld                            0x000000010e55f370 ImageLoader::processInitializers  78704 (ImageLoader::LinkContext constamp;, unsigned int, ImageLoader::InitializerTimingListamp;, ImageLoader::UninitedUpwardsamp;)   136
19  dyld                            0x000000010e55f42c ImageLoader::runInitializers  78892 (ImageLoader::LinkContext constamp;, ImageLoader::InitializerTimingListamp;)   84
20  dyld                            0x000000010e54e6d8 dyld::initializeMainExecutable  9944 ()   220
21  dyld                            0x000000010e5532a0 dyld::_main  29344 (macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*)   4304
22  dyld                            0x000000010e54d044 _dyld_start   68
  

Единственное, что я делаю при запуске, это показ виджета меню (который отлично работает в редакторе и Android).

Как я понимаю из журнала, основная проблема находится за пределами моего кода. Похоже, что FMemory::Free и другие вещи — это просто сервисные процессы после сбоя. И я почти уверен, что в стеке вызовов нет моего кода.

Ответ №1:

Это флаг -ObjC. У меня есть этот флаг в настройках проекта UE4, но, похоже, эти настройки не влияют на проект XCode. По крайней мере, для UE4.21.2.

Ответ №2:

Я нашел решение, которое сработало для меня:

Системные настройки

Батарея

Нажмите «Батарея» на левой боковой панели

Снимите флажок «Автоматическое переключение графики»

После повторного запуска epic games launcher у меня все заработало и больше не зависало.