Символический журнал сбоев, когда имя приложения содержит апостроф и пробел (развернутое приложение)

У меня есть приложение в App Store, которое вылетает. Я попробовал несколько решений для SO, чтобы символизировать мое приложение, используя в разное время Организатор, Терминал и Инструменты. Пока ничего не получалось - строки в отчетах о методах в моем приложении никогда не символизируются, даже когда строки для методов Apple таковы. Посмотрев некоторое время, кажется, что это может иметь какое-то отношение к имени приложения, которое соответствует "списку Энджи" - и с апострофом, и с пробелом. Сейчас уже слишком поздно менять имя приложения, так как оно есть в магазине. Я нигде не видел решения этой проблемы и был бы признателен за правильное направление.

1 ответ

Решение

Обычно имя приложения не имеет значения, если только в скрипте символизации нет ошибки, в которой я сомневаюсь. Вы проверили, есть ли у вас правильный dSYM?

Если вы прокрутите свой последний журнал сбоев, проверьте 1-ю строку ниже Binary Images, это будет выглядеть так

0x1000 -   0x24cfff +YourApp armv7  <f6012c517d783486ab53e45d948b92a2> /var/mobile/Applications/A8EC3C1F-44AF-169A-BC0E-FBBC0F04CDF5/YourApp.app/YourApp

f6012c517d783486ab53e45d948b92a2 UUID исполняемого файла, вызвавшего сбой.

Вы можете найти правильный dSYM, используя терминал следующим образом:

mdfind "com_apple_xcode_dsym_uuids == F6012C51-7D78-3486-AB53-E45D948B92A2"

Строка F6012C51-7D78-3486-AB53-E45D948B92A2 указанная выше строка переформатирована в верхний регистр и в группы 8-4-4-4-12. Я думаю, что эта команда не вернет ничего.

Если у вас есть dSYM (например, в.xcarchive), вы можете проверить его UUID в терминале следующим образом:

dwarfdump --uuid YourApp.app.dSYM 

Если символика не работает автоматически, вы можете попробовать сделать это вручную, следуя инструкциям, размещенным здесь: Отчеты о сбоях iOS: atos не работает должным образом

Если в приложении есть специальные символы, такие как пробелы или апострофы, то набор инструментов Apple по умолчанию не сможет его символизировать. Причина в том, что инструмент otool, который используется в наборе инструментов, не может справиться с этим. Независимо от того, как вы передаете имя файла. Таким образом, чтобы исправить это, вы должны сделать следующее:

  1. Переименуйте пакет dSYM и удалите все специальные символы, например, из My App's.app.dSYM в MyApps.app.dSYM
  2. Откройте содержимое внутри пакета и перейдите к Contents/Resources/DWARF
  3. Переименуйте файл там, как вы сделали выше

Теперь попробуйте еще раз. Лучший способ избежать всего этого: НИКОГДА не использовать специальные символы в имени вашего приложения. Если вы хотите настроить имя, которое появляется на экране, используйте CFBundleDisplayName или соответствующие записи в списке.

Другие вопросы по тегам