无人值守的 Xamarin iOS iPad 展台应用程序有时会崩溃(新的,来自应用商店中的几个月)



我有一个使用适用于iPad的Xamarin Forms开发的自助服务终端应用程序。

此自助服务终端应用程序连接了信用卡读卡器和蓝牙条形码扫描仪。

App Store 版本 1.0.4 自 2017 年 11 月以来一直发布,没有任何问题。在过去的一个月左右,我们从我的客户那里收到报告说iPad被冻结(应用程序被锁定(。我对崩溃日志进行了一些研究,发现跳板看门狗超时(10 秒(,因为我在 UI 线程上进行的 Web 服务 API 调用超时。已联系 Web 服务所有者,发现他们有一些服务器问题导致响应缓慢。我修改了应用程序以在后台线程上进行所有 Web API 调用,并认为这应该可以缓解这个问题。我发现iPad仍然冻结,但这次没有崩溃日志。

快进大约 5 个修订版(现在使用 Testflight(,我使用的是 1.0.9 版。我添加了很多日志记录,每 10 分钟执行一次 ping,围绕所有带有日志的方法进行大量尝试/捕获调用,以尝试隔离问题。我一直没有成功。

所以我们在这里,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 产品蜂蜜坚果Cheerios(杯( (ID:5038 资产 ID:35 价格:$1.79 从购物车中删除。购物车总额为 $0.00

在该日志条目"下订单"之后,ViewModel(通常(执行Navigation.PopAsync(true(并返回到空闲视图。但是,在此之后没有更多的日志条目。这是一个工作示例日志:

没有后台线程,没有奇怪的阻塞,没有数据库调用等。这是对我们的日志记录 API 的简单日志,然后将购物车从导航堆栈中弹出并返回空闲状态。

61329 2018-05-11 05:13:08.560 61 Ping定时器

61327 2018-05-11 05:12:09.490 61 空闲视图出现完成

61326 2018-05-11 05:12:09.443 61购物车查看消失

61324 2018-05-11 05:12:09.413 61 IdleView 出现

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 启动扫描仪触发器

符号化的崩溃日志可以在这里找到:

https://pastebin.com/urNsFA4z

Links to pastebin.com must be accompanied by code?

我无法弄清楚崩溃日志在说什么。崩溃日志中没有一行指向我的任何源代码,这让我认为这是一个异步/线程问题或其他一些未经处理的异常。

任何协助将不胜感激。

更新:收到苹果关于崩溃日志的回复:

跟进:689674112 崩溃日志没有帮助的原因是,它不是真正的崩溃。

你的应用已终止,因为 Xamarin 在主线程上调用了 abort((。 它在尝试处理异常后执行此操作,当无法处理时,它放弃并中止了应用程序。

为什么会这样,我不能告诉你。但这可能不是由于主线程上的某些内容,而是 Xamarin 异常处理程序位于主线程上。

我看到线程 8 和 9 正在等待某些东西(希望不会陷入僵局(。除此之外,我无法知道Xamarin认为什么是例外。

现在可能是从 Xamarin 资源中寻求一些帮助来解决此问题的时候了。

<小时 />

 开发人员技术支持

我在具有严重内存泄漏的应用程序中遇到过类似的症状(突然冻结和奇怪的崩溃(。我建议使用探查器进行一些测试。

Xamarin Profiler (需要企业订阅(/仪器

相关内容

最新更新