Символические отчеты о сбоях приложений iPhone
Я пытаюсь символизировать сообщения о сбоях моего приложения для iPhone.
Я получил отчеты о сбоях из iTunes Connect. У меня есть двоичный файл приложения, который я отправил в App Store, и у меня есть файл dSYM, который был сгенерирован как часть сборки.
У меня есть все эти файлы в одном каталоге, который индексируется в центре внимания.
Что теперь?
Я попытался вызвать:
symbolicatecrash crashreport.crash myApp.app.dSYM
и он просто выводит тот же текст, который содержится в отчете о сбое, а не символически.
Я делаю что-то неправильно?
26 ответов
Шаги для анализа отчета о сбое от Apple:
Скопируйте файл выпуска.app, который был помещен в магазин приложений, файл.dSYM, который был создан во время выпуска, и отчет о сбое, полученный из APPLE, в ПАПКУ.
Откройте приложение терминала и перейдите в созданную выше папку (используя
cd
команда)Бежать
atos -arch armv7 -o APPNAME.app/APPNAME MEMORY_LOCATION_OF_CRASH
, Расположение памяти должно быть тем, в котором приложение терпело крах согласно отчету.
Пример: atos -arch armv7 -o 'APPNAME.app'/'APPNAME' 0x0003b508
Это покажет вам точную строку, имя метода, которое привело к сбою.
Пример: [classname functionName:]; -510
Символизирующий МФА
если мы используем IPA для символизации - просто переименуйте расширение.ipa с помощью.zip, распакуйте его, тогда мы сможем получить папку полезных данных, содержащую приложение. В этом случае нам не нужен файл.dSYM.
Заметка
Это может работать только в том случае, если в двоичном файле приложения нет символов. По умолчанию в сборках релиза отсутствуют символы. Мы можем изменить его в настройках сборки проекта "Разобрать символы отладки во время копирования" на NO.
Подробнее см. Этот пост
После прочтения всех этих ответов здесь для того, чтобы символизировать журнал сбоев (и, наконец, успешно), я думаю, что здесь не хватает некоторых моментов, которые действительно важны для определения того, почему вызов symbolicatecrash не производит символьный вывод.
Есть 3 ресурса, которые должны быть соединены вместе, когда символизирует журнал сбоев:
- Сам файл журнала сбоя (т.е.
example.crash
), либо экспортированные из органайзера XCode, либо полученные из iTunes Connect. .app
пакет (т.е.example.app
) который сам содержит двоичный файл приложения, принадлежащий журналу сбоев. Если у вас есть.ipa
пакет (т.е.example.ipa
) тогда вы можете извлечь.app
распаковать.ipa
пакет (т.е.unzip example.ipa
). После.app
пакет находится в извлеченномPayload/
папка..dSYM
пакет, содержащий символы отладки (т.е.example.app.dSYM
)
Перед началом символизации вы должны проверить, совпадают ли все эти артефакты, что означает, что журнал сбоев принадлежит вашему двоичному файлу и что отладочные символы - те, которые были созданы при сборке этого двоичного файла.
Каждый двоичный файл обозначается UUID, который можно увидеть в файле журнала сбоев:
...
Binary Images:
0xe1000 - 0x1f0fff +example armv7 <aa5e633efda8346cab92b01320043dc3> /var/mobile/Applications/9FB5D11F-42C0-42CA-A336-4B99FF97708F/example.app/example
0x2febf000 - 0x2fedffff dyld armv7s <4047d926f58e36b98da92ab7a93a8aaf> /usr/lib/dyld
...
В этом фрагменте журнал сбоев принадлежит двоичному образу приложения с именем example.app/example с UUID. aa5e633efda8346cab92b01320043dc3
,
Вы можете проверить UUID двоичного пакета, который у вас есть, с помощью dwarfdump:
dwarfdump --uuid example.app/example
UUID: AA5E633E-FDA8-346C-AB92-B01320043DC3 (armv7) example.app/example
После этого вы должны проверить, принадлежат ли отладочные символы, которые у вас есть, этому двоичному файлу:
dwarfdump --uuid example.app.dSYM
UUID: AA5E633E-FDA8-346C-AB92-B01320043DC3 (armv7) example.app.dSYM/Contents/Resources/DWARF/example
В этом примере все ресурсы совмещаются, и вы должны быть в состоянии символизировать свою трассировку стека.
Переход к symbolicatecrash
сценарий:
В Xcode 8.3 вы должны иметь возможность вызывать скрипт через
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash -v example.crash 2> symbolicate.log
Если его там нет, вы можете запустить find . -name symbolicatecrash
в вашем каталоге Xcode.app, чтобы найти его.
Как вы можете видеть, здесь больше нет параметров. Таким образом, скрипт должен найти двоичное и отладочное символы вашего приложения, выполнив поиск в центре внимания. Он ищет символы отладки с определенным индексом com_apple_xcode_dsym_uuids
, Вы можете сделать этот поиск самостоятельно:
mdfind 'com_apple_xcode_dsym_uuids = *'
соответственно
mdfind "com_apple_xcode_dsym_uuids == AA5E633E-FDA8-346C-AB92-B01320043DC3"
Первый вызов Spotlight дает вам все проиндексированные пакеты dSYM, а второй - .dSYM
пакеты с определенным UUID. Если прожектор не находит ваш .dSYM
пакет тогда symbolicatecrash
не будет ни Если вы делаете все это, например, в подпапке вашего ~/Desktop
прожектор должен уметь все находить.
Если symbolicatecrash
находит ваш .dSYM
Пакет должен быть такой строкой symbolicate.log
:
@dsym_paths = ( <SOME_PATH>/example.app.dSYM/Contents/Resources/DWARF/example )
Для нахождения вашего .app
упаковать поиск в центре внимания, как показано ниже symbolicatecrash
:
mdfind "kMDItemContentType == com.apple.application-bundle && (kMDItemAlternateNames == 'example.app' || kMDItemDisplayName == 'example' || kMDItemDisplayName == 'example.app')"
Если symbolicatecrash
находит ваш .app
пакет должен быть следующий экстракт в symbolicate.log
:
Number of symbols in <SOME_PATH>/example.app/example: 2209 + 19675 = 21884
Found executable <SOME_PATH>/example.app/example
-- MATCH
Если все эти ресурсы найдены symbolicatecrash
он должен распечатать символическую версию вашего журнала сбоев.
Если нет, вы можете передать свои файлы dSYM и.app напрямую.
symbolicatecrash -v --dsym <SOME_PATH>/<App_URI>.app.dSYM/<APP_NAME>.app.dsym <CRASHFILE> <SOME_OTHER_PATH>/<APP_NAME>.app/<APP_NAME> > symbolicate.log
Примечание: символьная обратная трассировка будет выводиться на терминал, а не symbolicate.log
,
В последней версии Xcode (3.2.2) вы можете перетаскивать любые отчеты о сбоях в раздел "Журналы устройств" в Xcode Organizer, и они будут автоматически отображаться для вас. Я думаю, что это работает лучше всего, если вы создали эту версию приложения, используя Build & Archive (также часть Xcode 3.2.2)
Я успешно, Теперь я хочу поделиться со всеми вами, ребята.
Это следующие шаги:
Шаг 1. Создайте папку на рабочем столе, я назову ее "CrashReport" и добавлю в нее три файла ("MYApp.app", "MyApp.app.dSYM", "MYApp_2013-07-18.crash").
Шаг 2: Откройте Finder и перейдите в Приложения, где вы найдете приложение XCode, щелкните по нему правой кнопкой мыши и нажмите "Показать содержимое пакета", после этого следуйте по этому простому пути
"Содержание-> Разработчик-> Платформы->iPhoneOS.platform-> Разработчик-> Библиотека-> PrivateFrameworks- > DTDeviceKit.framework -> Версии- > A-> Ресурсы"
ИЛИ ЖЕ
"Содержание-> Разработчик-> Платформы->iPhoneOS.platform-> Разработчик-> Библиотека-> PrivateFrameworks- > DTDeviceKitBase.framework -> Версии- > A-> Ресурсы"
ИЛИ ЖЕ
Для Xcode 6 и выше путь является Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources
Где вы найдете файл "symbolicatecrash", скопируйте его и вставьте в папку "CrashReport".
Шаг 3: запустить терминал, запустить эти 3 команды
cd /Users/mac38/Desktop/CrashReport и нажмите кнопку Enter
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer" и нажмите Enter
- ./symbolicatecrash -A -v MYApp_2013-07-18.crash MyApp.app.dSYM и нажмите Enter Now is Done.. (ПРИМЕЧАНИЕ: версии около 6.4 или более поздней не имеют опции -A - просто оставьте ее)
Удачного кодирования.. Спасибо
Шаги для автоматической символизации отчета о сбое с использованием XCode:
ОБНОВЛЕНО ДЛЯ XCODE 9
Подключите любое устройство iOS к вашему Mac (да, физическое, да, я знаю, что это глупо)
Нажмите на ваше устройство слева и ПОСМОТРЕТЬ ЖУРНАЛЫ УСТРОЙСТВА справа
Подождите. Это может занять минуту, чтобы появиться. Возможно делаю
Command-A
затемDelete
ускорит это.Критический недокументированный шаг: переименуйте отчет о сбое, полученный от iTunesConnect от
.txt
расширение до.crash
расширение
И тогда Xcode будет символизировать отчет о сбое и отображать результаты.
Источник: https://developer.apple.com/library/ios/technotes/tn2151/_index.html
Я использую Airbrake в своих приложениях, который неплохо справляется с удаленной регистрацией ошибок.
Вот как я символизирую их с помощью atos, если это нужно обратному следу:
В Xcode (4.2) перейдите к органайзеру, щелкните правой кнопкой мыши по архиву, из которого был сгенерирован файл.ipa.
В Терминал, перейдите в xcarchive, например,
MyCoolApp 10-27-11 1.30 PM.xcarchive
Введите следующее
atos -arch armv7 -o 'MyCoolApp.app'/'MyCoolApp'
(не забывайте одинарные кавычки)Я не включаю мой символ в этот вызов. То, что вы получите, это блочный курсор на пустой строке.
Затем я копирую / вставляю свой код символа в курсор этого блока и нажимаю ввод. Вы увидите что-то вроде:
-[MyCoolVC dealloc] (in MyCoolApp) (MyCoolVC.m:34)
Вы вернулись к курсору блока и можете вставить другие символы.
Возможность пройти через одну трассировку без повторного ввода первого бита - это хорошая экономия времени.
Наслаждайтесь!
Я также поместил dsym, комплект приложений и журнал сбоев в один каталог перед запуском символического сбоя
Затем я использую эту функцию, определенную в моем.profile, чтобы упростить запуск symbolicatecrash:
function desym
{
/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash -A -v $1 | more
}
Добавленные аргументы могут вам помочь.
Вы можете убедиться, что прожектор "видит" ваши файлы dysm, выполнив команду:
mdfind 'com_apple_xcode_dsym_uuids = *'
Ищите dsym, который есть в вашем каталоге.
ПРИМЕЧАНИЕ. Начиная с последней версии Xcode, каталог разработчика больше не существует. Вы можете найти эту утилиту здесь:
Ионы /Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Vers / А / Ресурсы /symbolicatecrash
Просто простой и обновленный ответ для xcode 6.1.1 .
ШАГОВ
1.Xcode>Window> Устройства.
2.Выберите устройство из списка устройств в разделе УСТРОЙСТВА.
3. Выберите Просмотр журналов устройства.
4.В разделе "Все журналы" вы можете перетащить файл drop.crash.
5.Xcode автоматически символизирует отчет о сбое для вас.
6. Вы можете найти символьный отчет о сбое, сопоставив его дату / время с датой / временем, указанными в вашем отчете о сбое.
Несмотря на то, что я разрабатывал приложения уже несколько лет, я впервые отлаживал бинарный файл, и я чувствовал себя как полный NOOB, выясняющий, где все файлы, т.е. где находятся *.app *.dSYM и журналы сбоев? Мне пришлось читать несколько постов, чтобы понять это. Изображение стоит тысячи слов, и я надеюсь, что этот пост поможет кому-нибудь еще в будущем.
1- Сначала зайдите на itunesconnect и загрузите журналы сбоев. ПРИМЕЧАНИЕ. В большинстве случаев вы можете получить что-то вроде "Слишком мало отчетов отправлено для отображения". По сути, недостаточно пользователей отправили отчеты о сбоях в Apple, и в этом случае вы ничего не можете сделать в этот момент.
2- Теперь, если вы не изменили свой код с тех пор, как отправили свой двоичный файл в Apple, запустите Xcode для этого проекта и снова выполните Product -> Archive. В противном случае просто найдите ваш последний представленный двоичный файл и щелкните по нему правой кнопкой мыши.
Используя XCode 4, задача еще проще:
- открыть Организатор,
- нажмите на библиотеку | Журнал устройства в левой колонке
- Нажмите на кнопку "Импорт" в нижней части экрана...
и вуаля. Файл журнала импортируется и символизируется автоматически для вас. При условии, что вы заархивировали сборку, используя XCode -> Product -> Archive first
В XCode 4.2.1 откройте Организатор, затем перейдите в раздел "Журналы библиотеки / устройства" и перетащите файл.crash в список журналов аварий. Это будет символизировано для вас через несколько секунд. Обратите внимание, что вы должны использовать тот же экземпляр XCode, на котором была заархивирована исходная сборка (т.е. архив для вашей сборки должен существовать в Организаторе).
Magical XCode Organizer не так волшебен в символизации моего приложения. Я не получил никаких символов для отчетов о сбоях, которые я получил от Apple после неудачной отправки приложения.
Я попытался использовать командную строку, поместив отчет о сбое в ту же папку, что и файл.app (который я отправил в хранилище) и файл.dSYM:
$ symbolicatecrash "My App_date_blahblah-iPhone.crash" "My App.app"
Это обеспечивало только символы для моего приложения, а не основной базовый код, но это было лучше, чем дамп номера, который мне дает Организатор, и мне было достаточно, чтобы найти и исправить ошибку, с которой столкнулось мое приложение. Если кто-нибудь знает, как расширить это, чтобы получить символы Foundation, это будет оценено.
В моем случае я перетаскивал отчеты о сбоях прямо из Почты в Организатор. По какой-то причине это не позволило символизировать сообщения о сбоях (хотелось бы знать, почему).
Сначала скопировав отчеты о сбоях на рабочий стол, а затем перетащив их оттуда в органайзер, они получили правильную символику.
Я знаю очень конкретный случай. Но думал, что поделюсь на всякий случай.
Комбинация, которая работала для меня, была:
- Скопируйте файл dSYM в каталог, где был отчет о сбое
- Разархивируйте файл ipa, содержащий приложение ('unzip MyApp.ipa')
- Скопируйте двоичный файл приложения из полученной разнесенной полезной нагрузки в ту же папку, что и отчет о сбое и файл символов (что-то вроде "MyApp.app/MyApp").
- Импорт или повторная символизация отчета о сбое из органайзера XCode
Используя atos, я не смог найти правильную информацию о символах с помощью адресов и смещений, которые были в отчете о сбое. Когда я это сделал, я вижу что-то более значимое, и это кажется законным следом стека.
Вот еще одна проблема, которую я имею с symbolicatecrash - она не будет работать с приложениями, в которых есть пробелы (например, "Test App.app"). Примечание. Я не думаю, что вы можете указывать пробелы в их имени при отправке, так что вам все равно следует их удалить, но если у вас уже есть сбои, требующие анализа, исправьте символическую ошибку (4.3 GM) следующим образом:
240c240
< my $cmd = "mdfind \"kMDItemContentType == com.apple.application-bundle && kMDItemFSName == $exec_name.app\"";
---
> my $cmd = "mdfind \"kMDItemContentType == com.apple.application-bundle && kMDItemFSName == '$exec_name.app'\"";
251c251
< my $cmd = "find \"$archive_path/Products\" -name $exec_name.app";
---
> my $cmd = "find \"$archive_path/Products\" -name \"$exec_name.app\"";
Для тех, кто использует Airbrake, выше есть солидный ответ, но он не сработает без настройки:
Работает для некоторых адресов памяти, но не для других, не знаю почему...
- Создать новый каталог на рабочем столе или где-либо еще
- Найти нужный архив в органайзере Xcode
- Дважды нажмите, чтобы показать в поиске
- Дважды нажмите, чтобы показать содержимое пакета
- Скопируйте файл.dSYM и файл.app в новый каталог
- CD в новый каталог
- Запустите эту команду: atos -arch armv7 -o 'Vimeo.app'/'Vimeo'
- Терминал войдет в интерактивный ход
- Вставьте адрес памяти и нажмите Enter, он выведет имя метода и номер строки
- Или введите следующую команду: atos -arch armv7 -o 'Vimeo.app'/'Vimeo' Чтобы получить информацию только по одному адресу
Мне пришлось много взломать скрипт symbolicatecrash, чтобы он работал правильно.
Насколько я могу судить, symbolicatecrash сейчас требует, чтобы.app находился в том же каталоге, что и.dsym. Он будет использовать.dsym, чтобы найти.app, но не будет использовать dsym, чтобы найти символы.
Вы должны сделать копию вашего symbolicatecrash, прежде чем пытаться использовать эти патчи, которые будут выглядеть в dsym:
Вокруг строки 212 в функции getSymbolPathFor_dsymUuid
212 my @executablePath = grep { -e && ! -d } glob("$dsymdir" . "/Contents/Resources/DWARF/" . $executable);
Вокруг строки 265 в функции matchUUID
265 return 1;
Это просто, после многих поисков я нашел четкие шаги для обозначения всего файла журнала сбоев.
- скопируйте файлы.app, crash_report и DSYM в папку.
- подключите устройство с помощью xcode
- Затем перейдите в окно -> выбрать устройства -> просмотреть журналы устройства
- Затем выберите это устройство, удалите все журналы.
- перетащите ваш сбой в разделе журнала устройства. это будет автоматически символизировать аварию. просто щелкните правой кнопкой мыши на отчете и экспортируйте его.
счастливого кодирования,
Riyaz
Я обнаружил, что большинство предложенных альтернатив не работает в последней версии XCode (протестировано с Xcode 10). Например, мне не повезло перетаскивание журналов.crash в Xcode -> Organizer -> Журналы устройств - просмотр.
Я рекомендую использовать инструмент Symbolicator https://github.com/agentsim/Symbolicator
- Git clone хранилище Symbolicator и скомпилируйте и запустите с Xcode
- Скопируйте файл.crash (файл ascii, с трассировкой стека в начале файла) и.xarchive аварийного выпуска в ту же временную папку
- Перетащите файл.crash на значок Symbolicator в Dock.
- Через 5-30 секунд символический файл сбоя создается в той же папке, что и.crash и.xarchive
Я предпочитаю сценарий, который будет символизировать все мои журналы сбоев.
Предпосылками
Создайте папку и поместите туда 4 вещи:
symbolicatecrash
Perl-скрипт - есть много SO-ответов, которые говорят о его местонахожденииАрхив сборки, которая соответствует сбоям (из Xcode Organizer. Просто как
Show in Finder
и скопировать) [Я не уверен, что это необходимо]Все
xccrashpoint
пакеты - (от Xcode Organizer.Show in Finder
, вы можете скопировать все пакеты в каталоге или одну точку xccrash, которую вы хотели бы обозначить символом)Добавьте этот короткий скрипт в каталог:
#!/bin/sh echo "cleaning old crashes from directory" rm -P *.crash rm -P *.xccrashpoint rm -r allCrashes echo "removed!" echo "" echo "--- START ---" echo "" mkdir allCrashes mkdir symboledCrashes find `ls -d *.xccrashpoint` -name "*.crash" -print -exec cp {} allCrashes/ \; cd allCrashes for crash in *.crash; do ../symbolicatecrash $crash > ../symboledCrashes/V$crash done cd .. echo "" echo "--- DONE ---" echo ""
Сценарий
Когда вы запустите скрипт, вы получите 2 каталога.
allCrashes
- все вылетает из всехxccrashpoint
Будет здесь.symboledCrashes
- тот же сбой, но теперь со всеми символами.Вам не нужно очищать каталог от старых сбоев перед запуском скрипта. это очистит автоматически. удачи!
Для тех, кто ищет работающее решение в 2022 году
Действия по символизации отчетов о сбоях приложений iPhone
- Преобразование предоставленного Apple аварийного журнала
.txt
отформатировать в -
Xcode > Window > Devices and simulators
- Необходимо выбрать подключенное и работающее устройство ios. (не симулятор или автономное устройство)
- Выбирать
All Logs
раздел, перетащите.crash
файл
Обратите внимание, что другие решения, имеющиеsymbolicatecrash
устарел, и его использование показывает:
⚠️ symbolicatecrash устарел; он будет удален в будущих выпусках Xcode ⚠️
Мне нравится использовать Textwrangler, чтобы точно определить ошибки в исходной загрузке приложения. (Данные о сбое будут найдены в вашей учетной записи itunesConnect.) Используя описанный выше метод Sachin, я копирую original.crash в TextWrangler, а затем копирую созданный мной файл symbolicatecrash в другой файл TextWrangler. Сравнивая два файла, выявляем различия. Файл symbolicatecrash будет иметь различия, которые указывают на файл и номер строки проблем.
Я немного рассердился по поводу того факта, что здесь ничего не "просто работает", поэтому я провел некоторое расследование, и в результате получилось следующее:
Настройка: QuincyKit, который получает отчеты. Никакой символики не было установлено, так как я даже не мог понять, что они предлагают, чтобы я сработал.
Исправление: загрузка отчетов о сбоях с сервера онлайн. Они называются "сбой" и по умолчанию идут в папку ~/Downloads/. Имея это в виду, этот сценарий будет "делать правильные вещи", а отчеты о сбоях будут отправляться в Xcode (органайзер, журналы устройств) и символизация будет выполнена.
Сценарий:
#!/bin/bash
# Copy crash reports so that they appear in device logs in Organizer in Xcode
if [ ! -e ~/Downloads/crash ]; then
echo "Download a crash report and save it as $HOME/Downloads/crash before running this script."
exit 1
fi
cd ~/Library/Logs/CrashReporter/MobileDevice/
mkdir -p actx # add crash report to xcode abbreviated
cd actx
datestr=`date "+%Y-%m-%d-%H%M%S"`
mv ~/Downloads/crash "actx-app_"$datestr"_actx.crash"
Вещи могут быть автоматизированы, куда вы можете перетащить в Xcode Organizer, выполнив две вещи, если вы используете QuincyKit/PLCR.
Во-первых, вам нужно отредактировать удаленный скрипт admin/actionapi.php ~ строка 202. Похоже, что метка времени неверна, поэтому файл заканчивается именем "crash", которое Xcode не распознает (ему нужно что-то точка аварии):
header('Content-Disposition: attachment; filename="crash'.$timestamp.'.crash"');
Во-вторых, на стороне iOS в QuincyKit BWCrashReportTextFormatter.m ~ строка 176 измените @"[TODO]"
в @"TODO"
обойти плохих персонажей.
Чтобы символизировать сбои, Spotlight должен быть в состоянии найти файл.dSYM, сгенерированный одновременно с двоичным файлом, который вы отправили в Apple. Поскольку он содержит информацию о символах, вам не повезет, если она недоступна.
atos устарела, поэтому, если вы используете OSX 10.9 или более позднюю версию, вам может потребоваться запустить
xcrun atos
Предупреждение: /usr/bin/atos движется и будет удален из будущего выпуска OS X. Это теперь доступно в инструментах разработчика XCode, чтобы быть вызванным через:
xcrun atos
Мы используем Google Crashlytics, чтобы контролировать журналы сбоев, ощущение очень своевременное и удобное в использовании.
Ссылки на документы: https://docs.fabric.io/apple/crashlytics/missing-dsyms.html
Все о пропавших без вести dSYMs Fabric включает в себя инструмент для автоматической загрузки dSYM вашего проекта. Инструмент запускается через скрипт /run, который добавляется в фазу сборки Run Script во время процесса адаптации. Однако могут быть определенные ситуации, когда загрузка dSYM не удалась из-за уникальных конфигураций проекта или если вы используете битовый код в своем приложении. Если загрузка не удалась, Crashlytics не может символизировать и отображать сбои, и на панели инструментов Fabric появится предупреждение "Missing dSYM".
Недостающие dSYM могут быть загружены вручную, выполнив шаги, описанные ниже.
Примечание. В качестве альтернативы автоматизированному инструменту загрузки dSYM Fabric предоставляет инструмент командной строки (символы загрузки), который можно настроить вручную для запуска в процессе сборки проекта. См. Раздел символов загрузки ниже для инструкций по конфигурации.
...