Я недавно выпустил приложение приблизительно месяц назад, оно было полностью протестировано один, мой партнер и бета-тестеры. Недавно пользователь не связался со мной о приложении даже способность открыться (катастрофические отказы после экрана запуска), у них есть корректная ОС, и они пытались переустановить.
Я попросил крешлог, и они отправили мне его...
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x00000001, 0xe7ffdefe
Crashed Thread: 0
Thread 0 Crashed:
0 dyld 0x2fe01060 0x2fe00000 + 4192
1 dyld 0x2fe088d4 0x2fe00000 + 35028
2 dyld 0x2fe0196c 0x2fe00000 + 6508
3 dyld 0x2fe01048 0x2fe00000 + 4168
Thread 0 crashed with ARM Thread State:
r0: 0x2fe23ca0 r1: 0x00000000 r2: 0x2fe23ca0 r3: 0x00000000
r4: 0x2ffff4e0 r5: 0x2ffff4bc r6: 0x2fe005c0 r7: 0x2ffffb00
r8: 0x00000004 r9: 0x2fe57cf0 r10: 0x2fe236c8 r11: 0x00000009
ip: 0x0000018d sp: 0x2ffff5b8 lr: 0x2fe088dc pc: 0x2fe01060
cpsr: 0x00000010
Binary Images:
0x2fe00000 - 0x2fe22fff dyld ??? (???) <f6a50d5f57a676b54276d0ecef46d5f0> /usr/lib/dyld
Я, может казаться, не нахожу проблему в рамках своего приложения, какие проблемы вызывают EXC_BREAKPOINT (SIGTRAP)? Я предполагаю, что ошибка в моем AppDelegate, так как это отказывает прямо после экрана запуска.
Попробуйте выполнить эти шаги из технической заметки Apple о чтении файлов сбоев . В нем объясняется, как превратить шестнадцатеричный код в символы (имена классов, имена методов, имена переменных и т. Д.) Из вашего приложения.
Signal.h содержит список ошибок, например SIGTRAP, который определяется как:
#define SIGTRAP 5 /* trace trap (not reset when caught) */
Это довольно странная трассировка стека. Вылетает в dyld (загрузчик динамических библиотек). Это говорит о том, что у него проблемы с загрузкой динамической библиотеки или Framework, что означает, что он загружается системным кодом (поскольку у вас не может быть сторонней динамической библиотеки на стандартном iphone). Обратите внимание, как в разделе двоичных изображений ваш код, кажется, еще даже не загружен (или остальная часть дампа была обрезана)? Вы загружаете динамические библиотеки вручную ( dlopen ()
и т.п.)? Даже если бы это было так, вы бы ожидали, что main ()
будет в стеке, если ваша программа действительно загрузилась ....
Когда вы говорите, что они пытались переустановить, я предполагаю, что вы имеете в виду свою приложение? Означает ли это, что они удалили ваше приложение, а затем переустановили его, или что-то еще? Наиболее вероятная причина, которая приходит в голову, - это повреждение комплекта. Но можно подумать, что удаление и переустановка исправят это. Более агрессивным было бы удаление, перезагрузка и повторная установка.
Мой следующий вопрос будет заключаться в том, взломан ли это iPhone. Я бы попросил пользователя перезагрузить iPhone, если он еще этого не сделал. У меня даже было бы искушение попросить их восстановить ОС, но всегда неудобно просить клиента сделать это.