+18
Completed

Автоматическая символизация крэшей + склейка

Denis 6 years ago updated by AppMetrica 4 years ago 7 2 duplicates

Сейчас крэш логи отображаются не символифицированными. Их можно символифицировать вручную догрузив dSYM файл. И это наверное хорошо работает если крэш один.

Если крэшей много, то: 

1. Вручную их символифицировать все - трудоемкая задача

2. Ввиду того, что несимволифицированный крэш - это падение в условно рандомном адресе - крэши не склеиваются. А следовательно их становится больше в штуках и проблема 1 становится все более сложной.

3. Если в приложении случилась неудачная выкатка и крэшрейт большой, то разных крэшей в штуках очень много и все их вручную просимволифицировать становится практически невозможно. Понять что это один и тот же крэш тоже. Приходится итеративно релизить стабилизирующие сборки потихоньку уменьшая крэшрейт.

Предлагаю:

1. Дать возможность грузить dSYM'ы через API. Это позволит например добавить в Xcode в Build Phases простой curl который загрузит вам нужный dSYM.

2. Это позволит вам иметь крэши символифицированными - разработчики будут довольны

3. Благодаря тому, что крэши у вас будут символифицированны, вы сможете лучше склеивать их, таким образом решите проблему, когда один фактический крэш многократно множится за счет разных повторений себя же.

Duplicates 2

Есть одно но! При включенном bitcode заливаемый бинарник и тот который в аппсторе разные и загружать сборочный dSYM бессмысленно. Причем dSYM к AppStore бинарнику доступен из itunesconnect. Было бы лучше при возможности загрузить пакет dSYM (разные сборки и архитектуры), а система чтобы сама анализировала и сопоставляла UUID в dSYM-ах и крашлогах.

Плюс к этому желательно чтобы стэк системных методов автоматически символизировался. Иногда это даже полезнее чем стэк методов приложения, но не каждый разработчик может себе позволить собрать базу на разные архитектуры и версии iOS