【发布时间】:2017-03-29 18:15:31
【问题描述】:
我从一位声称通过共享扩展从照片应用共享照片的客户那里收到以下日志。客户假设与路由器的互联网连接不良。客户描述的行为如下:
- 通过共享扩展通过错误的连接上传文件
- 让设备休眠,在我们的例子中,连接应该被终止并且文件不会上传到我们的服务器。
- 尝试重新上传相同的文件。
预期结果: 该文件应该可以正常上传。
实际结果: Share Extension 永远不会加载,这意味着用户可以无限点击应用程序图标而无法显示视图。
除此之外,我们从未能够在内部重现此类问题。但是,客户每次在机场时都可以这样做。
我查看了他的设备日志,我可以看到以下内容,但不知道发生了什么。从越界异常开始,由于视图从未加载,我无法解释。
有任何想法或其他人遇到过同样的问题吗?
Apr 13 15:11:07 audi pkd[153] : 分配插件 (2.1.2) 到插件沙箱
Apr 13 15:11:07 audi pkd[153] : 为插件启用 pid=386 (2.1.2) D89CEF37-B025-4C6F-A8B6-FBB6B4D94A84/private/var/containers/Bundle/Application/AF69E215-04AE-4929-A8C8-51BE8FADF397/.app/PlugIns/.appex
4 月 13 日 15:11:07 audi kernel[0] : xpcproxy[451] 容器: /private/var/mobile/Containers/Data/PluginKitPlugin/669C0F52-1C21-441D-9906-E2EFBD8A7D00(沙盒)
4 月 13 日 15:11:08 奥迪内核[0]: LwVM::_generateMappedExtentsList - 无法将取消映射范围映射到分区
4 月 13 日 15:11:08 audi backboardd[60]:无法 名称为 .gsEvents 的 bootstrap_look_up 端口: 未知错误代码 (1102) Apr 13 15:11:08 audi[451]: * 由于未捕获的异常 'NSRangeException' 导致应用程序终止,原因:'* -[__NSArrayI objectAtIndex:]: index 1 beyond bounds [0 .. 0]' 第一次抛出调用栈:(0x18400ae38 0x18366ff80 0x183eeb158 0x1000e4a40 0x1000e4738 0x183a554bc 0x183a5547c 0x183a5ab84 0x183fc0dd8 0x183fbec40 0x183ee8d10 0x1857d0088 0x1891bdf70 0x183cacd74 0x183caea2c 0x184acbd30 0x18b2e2c48 0x18b2e28dc 0x18b2e2c6c 0x1848de058 0x183a868b8)
4 月 13 日 15:11:08 audi MobileSlideShow[386]:插件 打断了
4 月 13 日 15:11:08 audi MobileSlideShow[386]:插件 无效
4 月 13 日 15:11:08 audi diagnosticd[84]:错误评估过程 信息 - pid:451,puniqueid:451
4 月 13 日 15:11:08 audi mediaserverd[28] : '' (pid = 451) 设置 DiscoveryMode = DiscoveryMode_None, currentDiscoveryMode = DiscoveryMode_None
Apr 13 15:11:08 audi MobileSlideShow[386] : 2016-04-13 15:11:08.629|MobileSlideShow|0x14ce07cd0:主机:无法加载远程 有错误的视图控制器:错误域 = NSCocoaErrorDomain 代码 = 4099 “与服务的连接名为 .viewservice 被中断,但 消息是通过一个额外的代理发送的,因此这个代理有 变得无效。” UserInfo= {NSDebugDescription=连接到 名为 .viewservice 的服务被中断, 但是消息是通过一个额外的代理发送的,因此这个 代理已失效。}
Apr 13 15:11:08 audi MobileSlideShow[386] : 2016-04-13 15:11:08.633|MobileSlideShow|0x14ce07cd0:工作表未呈现, 调用提前完成
4 月 13 日 15:11:08 奥迪 com.apple.xpc.launchd[1] ([451]) : 服务退出由于 信号:中止陷阱:6
4 月 13 日 15:11:08 audi ReportCrash[452] :为 尸体[451]
4 月 13 日 15:11:08 audi ReportCrash[452]:报告类型 '109(109_)' 未保存,因为已限制 25 条日志 到达
4 月 13 日 15:11:08 audi ReportCrash[452] :注意:此报告是 缩写为 syslog 包含,因为它无法保存到 磁盘。
符号化可以通过手动清理和包括 来自同一设备的完整报告的二进制图像部分 - 好 好运!
4 月 13 日 15:11:08 audi ReportCrash[452]:过程: [451] 路径: /private/var/containers/Bundle/Application/AF69E215-04AE-4929-A8C8-51BE8FADF397/.app/PlugIns/.appex/
【问题讨论】:
-
有时用户会想出无法重现的真实奇异场景。调试此问题的唯一方法是从字面上“飞”到那个机场,登录他们的 wifi,并希望您的应用程序以同样的方式崩溃并再次希望您能找出阻止上传连接的代理设置。如果你问我这是一个失败的原因,并告诉用户改用 4G 连接并继续前进。
-
这个用户的主要问题是,在机场事件发生后,他无法再从任何地方共享同一个文件。但是,他可以通过共享扩展使用其他应用共享同一个文件。
-
如何将文件复制并重命名为其他文件?那它行得通吗?在使用我的应用程序时,我已经看到太多这些数组超出范围的错误。您的代码中确实存在代码错误。通过某种奇怪的方式,用户触发了它。我建议告诉用户删除并重新安装应用程序。如果这不是一个选择,祝你好运。
-
@SamB,即使没有加载视图,这可能是我的代码中的错误。我在 viewDidLoad 方法中添加了额外的日志记录,以查看执行了什么。
标签: ios ios-extensions