Ткани, запрашивающие 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]