Приложение iOS имеет таинственный UUID без соответствующего dSYM, поэтому не может символизировать

Я хорошо знаком с тем, как аварийные журналы для приложений для iOS символизируются, но этот является головным scratcher.

У меня есть MyApp со сборкой 2345, которая была выпущена в виде бета-теста через TestFlight, используя обычный файл Archive, а затем Upload to App Store в Xcode 7.2 (7C68).

Когда я делаю dwarfdump для двоичного кода в xcarchive, я получаю следующее:

dwarfdump --uuid MyApp.app/MyApp
UUID: 0BDA6D6F-3C0D-339E-842F-C2CB04199E10 (armv7) MyApp.app/MyApp
UUID: B2A69BEC-DF5E-33EA-A9E0-490EBF03074C (arm64) MyApp.app/MyApp

Вот файл dwarfdump для файла dSYM:

dwarfdump --uuid MyApp.app.dSYM
UUID: 0BDA6D6F-3C0D-339E-842F-C2CB04199E10 (armv7) MyApp.app.dSYM/Contents/Resources/DWARF/MyApp
UUID: B2A69BEC-DF5E-33EA-A9E0-490EBF03074C (arm64) MyApp.app.dSYM/Contents/Resources/DWARF/MyApp

До сих пор так хорошо.

Однако я получил сбой через Organize > Crashes для сборки 2345, у которого есть другой UUID для двоичного файла:

0x100054000 - 0x1000fffff myapp arm64  <3715db2438743cf5aac1742d9a214c2c> /var/mobile/Containers/Bundle/Application/7313BC02-3F90-4F94-82E2-CBDC941E5D68/MyApp.app/myapp
0x100144000 - 0x1001e7fff AWSCore arm64  <c2aa13236d0437b98194c0487db69e68> /var/mobile/Containers/Bundle/Application/7313BC02-3F90-4F94-82E2-CBDC941E5D68/blink.app/Frameworks/AWSCore.framework/AWSCore
....

Я точно знаю, что отчет о сбоях для одной и той же сборки, но UUID здесь 3715db2..., когда я ожидаю, что это будет b2a69bec...

У меня есть бит-код, поэтому я попытался выполнить dSYM для загрузки с страницы архиватора-организатора (хотя я создал arm64, поэтому Apple не должен был этого делать), и он получил dSYM для других UUID/двоичных файлов в отчете о сбое, но ничего для двоичного файла myapp. Фактически двоичный файл myapp является единственным двоичным файлом, который не получил загруженный соответствующий dSYM!

Итак, пару вопросов:

  • Где была версия 3715db2438743cf5aac1742d9a214c2c myapp binary исходит из?
  • Как я могу получить dSYM для этого, чтобы я мог символизировать крах? Apple не возвращает его с опцией "Загрузить dSYM" в Xcode.

Ответ 1

Похоже, я нашел решение.

Это возможно, если вы установили бит-код. Чтобы получить необходимый dSym, вы должны либо использовать кнопку "Загрузить dSYMs..." (Xcode/Organizer/Your Archive - правая панель с информацией о архиве), либо загрузить их из iTunes Connect (вкладка Activity, ссылка в деталях сборки).

iTunes Connect

Последний вариант помог мне в моей ситуации.

Ответ 2

  1. dSYM хранится внутри вашего .xcarchive Щелкните правой кнопкой мыши по архиву в организаторе и покажите содержимое пакета. Он должен быть там.