我在Apple Dev论坛上问了这个问题,但仍然没有得到答案。

我们体验了100%iOS 8设备崩溃的情况:

+[UIPasteboard _accessibilityUseQuickSpeakPasteBoard]: unrecognized selector sent to class

堆栈跟踪为:
Thread : Fatal Exception: NSInvalidArgumentException
0  CoreFoundation                 0x2889ec1f __exceptionPreprocess + 126
1  libobjc.A.dylib                0x36049c8b objc_exception_throw + 38
2  CoreFoundation                 0x288a3f55 __CFExceptionProem
3  CoreFoundation                 0x288a1def ___forwarding___ + 354
4  CoreFoundation                 0x287d3df8 _CF_forwarding_prep_0 + 24
5  UIAccessibility                0x331fc157 +[UIPasteboard_QSExtras pasteboardWithName:create:] + 30
6  MyApp                          0x002eb507 -[TJEventOptimizer .cxx_destruct]
7  MyApp                          0x002eb28b -[TJEventOptimizer .cxx_destruct]
8  MyApp                          0x002f0c2b -[TJEventOptimizer .cxx_destruct]
9  MyApp                          0x002eeedb -[TJEventOptimizer .cxx_destruct]
10 Foundation                     0x295adb5b __NSThread__main__ + 1118
11 libsystem_pthread.dylib        0x3670ce93 _pthread_body + 138
12 libsystem_pthread.dylib        0x3670ce07 _pthread_start + 118
13 libsystem_pthread.dylib        0x3670ab90 thread_start + 8

尽管事实如此,TapJoy还是在堆栈跟踪their FAQ says中捕获的,它在理论上是错误的,与TapJoy的代码无关,而与iOS 8错误有关。

这是正确的吗?

与崩溃相关的辅助功能设置是什么?

最佳答案

出现此问题的原因是TapJoy在静态库中使用了类别(即UIPasteboard_QSExtras)
该解决方案非常简单,您需要通知链接器有关该信息的信息。

1)点击项目
2)点击目标
3)打开Build Settings选项卡
4)搜索Other Linker Flags
5)双击Other Linker Flags6)添加-ObjC-all_load标志
7)
删除二进制文件(从设备/模拟器中删除),
清理项目(点击cmd+shift+k)并
再次构建(点击cmd+b)。

您准备好出发了!

10-08 15:15