TL; DR: dSYMS, сгенерированные во время сборки, больше не имеют значения в эпоху «битовый код включен», вам нужно загрузить dSYM из Apple и загрузить их в службу поддержки аварийных репортеров третьей стороны.в качестве шага после сборки после того, как Apple обработает вашу загрузку.
Фон
Симптом
Отсутствие символов dSYM / сбой в консоли сторонних отчетов о сбоях.Я думал, что, несмотря на следующие инструкции по установке Crashlytics, сценарий не работал.
Бит-код - фундаментальная проблема
Оказывается, что сторонние системы оповещения о сбоях (например, Crashlytics или New Relic) имеют фундаментальную проблемус текущей лучшей практикой для распространения приложений, которая является приложениями с поддержкой битового кода.Исторически эти сторонние системы отчетов о сбоях полагались на этапы времени сборки для загрузки сгенерированных dSYM времени сборки.Но поскольку поддержка битового кода означает, что магазин приложений перекомпилирует ваши приложения, ваши сгенерированные dSYM во время сборки, которые вы пытаетесь загрузить, фактически бесполезны.
В качестве фона приложения с битовым кодом «прореживаются» и, таким образом,перекомпилирована Apple так, что каждое устройство получает только те биты загрузки, которые ему необходимы. Вы хотите включить битовый код .Это хорошая вещь.Но, распределение с битовым кодом портит символику. Независимо от того, какие dSYM вы генерируете во время сборки, на самом деле dSYM не будут коррелировать с вашими сбоями, поскольку ваши сбой будут происходить из перекомпилированных версий вашего приложения в магазине приложений с новыми соответствующими dSYM.
Так что не беспокойтесь о том, работает ли скрипт загрузки или нет во время сборки.Фактически, этот шаг должен быть удален из процесса сборки, так как он просто тратит ваше время и пропускную способность.
Решения
Решение состоит в том, чтобы подождать «некоторое время» (как сообщается, несколько минут, черезДокументация NewRelic) после загрузки вашего приложения (вероятно, в течение периода времени, когда App Store сообщает, что ваша сборка "Обрабатывается"), затем загрузите оттуда dSYM и используйте сценарий загрузки из командной строки сторонних репортеров
Manualdownload / upload
В настоящее время рекомендованные решения сторонних аварийных репортеров (по крайней мере, документации NewRelic и Crashlytics) - либо перейти на страницу App Store Connect для сборки и загрузить dSYM, а затем загрузить или использовать XCode.Органайзер для архива нажал кнопку «Загрузить символы отладки», затем загрузил их.
Это работает, при ручной загрузке dSYM, отправленной вашему поставщику отчетов о сбоях, вы получите символические отчеты.Это ручной процесс, хотя с использованием графического интерфейса Xcode или интерфейса App Store Connect.
Автоматизация Fastlane
Вы можете автоматизировать процесс с помощью Fastlane, что, я считаю, является правильным решением.
https://docs.fastlane.tools/actions/download_dsyms/#download_dsyms
https://docs.fastlane.tools/actions/upload_symbols_to_crashlytics/