【发布时间】:2016-10-12 15:57:03
【问题描述】:
是否有任何“标准”和自动方式从 Xamarin.iOS 发布 Appstore 应用程序获取堆栈跟踪?
很久以前,当我在 Xcode 中编写原生 iOS 4.0 应用程序时,从发布二进制文件中获取异常堆栈跟踪存在一个巨大的问题:应用程序将非符号堆栈发送到我的服务器,我下载了它们,解析了 dSYM 文件并用真实的方法替换地址。甚至为此编写了 java 助手。但它是一个脆弱的构造(几种架构,更新二进制格式等),很久以前我发现它不再正常工作了。这不是必需的,我只是忘记了。
在 android 和 Win/Wp 中,我得到了托管堆栈,因为我需要了解主要在我的 C# 代码中的错误。
但现在我在 VisualStudio 中使用 Monogame 和 Xamarin.iOS 编写了一个应用程序:
AppDomain.CurrentDomain.UnhandledException += (sender, args) =>
{
Ut.saveStringToFile("exceptions.log", args.ExceptionObject.ToString());
};
但在 Xamarin.iOS 应用程序中,我发现我不能有开箱即用的堆栈:即使在发布版本的模拟器上,也删除了一些行(尽管我在发布版本中关闭了 LLVM 和优化)其他指向一些地址。
现代程序员如何从 Xamarin.iOS 应用程序中获取堆栈?没有隐藏的 api(我打算将应用发布到 Appstore)和 testflight(对于免费的应用所有者来说,现在使用第三方服务可能太贵了)。
【问题讨论】:
标签: c# ios exception-handling xamarin.ios