Есть ли какой-либо «стандартный» и автоматический способ получения следов стека из приложения App Store Xamarin.iOS?Удобная обработка исключений в Xamarin.iOS. Приложение Appstore.
Это было давно, когда я писал родные приложения iOS 4.0 в Xcode, возникла огромная проблема, чтобы получить трассировку стека исключений из бинарной версии: приложения отправили несимвольные стеки на мой сервер, я их загрузил, проанализировал dSYM файлы и заменить адреса на реальные методы. Даже написал java помощник для этого. Но это была хрупкая конструкция (несколько архитектур, обновление двоичного формата и т. Д.), И давно я нашел, что она работает некорректно. Это было не нужно, и я просто забыл.
В андроиде и Win/Wp Я получаю управляемые стеки, так как мне нужно знать об ошибках, прежде всего в моем коде на C#.
Но теперь я пишу приложение, используя Monogame и Xamarin.iOS в VisualStudio:
AppDomain.CurrentDomain.UnhandledException += (sender, args) =>
{
Ut.saveStringToFile("exceptions.log", args.ExceptionObject.ToString());
};
Но в Xamarin.iOS приложение я обнаружил, что я не могу иметь стеки только из коробки: даже на симуляторе в выпуске удаляются некоторые строки (хотя я отключил LLVM и оптимизацию в сборке релизов), другие указывают на некоторые адреса.
Как современные программисты получают стеки из приложений Xamarin.iOS? Без скрытого apis (я планирую разместить приложение в Appstore) и testflight (использование сторонних сервисов может быть слишком дорогостоящим в настоящее время для бесплатного владельца приложения).
Я не занимаюсь сторонними службами, они ненадежны. У меня есть полный стек сетевых сервисов (хранилище данных, аналитика, отслеживание, обмен сообщениями, обратная связь, IAP, безопасность и т. Д.), Созданный самостоятельно для android и win/wp, и только я могу изменить форматы данных или что-то еще, поэтому нет зависимостей. Очень сложно и нервно обращаться со всеми такими зависимостями, как сторонние сервисы, и я использую Xamarin.iOS только потому, что с отдельным dev в xcode общая сложность системы становится слишком большой, чтобы контролировать ее только одним человеком. Третья сторона также увеличивает эту сложность - как внешний фактор. – Tertium