Как запустить символы загрузки для загрузки dSYM как часть процесса сборки XCode? - PullRequest
0 голосов
/ 07 февраля 2019

Хорошо, я пытаюсь автоматически загрузить dSYM.Я следую инструкциям из этой официальной документации: https://firebase.google.com/docs/crashlytics/get-deobfuscated-reports

Я застрял в разделе «Запустить скрипт загрузки символов вручную».Есть 3 способа загрузки dSYM.Я пытаюсь следовать первой - включая следующую строку в процессе сборки: find ${DWARF_DSYM_FOLDER_PATH} -name "*.dSYM" | xargs -I \{\} ${PODS_ROOT}/Fabric/upload-symbols -gsp MyProjectFolder/GoogleService-Info.plist -p ios \{\}

На данный момент я попробовал следующее:

  1. Я иду в Project-> Схема-> Редактировать схему.
  2. Я нажимаю на Построить-> Действия после публикации
  3. Я начинаю с малого - я хочу показать только "эхо" в процессе сборки: dSYMs
  4. Я запускаю Product-> Build
  5. Я захожу в View-> Navigators-> Show Navigator
  6. Нет признаков того, что эхо было выполнено.

Куда поместить этот скрипт?

Как узнать, запускается он или нет?

Ответы [ 3 ]

0 голосов
/ 13 марта 2019

Попробуйте выполнить следующие действия:

Шаг 1: выберите проект Xcode вашего приложения, затем цель приложения, затем выберите «Фазы сборки».

Шаг 2: в меню Xcode выберите «Редактор », затем выберите« Добавить фазу сборки », а затем нажмите« Добавить фазу сборки сценария запуска ».

Шаг 3: Теперь вы должны увидеть раздел« Выполнить сценарий »в параметрах фазы сборки.

Шаг 4. Вставьте сценарий в тело фазы запуска сценария запуска.

Имейте в виду, чтобы указать правильные пути к файлам в сценариях.

0 голосов
/ 22 апреля 2019

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/

0 голосов
/ 12 февраля 2019

Требуется обновление в Project Target-> Build setting -> Debug Information (Отладка и выпуск обоих) -> DWARF с файлом dSYM

enter image description here

...