В журнале аварий iOS Crashlytics отображается _прятно даже после загрузки битового кода dSYM на фабрику
Я довольно долго изучал сбои в нашем приложении и до сих пор не могу понять, почему Crashlytics не может символизировать некоторые сбои (3, если быть точным). На самом деле это текущие серьезные сбои приложения, и мы отчаянно ищем любые возможные подсказки.
Наше приложение имеет битовый код и позволяет загружать dSYM в Apple. Я попытался прочитать документ Crashlytics All about Missing dSYMs, вручную загрузить ZIP-файл dSYM из iTunesConnect, загрузить его на фабрику. После этого "скрытое" число сбоев продолжает расти, и проблема в том, что мы никогда не получаем предупреждение о отсутствующем dSYM в матрице, и оно не показывает отсутствие dSYM на странице настроек матрицы для сборки приложения, которую мы пытаемся исследовать.
Трассировка стека выглядит так: Трассировка сбоя стека
Любая помощь и предложения будут очень признательны! Спасибо!
1 ответ
Я не могу сказать вам, почему символика не удалась. Но, посмотрев на ваш отчет о сбое, я вспомнил несколько вещей, возможно, они могут как-то вам помочь.
Авария происходит внутри замыкания, которое каким-то образом использует UIWebView. После того, как что-то сделано с javascript, ресурсы освобождаются, именно тогда происходит сбой. Вы можете проверить последний код, названный здесь:
Ничего особенного там не происходит.
Я предполагаю, что входные переменные замыкания освобождаются рано. Даже если вы слепой, без рабочей символики, вы можете попытаться найти замыкания, инициирующие вызовы JavaScript, и проверить эти условия, например: [unowned self] in
или аналогичные и попробуйте передать их в собственность. Это может привести к потере памяти, но вы можете проверить это перед выпуском.