+ [UIPasteboard _accessibilityUseQuickSpeakPasteBoard]: unrecognized selector sent to the class

I asked this question on the Apple Dev forum, but received no answer.

We detect 100% failure of iOS 8 devices:

+[UIPasteboard _accessibilityUseQuickSpeakPasteBoard]: unrecognized selector sent to class 

Stack trace:

 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 

Despite the fact that TapJoy is captured in the stack trace, their answers to frequently asked questions are incorrect and have nothing to do with the TapJoy code, but rather an iOS 8 bug.

Is it correct?

What is the availability setting associated with the failure?

+5
source share
2 answers

This problem arises because TapJoy used categories in the static library ( UIPasteboard_QSExtras ). The solution is very simple, you need to tell the linker about it

enter image description here

1) Click on the project
2) Click on the target
3) Click the Build Settings tab
4) Find Other Linker Flags

enter image description here

5) Double click on Other Linker Flags
6) Add the -ObjC and -all_load
7)
Delete binary file (delete from device / simulator),
Clear the project (pressing cmd+shift+k ) and
create again (by pressing cmd+b ).

You are ready to go!

+3
source

The solution proposed by I0gg3r, unfortunately, does not work. I tested this on 3 applications and still found that a UIPastboard crash is the most common failure. Any other suggestions? Is there a way to disable the availability settings in the application?

Update : Tapjoy has released an update (10.2.1) that solves this problem. Download their latest SDKs.

+1
source

Source: https://habr.com/ru/post/1207214/


All Articles