Журнал сбоев не символизирует системные библиотеки 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 ответа

Решение

Есть только два способа решить эту проблему:

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

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

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

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

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

Другие вопросы по тегам