Ответ 1
Местоположение symbolicatecrash
изменилось в Xcode 7.3:
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
Можете ли вы помочь мне отобразить мои аварии?
В Xcode 7.3, Window → Organizer → Crashes, у меня есть отчеты о сбоях из моих последних тестов TestFlight. Они были построены на этом Mac, и все архивы с соответствующими dSYM находятся на вкладке Архивы. Приложение разделено на несколько фреймворков и основное приложение, и многие из них представляют собой комбинацию Swift и Objective C. В журнале сбоев я вижу правильное имя фреймворков и приложений, но все записи для моих фреймворков и приложение находится в шестнадцатеричном формате. UIKit очень хорошо символизируется.
Когда я смотрю в iTunes Connect, он говорит "Да" на "Включает символы" и позволяет мне загружать dSYM. При построении параметр "Формат отладочной информации" был установлен на "DWARF с dSYM". Я попробовал установку "Strip Debug Symbols во время копирования" и "Связанный с лентой продукт" на "Нет", чтобы узнать, не изменилось ли это. Это не так.
Я не могу найти приложение symbolicatecrash в своей системе, даже не в /usr/bin или/Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash, но у меня есть старый Xcode 5, где я мог бы это схватить. Однако он больше не разрешает символы.
У меня такая же проблема в Инструментах, если я профилирую свое приложение, UIKit символизируется просто отлично, но мои фреймворки и приложение показывают только шестнадцатеричный.
Я знаю, что было много сообщений об этом, но я много им переживаю с 7,3 бета-периода и до сих пор и не нашел решения
Местоположение symbolicatecrash
изменилось в Xcode 7.3:
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
Прочитав это:
https://developer.apple.com/library/content/technotes/tn2151/_index.html
вы узнаете, что App Store несет ответственность за символику отчетов о сбоях, которые поступают из TestFlight - не Xcode. И похоже, что App Store очень ненадежен при этом.
Вот обходной путь.
Перейдите на вкладку "Архивы" в окне "Органайзер" и убедитесь, что для любой сборки, для которой вам нужно символизировать отчет о сбое, вы нажали кнопку "Загрузить dSYMS..." на правой стороне страницы. Это необходимо, если вы загружаетесь в BitCode.
Прикрепите устройство iOS так, чтобы оно отображалось в окне "Устройства".
Выберите устройство и нажмите "Просмотреть журналы устройств".
Теперь вернитесь в окно "Организатор", выберите вкладку "Сбой" и выберите один из аварий, которые не получили символику.
Щелкните правой кнопкой мыши по нему и выберите "Показать в Finder".
Щелкните правой кнопкой мыши на раскрытом пакете .xccrashpoint и выберите "Показать содержимое пакета".
Перейдите в DistributionInfos → all → Logs.
Перетащите любой из файлов .crash в левую часть панели "Просмотр журналов устройств" в окне "Устройства".
Подождите секунду или два для Xcode, чтобы символизировать сбой.
То же самое здесь. С трудом находив символический crash после обновления до 7.3.
Однако вы все равно можете использовать atos. Вы можете найти учебник здесь Символьный сбой в iOS8 с Xcode 6.1
Я не добавляю символы в свое приложение, поэтому App Store не может символизировать меня. Я использовал следующее обходное решение, чтобы символизировать все краш-журналы, которые XCode загружает из магазина. Эти инструкции предназначены для XCode 8. Пути для символьного приложения crash будут отличаться от версии к версии XCode, но идеи должны быть одинаковыми в каждой версии.
/Users/USERNAME/Library/Developer/Xcode/Archives
) и поместите там свой dsym файл. Это может быть и в других местах, я просто подтвердил, что это работает./Users/USERNAME/Library/Developer/Xcode/Products/com.company-name.Your-App/VERSION/Crashes
cd /Users/USERNAME/Library/Developer/Xcode/Products/com.companyname.Your-App/VERSION/Crashes/
export set DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
find /Applications/Xcode.app/ -name symbolicatecrash
. В XCode 8 он находится в /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
/Users/USERNAME/Library/Developer/Xcode/Products/com.companyname.Your-App/VERSION/Crashes/
)for i in `find . -type f -name \*.crash`; do cat $i | /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash --output $i.sym; mv $i.sym $i; done;
Я попытался скопировать файл symbolicatecrash из xCode 7.2 и вставить его в xCode 7.3 по следующему пути:
/Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/Current/Resources/
Am использует Crasher script для обозначения отчетов о сбоях Как использовать Crasher
В соответствии с документацией Xcode 9.0:
Организатор сбоев символизирует несимметричные журналы, если они, используя локальный .dSYM, индексированный Spotlight. (22550064)
Вы можете узнать больше об этом в Документация Xcode.