Xcode не генерирует все требуемые DSYMS, хотя в настройках сборки есть формат отладочной информации = Dwarf с dSYM

#ios #xcode #firebase #dsym

#iOS #xcode #firebase #dsym

Вопрос:

Xcode генерирует один dsym, в котором в качестве имени файла указано имя моего приложения (например MyApp.app.dSYM ), но он не генерирует другие dsyms с UUID, о которых Firebase постоянно сообщает мне, что я отсутствую. (например 92248A4B-6CA2-3B54-9787-C007E25C018F.dSYM )

Я следовал инструкциям, но что-то все еще не так. Это работало, когда мы использовали Fabric, но поскольку мы обновились, чтобы напрямую использовать Firebase, больше ничего не работает должным образом.

скриншот ошибки firebase об отсутствующих dsyms

Я следовал инструкциям о том, как изменить настройки сборки, чтобы убедиться, что DSYMS генерируются, но мои настройки сборки уже были обновлены подобным образом, когда я следовал инструкциям по миграции из Fabric в Firebase. Вот скриншот моих настроек сборки:

скриншот настроек сборки

Вот скриншот моего этапа сборки сценария запуска:

скриншот этапа сборки сценария запуска

В журнале сборки архива единственная ссылка на генерацию DSYMS — для того MyApp.app.dSYM , который я получаю, но мне нужны и другие сгенерированные.

Сгенерированный символьный файл /Users/kenny/Library/Developer/Xcode/DerivedData/MyApp-dttbmiamkojuotbcyjgzerxhcqun/Build/Intermediates.noindex/ArchiveIntermediates/MyApp/BuildProductsPath/Release-iphoneos/MyApp.app.dSYM /Users/kenny/Library/Developer/Xcode/DerivedData/MyApp-dttbmiamkojuotbcyjgzerxhcqun/Build/Intermediates.нет индекса/ArchiveIntermediates/MyApp/InstallationBuildProductsLocation/Applications/MyApp.app/MyApp (в целевом ‘MyApp’ из проекта ‘MyApp’) cd /Users /kenny/inaday2/svn-MyApp/ trunk/apps/iOS/MyApp /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault. цепочка инструментов/usr/bin/dsymutil /Users/kenny/Library/Developer/Xcode/DerivedData/MyApp-dttbmiamkojuotbcyjgzerxhcqun/Build/Intermediates.нет индекса/ArchiveIntermediates/MyApp/InstallationBuildProductsLocation/Applications/MyApp.app/MyApp -o /Users/kenny/Library/Developer/Xcode/DerivedData/MyApp-dttbmiamkojuotbcyjgzerxhcqun/Build/Intermediates.noindex/ArchiveIntermediates/MyApp/BuildProductsPath/Release-iphoneos/MyApp.app.dSYM

Комментарии:

1. Привет @Kenny Wyland. Смогли ли вы решить эту проблему? Я столкнулся с тем же самым.

2. @Tomas К сожалению, нет. Мне постоянно приходится загружать свои dsyms в firebase.

Ответ №1:

Настройки выглядят нормально, прикрепляя скрипт, который я использую, и обрабатываю. Надеюсь, эта информация поможет. введите описание изображения здесь
Чтобы иметь все dsyms, вам нужно сначала загрузить сборку в Testflight, а затем из Tesflight, вам необходимо загрузить обработанный окончательный dSYM.zip .

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

Папка appDsyms.zip будет загружен, как только он будет распакован, вы увидите список dSYM

Опубликуйте, который использует приведенный ниже скрипт для загрузки того же самого в crashlytics. Итак, в Firebase Crashyltics внесено несколько изменений в то, как dSYM отображается в сборке, которую мы загружаем.

Изначально также существовал ручной вариант загрузки, но теперь он заброшен и единственный способ — запустить скрипт с вашего терминала.

 Pods/FirebaseCrashlytics/upload-symbols -gsp YOUR_PLIST_FULL_PATH -p ios ~/PATH_TO_DSYM_ZIP_OR_FOLDER 

**Example[Below is my working script to upload dSYM to crashlytics]:**

Pods/FirebaseCrashlytics/upload-symbols -gsp MY_PRROJECT_NAME/Support/Firebase/Prod/GoogleService-Info.plist -p ios ~/Downloads/appDsyms 
  

Комментарии:

1. это работает, только если в вашем приложении включено «Включить битовый код», в противном случае dsyms находятся только на вашем компьютере.