Журнал сбоев не символизирует системные библиотеки armv7s
Я пытаюсь проанализировать журнал сбоев, отправленный мне клиентом, но не могу получить его, чтобы символизировать вызовы системной библиотеки. Это действительно символизирует вызовы моих собственных методов. Это не делает практичным анализ того, что идет не так. Я запустил 'symbolicatecrash -v', чтобы увидеть, что вызывает отсутствие символизации. Вероятная причина заключается в следующем:
## /Users/baraupp/Library/Developer/Xcode/iOS DeviceSupport/6.1.3 (10B329)/Symbols/usr/lib/system/libsystem_kernel.dylib doesn't contain armv7s slice
Я проверил упомянутые библиотеки с "lipo", который говорит, что они содержат "armv7", но не "armv7s". После поиска в Интернете выяснилось, что это разница между iPhone 4 и iPhone 5. Кажется, что нормальным решением является подключение устройства iPhone 5 и загрузка оттуда библиотек. Но у меня нет iPhone 5.
Кто-нибудь знает, как это решить?
Чтобы дать вам представление о том, как выглядит символика:
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x3bab0350 0x3ba9f000 + 70480
1 libsystem_c.dylib 0x3ba26fb2 0x3b9f8000 + 192434
2 libsystem_c.dylib 0x3ba63366 0x3b9f8000 + 439142
3 libc++abi.dylib 0x3b00bdda 0x3b008000 + 15834
4 libc++abi.dylib 0x3b009094 0x3b008000 + 4244
5 libobjc.A.dylib 0x3b5bca58 0x3b5b4000 + 35416
6 libc++abi.dylib 0x3b009118 0x3b008000 + 4376
7 libc++abi.dylib 0x3b0091b0 0x3b008000 + 4528
8 libc++abi.dylib 0x3b00a626 0x3b008000 + 9766
9 libobjc.A.dylib 0x3b5bc9b0 0x3b5b4000 + 35248
10 CoreFoundation 0x3380829c 0x337ff000 + 37532
11 CoreFoundation 0x338080c4 0x337ff000 + 37060
12 GraphicsServices 0x373e7336 0x373e2000 + 21302
13 UIKit 0x357242b4 0x356cd000 + 357044
14 Flyskyhy 0x000f8a66 main (main.m:17)
15 Flyskyhy 0x000f8a1c 0xf6000 + 10780
3 ответа
Есть только два способа решить эту проблему:
- Для подключения к компьютеру вам потребуется либо устройство iPhone 5 с iOS 6.1.3, чтобы Xcode мог импортировать символы
- Или вам нужно получить символы от другого разработчика и заменить ваши на них.
Обычно символы являются частью последней версии XCode, но Apple не всегда предоставляет обновления XCode, когда версия для iOS содержит только исправления ошибок, но не вносит изменений в API.
Я столкнулся с этой проблемой и с приложением iOS7, использующим XCode5, хотя у меня были все правильные символы.
Я обнаружил, что я вынул свой файл dSYM из архива, где прожектор мог его проиндексировать, но краш-журнал получал лишь символическую символику (как видно из вопроса). Но я оставил фактический файл.app в xcarchive, и он не мог быть проиндексирован в центре внимания. Как только я скопировал этот файл из архива в видимое место, я смог правильно обозначить.
В следующем ответе Kerni: Вы можете установить соответствующий Xcode с вашей целевой версией iOS и скопировать ~/Library/Developer/Xcode/iOS DeviceSupport/