Ткани, запрашивающие dSYM, которые не находятся в архиве или файле iTunes Connect dSYM

У меня есть приложение с установленным Crashlytics. Чтобы получить файлы dSYM для него, я всегда обращался к Window/Organizer, щелкнул правой кнопкой мыши, чтобы показать в finder, щелкните правой кнопкой мыши "показать содержимое пакета" и перейдите в каталог dSYM, чтобы получить их.

В этом случае Crashlytics говорит, что ему не хватает файла dSYM, который представляет собой случайную строку цифр и букв (65cbd90a2b443d36ab7a6a419b797a71). Когда я иду искать его, используя описанную выше методологию, я вижу только файл с именем MyApp.app.dSYM и dSYM файлы для нескольких фреймворков, которые я включил через CocoaPods. Я попытался использовать перетаскивание этого файла, но Fabric настаивает на случайной строке.

Я попытался показать содержимое пакета MyApp.app.dSYM, но ничего не вижу внутри него, кроме папки "Содержание" и папки "Ресурсы" с поддиректорией DWARF и файла без расширения под названием "Мое приложение".

После рассмотрения этого сообщения я на 99% уверен, что не могу просто создать архив и повторно отправить его.

Я также попробовал загрузить dSYM прямо из iTunesConnect, как описано в этом сообщении.

Я попытался загрузить этот dSYM "как есть", а также закрепить его (dSYM.zip), но Fabric по-прежнему хочет, чтобы случайная строка, которая, похоже, не существует ни в локальном архиве, ни в dSYM на iTunesConnect.

Любые предложения re: дополнительные методы, которые я могу получить, файл dSYM, запрашиваемый Crashlytics, очень ценен.

Ответы

Ответ 1

Вы почти там, когда вы загружаете пакет DSYM из iTunes Connect! После загрузки добавьте расширение .zip и дважды щелкните, чтобы разархивировать его.

В папке созданных DSYM будет один подзаголовок 65cbd90a2b443d36ab7a6a419b797a71 (запрашивается один Crashlytics). Если это не так - дважды проверьте, что вы смотрите на те же сборки на Crashlytics и iTunes connect.

Загрузите этот файл в Crashlytics.

Проблема решена. 👍

Ответ 2

Для приложений с поддержкой без бита, Crashlytics автоматически загрузит ваш dSYMs. Если вы включили Bitcode в своем приложении, вам необходимо загрузить dSYM вручную.

Приложения с поддержкой битового кодирования необходимы для загрузки их dSYM из Xcode, а затем загружают его в Crashlytics, чтобы символизировать сбои. DSYM для приложений с поддержкой Bitcode можно загрузить с помощью Xcodes Organizer. Выберите конкретный архив вашего приложения, а затем нажмите кнопку "Загрузить dSYMs", который вставляет скомпилированные dSYM файлы в исходный архив.

введите описание изображения здесь

Загрузка dSYM вручную

Если вы обнаружите, что dSYMs arent будет поднят, вы можете добавить их вручную, перейдя на страницу настроек , выбрав приложение, и нажмите вкладку "Отсутствующие DSYM", чтобы загрузить dSYM.

введите описание изображения здесь

Чтобы найти, где находится dSYM, запустите эту команду в открытом терминале:

mdfind "com_apple_xcode_dsym_uuids == <UUID>"

Чтобы найти все попытки dSYM

mdfind "com_apple_xcode_dsym_uuids == *"

Кроме того, если вы загружаете dSYM на Fabric, вы должны убедиться, что UUID соответствует отсутствующему. Выполнение этой команды в открытом терминале даст вам UUID dSYM.

dwarfdump -u <PathToYourAppsDsym>

Ссылка

Расширенная настройка Crashlytics

Ответ 3

Когда вы создаете двоичный код, символы располагаются в определенных местах внутри файла. Когда нет символов, журнал сбоев будет указывать смещения от определенных точек в двоичном формате, например. someFramework.someFunction +100

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

Вот почему важно отметить тегирование вашего репозитория git, например, release-v2.1, поэтому, если вам нужно, вы можете вернуться и повторно архивировать, а смещения должны быть одинаковыми.

Что касается Fabric, для него требуется zip-версия файла dSYM, этот номер, который вы опубликовали, вероятно, является хэшем zip файла, я не уверен на 100%.

Если у вас есть приложение Fabric, установленное в вашей системе, запуск версии на устройстве должен привести к автоматической загрузке файла dSYM (что может привести к снижению пропускной способности канала, если вы многократно создаете и запускаете проект, где он все равно будет загружать каждый dSYM файл для каждой сборки).

Лучше всего будет найти точный момент времени в вашем репозитории git и повторно запустить приложение в симуляторе, это должно загрузить dSYM и, надеюсь, пару к старой, хотя я не конечно, это сработает. В противном случае, если вы считаете, что у вас есть точный dSYM, попробуйте закрепить его и загрузить.

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

atos [-o AppName.app/AppName] [-l loadAddress] [-arch architecture]