Как интерпретировать журналы ошибок приложения ios prod (отредактировано скрывает источник ошибки)

Когда мое приложение аварийно завершает работу в симуляторе или специальной версии моего приложения, в журнале ошибок содержится подробная и четкая информация о том, где произошел сбой приложения. Однако после того, как оно отправлено в магазин приложений и мои пользователи используют его, я обнаруживаю, что журналы ошибок, которые регистрируются аналитикой Google, а также моим собственным методом редактируются настолько сильно, что я не могу сказать, где происходит ошибка.

Как обеспечить создание и отправку полных журналов ошибок в приложении ios prod?

-[NSNull length]: нераспознанный селектор отправлен экземпляру 0x19a1f1fe0

*****ПРИЧИНА*****

-[NSNull length]: нераспознанный селектор отправлен экземпляру 0x19a1f1fe0

*****ИМЯ*****

NSInvalidArgumentException

*****ТРАССИРОВКИ СТЕКА*****

0 CoreFoundation 0x000000018d2ab11c + 160****1 libobjc.A.dylib 0x00000001997b41fc objc_exception_throw + 60****2 CoreFoundation
0x000000018d2afdb4 + 0****3 CoreFoundation
0x00002adae*0018 br> 0x000000018d1cd78c _cf_forwarding_prep_0 + 92 **** 5 Uikit
0x00000000019027DF68 + 120 **** 6 Muzmatch
0x000000010019A138 Muzmatch + 1302840 **** 7 Uikit
0x0000000190274658 + 576 **** 8 Uikit < br> 0x00000001902743dc + 32****9 muzmatch
0x00000001001aadb8 muzmatch + 1371576****10 muzmatch
0x000000010010a470 muzmatch + 713840****11 libdispatch.dylylib +8401900 0x01000 libdispatch.dylib
0x0000000199d8bfd4 + 16 **** 13 libdispatch.dylib
0x0000000199d8f1dc _dispatch_main_queue_callback_4cf + 336 **** 14 Corefoundation 0x000000018D26Addc + 12 **** 15 Corefoundation 0x000000018D26911C + 1452 **** 16 Corefoundation
0x000000018D1A9DD0 Cfrunlooprunspecific + 452 **** 17 Графические сервисы 0x0000000192E91C0C Gseventrunmodal + 168 **** 18 Uikit
0x00000001902Dafc4 UiagplicationMain + 1156 **** 19 Музматч
0x00000001001Ac608 Muzmatch + 1377800 **** 20 libdyld .dylib
0x0000000199da7aa0 + 4

Я создаю журнал ошибок и сохраняю его в БД здесь:

 NSString *message=[exception debugDescription];
    message = [message stringByAppendingString:@"\n\n*****REASON*****\n\n"];
    message = [message stringByAppendingString:[exception reason]];
    message = [message stringByAppendingString:@"\n\n*****NAME*****\n\n"];
    message = [message stringByAppendingString:[exception name]];
    message = [message stringByAppendingString:@"\n\n*****STACK TRACE*****\n\n"];
    NSArray *ar = [exception callStackSymbols];

    message = [message stringByAppendingString:[ar componentsJoinedByString:@"****"]];

    id tracker = [[GAI sharedInstance] defaultTracker];

    [tracker send:[[GAIDictionaryBuilder createExceptionWithDescription:message withFatal:@YES] build]];

person shaz    schedule 18.03.2015    source источник


Ответы (1)


У вас должен быть список изображений в отчете. Вы можете использовать atos для обозначения вашего журнала:

xcrun -sdk iphoneos atos -arch arm64 -o [/path/to/your/symbol/rich/file/or/dSyms] -l [load address of the image] [address]
person Jeremy Huddleston Sequoia    schedule 18.03.2015
comment
извините - я здесь полный новичок ... Я создаю журнал ошибок выше (отредактированный пост) в самом приложении (оно сохраняет его в моей БД) ... как мне это интерпретировать? Есть ли способ, которым сгенерированная ошибка может напрямую записать символическую версию? - person shaz; 19.03.2015