我有一个使用Xamarin Forms for iPad开发的自助服务终端应用程序。
此自助服务终端应用程序附带信用卡读卡器和蓝牙条码扫描器。
App Store版本1.0.4自2017年11月以来一直没有问题。在过去一个月左右的时间里,我们收到客户的报告称iPad被冻结(应用程序被锁定)。我对崩溃日志进行了一些研究,发现Springboard Watchdog超时(10秒),因为我正在制作的Web服务API调用是在UI线程上超时。与Web服务所有者联系,发现他们遇到了一些服务器问题导致响应速度变慢。我修改了应用程序以在后台线程上进行所有Web API调用,并认为这应该可以缓解这个问题。我发现iPad仍在冻结,但这次没有崩溃日志。
快进约5次修订(现在使用Testflight),我的版本是1.0.9。我添加了大量的日志记录,每隔10分钟ping一次,所有方法周围都有大量的try / catch调用日志来尝试隔离问题。我没有成功。
所以我们在这里,iPad冻结了所有地方,日志没有说明他们是如何或为什么锁定。然而,自助服务终端被锁定,需要有人退出引导访问模式,关闭应用程序并重新启动应用程序。
所以我有下面的最新例子,这些是设备离线前的最后一个日志条目(停止ping)。
最新的日志条目是第一个 Id LogTime LocationCodeId LogMessage
61872 2018-05-11 08:45:50.223 61登录位置A19Bb2bc ...
61871 2018-05-11 08:45:50.210 61打开Magtek读卡器设备......
(......日志中没有其他内容,但此时应用程序在屏幕上冻结......)它没有崩溃,只是冻结了UI没有响应触摸。需要从iPad双顶按钮强制退出,向上滑动。
61576 2018-05-11 07:24:33.870 61订单已成功下单
61577 2018-05-11 07:24:33.870 61重新启动
61575 2018-05-11 07:24:33.263 61启动扫描仪触发器
61574 2018-05-11 07:24:33.217 61触发扫描仪启动
61573 2018-05-11 07:24:33.027 61产品蜂蜜坚果麦片(杯) (对象:5038资产ID:35价格:从购物车中删除1.79美元。购物车总额为0.00美元
在该日志条目“下订单”之后,ViewModel(通常)执行Navigation.PopAsync(true)并返回到空闲视图。但是在此之后没有更多的日志条目。这是一个工作示例日志:
没有后台线程,没有奇怪的阻塞,没有数据库调用等。这是一个简单的Log to Logging API,然后将导航堆栈中的购物车弹出并返回空闲状态。
61329 2018-05-11 05:13:08.560 61 Ping计时器
61327 2018-05-11 05:12:09.490 61 IdleView OnAppearing done
61326 2018-05-11 05:12:09.443 61 ShoppingCartView OnDisappearing
61324 2018-05-11 05:12:09.413 61 IdleView OnAppearing
61323 2018-05-11 05:12:09.383 61停止条形码扫描器...
61321 2018-05-11 05:12:08.710 61订单已成功下单
61322 2018-05-11 05:12:08.710 61重新启动
61319 2018-05-11 05:12:07.820 61启动扫描仪触发器
符号化的崩溃日志可以在这里找到:
Links to pastebin.com must be accompanied by code?
我无法弄清楚崩溃日志的内容。崩溃日志中没有一行指向我的任何源代码,这使我认为这是一个异步/线程问题或其他一些未处理的异常。
非常感谢任何协助。
更新:收到Apple关于崩溃日志的回复:
后续行动:689674112 崩溃日志没有帮助的原因是,它不是真正的崩溃。
你的应用程序被终止,因为Xamarin在主线程上调用了abort()。 它在尝试处理异常后执行此操作,当它无法执行时,它放弃并中止了应用程序。
为什么会这样,我不能告诉你。但它可能不是由于主线程上的某些东西,而是Xamarin异常处理程序在主线程上。
我看到线程8和9正在等待某些东西(希望不会出现死锁)。除此之外,我无法知道Xamarin认为异常是什么。
这可能是寻找Xamarin资源帮助解决此问题的时候了。
开发者技术支持
答案 0 :(得分:0)
我在一个有严重内存泄漏的应用程序中遇到了类似的症状(突然冻结和奇怪的崩溃)。我建议使用分析器进行一些测试。
Xamarin Profiler(需要企业订阅)/ Instruments