2013-05-01 2 views
4

Я пытаюсь проанализировать журнал сбоев, отправленный мной клиентом, но я не могу заставить его символизировать вызовы системной библиотеки. Это делает символизирует вызовы для моих собственных методов правильно. Это не делает очень практичным анализ того, что пойдет не так. Я выполнил 'symbolicatecrash -v', чтобы увидеть, что вызывает отсутствие символики. Вероятная причина заключается в следующем:crash log не символизирует системные библиотеки armv7s

## /Users/baraupp/Library/Developer/Xcode/iOS DeviceSupport/6.1.3 (10B329)/Symbols/usr/lib/system/libsystem_kernel.dylib doesn't contain armv7s slice 

Я проверил указанные библиотеки с «липо», в котором говорится, что они содержат «ARMv7», но нет «armv7s». После поиска в Интернете выяснилось, что это разница между iPhone 4 и iPhone 5. Обычным решением, похоже, является подключение устройства iPhone 5 и загрузка библиотек оттуда. Но у меня нет iPhone 5.

Кто-нибудь знает, как это решить?

Чтобы дать вам представление о том, как symbolication выглядит как:

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 

ответ

7

Есть только два способа решения этой:

  1. вам необходимо либо в iPhone 5 устройств с прошивкой 6.1.3 подключите к компьютеру, чтобы Xcode мог импортировать символы
  2. Или вам нужно получить символы от другого разработчика и заменить их на них.

Обычно символы являются частью последней версии Xcode, но Apple не всегда предоставляет обновления Xcode, когда версия iOS содержит исправления ошибок, но никаких изменений API не происходит.

+12

Я одолжил iPhone 5 с 6.1.3 из друг, и теперь журнал сбоев правильно обозначен. Но я также зарегистрировал bugreport на Xcode (13811970), потому что я думаю, что разумно ожидать, что Xcode может символизировать все журналы сбоев без необходимости находить аппаратное обеспечение iPhone, которое запускает точную версию iOS, которая создала журнал сбоев. – fishinear

+0

За # 2 - как вы получаете символы от другого разработчика? – Andrew

+2

Символы расположены в '~/Library/Developer/Xcode/iOS DeviceSupport /' с каталогом для каждой версии iOS. – Kerni

3

Я столкнулся с этой проблемой также с приложением iOS7 с использованием XCode5, хотя у меня были все правильные символы.

Что я обнаружил, так это то, что я извлек файл dSYM из архива, где прожектор мог его индексировать, но краш-лог был только символически символизирован (как видно в вопросе). Но я оставил фактический файл .app в xcarchive, и он не смог быть проиндексирован прожектором. Как только я скопировал этот файл из архива в видимое место, я смог правильно описать его.

+0

Это тоже решило мою проблему. В моем случае это были просто методы в моем приложении, которые не были символизированы. Думал, что это может быть проблема Spotlight, поэтому я скопировал dSYM на рабочий стол, но это не помогло. Копирование полного содержимого пакета, в том числе .app, заставил его работать правильно! – robotspacer

0

В следующем ответ Kerni: Вы можете установить соответствующий Xcode с вашей целевой версии прошивкой и скопировать ~/Library/Developer/Xcode/IOS DeviceSupport/

Смежные вопросы