在 iPad pro 11.2.5 应用程序崩溃

Posted

技术标签:

【中文标题】在 iPad pro 11.2.5 应用程序崩溃【英文标题】:In iPad pro 11.2.5 App get crashed 【发布时间】:2018-04-09 11:03:58 【问题描述】:

在我的应用程序中,我使用了一个textfield。当点击textfield 时,device keyboard 将出现,然后我在该textfield 中输入一些文本。当时应用程序在iPad Pro 11.2.5 版本中崩溃。我不知道为什么应用程序会崩溃,因为相同的代码在 iPad Pro 10.3 版本中完美运行。请查看下面的我的崩溃分析报告

Crashed: com.apple.main-thread

0  libobjc.A.dylib                0x184410430 objc_msgSend + 16
1  CoreFoundation                 0x18514513c __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 20
2  CoreFoundation                 0x1851446dc _CFXRegistrationPost + 420
3  CoreFoundation                 0x185144440 ___CFXNotificationPost_block_invoke + 60
4  CoreFoundation                 0x1851c1e24 -[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1408
5  CoreFoundation                 0x18507ad60 _CFXNotificationPost + 380
6  Foundation                     0x185aa7348 -[NSNotificationCenter postNotificationName:object:userInfo:] + 68
7  UIFoundation                   0x18f8c4570 -[NSTextStorage processEditing] + 240
8  UIFoundation                   0x18f8c41d8 -[NSTextStorage endEditing] + 92
9  UIKit                          0x18e914368 -[UITextInputController _insertText:fromKeyboard:] + 488
10 UIKit                          0x18e9136d0 -[UITextInputController insertText:] + 400
11 UIKit                          0x18ead3518 -[UIFieldEditor insertFilteredText:] + 968
12 UIKit                          0x18f3eb3a0 -[UITextField insertFilteredText:] + 104
13 UIKit                          0x18e91343c -[UIKeyboardImpl insertText:] + 136
14 UIKit                          0x18ebd735c -[UIKeyboardImpl performKeyboardOutput:] + 756
15 UIKit                          0x18ebd665c __55-[UIKeyboardImpl handleKeyboardInput:executionContext:]_block_invoke_2 + 256
16 UIKit                          0x18f431fac -[UIKeyboardTaskEntry execute:] + 192
17 UIKit                          0x18e7975f0 -[UIKeyboardTaskQueue continueExecutionOnMainThread] + 384
18 Foundation                     0x185baf2e4 __NSThreadPerformPerform + 340
19 CoreFoundation                 0x18515b77c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
20 CoreFoundation                 0x18515b6fc __CFRunLoopDoSource0 + 88
21 CoreFoundation                 0x18515af84 __CFRunLoopDoSources0 + 204
22 CoreFoundation                 0x185158b5c __CFRunLoopRun + 1048
23 CoreFoundation                 0x185078c58 CFRunLoopRunSpecific + 436
24 GraphicsServices               0x186f24f84 GSEventRunModal + 100
25 UIKit                          0x18e7d15c4 UIApplicationMain + 236
26 Q App                          0x1050b756c main (main.m:16)
27 libdyld.dylib                  0x184b9856c start + 4

在我的崩溃报告中,我没有在该屏幕中使用NotificationCenter/observer。但是崩溃报告显示在NotificationCenter 中。请问有知道的解决办法吗?

【问题讨论】:

再确认一次,有没有keyBoard相关observer添加? 您的TextField 是否在TableView 中? 没有。我在 customAlert 视图中添加了这个文本字段 我遇到了类似的问题,也只发生在最新的 ios 版本中。你找到原因了吗? 【参考方案1】:

注意:以下内容不了解所有必需的详细信息,因为您没有提供有关如何实现该功能的任何源代码,此处显示的崩溃报告也不包含有关引发的异常代码/信号的任何信息。

顶部框架显示正在调用的方法objc_msgSend。当运行时尝试向对象发送消息(方法)时,始终使用此方法。此方法中的崩溃通常意味着该对象不再存在,这意味着它已被释放,但您的代码仍然拥有引用。

所以这看起来像是您的代码中的内存管理问题。如果没有您的实际实施,就不可能提供任何有意义的帮助。

调试此问题的最佳方法是在调试模式下运行应用程序并将设备连接到 Xcode 并获取更多详细信息。 Instrument 工具还可以帮助找出问题所在。

【讨论】:

您好 Kerni,感谢您的重播。因此,如果这是内存管理问题,则意味着 iPad pro 11.2.2 版本中不会出现崩溃。它仅出现在 iPad Pro 11.2.5 及更高版本中。那么知道为什么这只会出现在最新的 iOS 版本中吗? 可能与操作系统版本无关。你需要分析你的代码。

以上是关于在 iPad pro 11.2.5 应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章

在 iPad 中呈现 UIActivityController 时应用程序崩溃

iPad Pro 3rd Gen 无缘无故杀死前台应用程序

应用程序在 iPad 1 上崩溃,而不是在 iPad 2 或第三代上

一个字就能让iPhoneiPad瞬间崩溃

如何将应用程序图像添加到 iPad 和 iPad Pro 的资产目录?

应用程序在 iPad 2 上运行良好,在 iPad 3 上崩溃,内存不足警告