Consistent iPhone App crash, when editing UITextField, tapping on Globe Icon on iPhone Keyboard, both on hardware and Simulator

Viewed 1179

Environment:

iPhone Simulator or Hardware. Xcode 8.3.3 Deployment target 8.0, Swift

Can't find keyplane that supports type 7 for keyboard iPhone-PortraitChoco-Emoji; using 2383677590_PortraitChoco_iPhone-Emoji-Keyboard_Letters

[NSTaggedPointerString count]: unrecognized selector sent to instance 0xa000000000073652

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSTaggedPointerString count]: unrecognized selector sent to instance 0xa000000000073652'

First throw call stack:

0   CoreFoundation                      0x0000000110461b0b __exceptionPreprocess + 171
1   libobjc.A.dylib                     0x000000010f4e9141 objc_exception_throw + 48
2   CoreFoundation                      0x00000001104d1134 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132
3   CoreFoundation                      0x00000001103e8840 ___forwarding___ + 1024
4   CoreFoundation                      0x00000001103e83b8 _CF_forwarding_prep_0 + 120
5   CoreFoundation                      0x00000001103b403f CFLocaleCopyDisplayNameForPropertyValue + 863
6   CoreFoundation                      0x00000001103b3ccf -[__NSCFLocale displayNameForKey:value:] + 15
7   EmojiFoundation                     0x000000012419fdbf +[EMFEmojiCategory computeEmojiFlagsSortedByLanguage] + 712
8   EmojiFoundation                     0x00000001241979a6 +[EMFEmojiPreferences _cachedFlagCategoryEmoji:] + 256
9   EmojiFoundation                     0x000000012419f922 +[EMFEmojiCategory _emojiSetForIdentifier:] + 351
10  UIKit                               0x00000001121763bc +[UIKeyboardEmojiCategory categoryForType:] + 159
11  UIKit                               0x0000000111cf35fb -[UIKeyboardEmojiCollectionInputView collectionView:numberOfItemsInSection:] + 56
12  UIKit                               0x000000011269697d -[UICollectionViewData _updateItemCounts] + 469
13  UIKit                               0x0000000112699844 -[UICollectionViewData numberOfSections] + 22
14  UIKit                               0x000000011267c0f8 -[UICollectionViewFlowLayout _getSizingInfosWithExistingSizingDictionary:] + 506
15  UIKit                               0x000000011267e088 -[UICollectionViewFlowLayout _fetchItemsInfoForRect:] + 127
16  UIKit                               0x0000000112676ff2 -[UICollectionViewFlowLayout prepareLayout] + 272
17  UIKit                               0x000000011256e428 -[UIKeyboardEmojiLayout prepareLayout] + 50
18  UIKit                               0x0000000112697189 -[UICollectionViewData _prepareToLoadData] + 174
19  UIKit                               0x00000001126979fe -[UICollectionViewData validateLayoutInRect:] + 53
20  UIKit                               0x000000011264033e -[UICollectionView layoutSubviews] + 233
21  UIKit                               0x0000000111cf4fa5 __47-[UIKeyboardEmojiCollectionView layoutSubviews]_block_invoke + 42
22  UIKit                               0x0000000111dbb08e +[UIView(Animation) performWithoutAnimation:] + 90
23  UIKit                               0x0000000111cf4f74 -[UIKeyboardEmojiCollectionView layoutSubviews] + 104
24  UIKit                               0x0000000111dc655b -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1268
25  QuartzCore                          0x00000001119e1904 -[CALayer layoutSublayers] + 146
26  QuartzCore                          0x00000001119d5526 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 370
27  UIKit                               0x0000000111db4334 -[UIView(Hierarchy) layoutBelowIfNeeded] + 1108
28  UIKit                               0x0000000111cf4428 -[UIKeyboardEmojiCollectionInputView didMoveToWindow] + 82
29  UIKit                               0x0000000111dbff01 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 1737
30  UIKit                               0x0000000111db2b96 __45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke + 151
31  Foundation                          0x000000010f00b82b -[NSISEngine withBehaviors:performModifications:] + 155
32  UIKit                               0x0000000111db2a98 -[UIView(Hierarchy) _postMovedFromSuperview:] + 855
33  UIKit                               0x0000000111dc2a0a -[UIView(Internal) _addSubview:positioned:relativeTo:] + 1927
34  UIKit                               0x0000000111db0cf8 -[UIView(Hierarchy) addSubview:] + 838
35  UIKit                               0x0000000112572b75 -[UIKBKeyplaneView setState:forKey:] + 1979
36  UIKit                               0x00000001121f06a7 -[UIKeyboardLayoutStar setKeyplaneName:] + 9044
37  UIKit                               0x00000001121f6689 -[UIKeyboardLayoutStar showKeyboardWithInputTraits:screenTraits:splitTraits:] + 482
38  UIKit                               0x0000000111fc76cb -[UIKeyboardImpl finishLayoutChangeWithArguments:] + 518
39  UIKit                               0x0000000111fc7e32 -[UIKeyboardImpl updateLayout] + 1161
40  UIKit                               0x0000000111fbf124 -[UIKeyboardImpl reinitializeAfterInputModeSwitch:] + 160
41  UIKit                               0x0000000111fbe7ec -[UIKeyboardImpl setKeyboardInputMode:userInitiated:updateIndicator:executionContext:] + 975
42  UIKit                               0x0000000111fc011e -[UIKeyboardImpl setInputModeToNextInPreferredListWithExecutionContext:] + 452
43  UIKit                               0x00000001122095a1 -[UIKeyboardLayoutStar completeSendStringActionForTouchUp:withActions:timestamp:interval:didLongPress:prevActions:executionContext:] + 884
44  UIKit                               0x00000001122088b1 -[UIKeyboardLayoutStar completeRetestForTouchUp:timestamp:interval:executionContext:] + 5227
45  UIKit                               0x0000000111ff2bd2 __45-[UIKeyboardLayout touchUpTaskForTouchState:]_block_invoke + 232
46  UIKit                               0x0000000112840782 -[UIKeyboardTaskQueue continueExecutionOnMainThread] + 374
47  UIKit                               0x0000000111ff28ab -[UIKeyboardLayout _touchEndedProcessingForTouches:] + 341
48  UIKit                               0x0000000111d727ea -[UIWindow _sendTouchesForEvent:] + 2707
49  UIKit                               0x0000000111d73f00 -[UIWindow sendEvent:] + 4114
50  UIKit                               0x0000000111d20a84 -[UIApplication sendEvent:] + 352
51  UIKit                               0x00000001125045d4 __dispatchPreprocessedEventFromEventQueue + 2926
52  UIKit                               0x00000001124fc532 __handleEventQueue + 1122
53  CoreFoundation                      0x0000000110407c01 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
54  CoreFoundation                      0x00000001103ed0cf __CFRunLoopDoSources0 + 527
55  CoreFoundation                      0x00000001103ec5ff __CFRunLoopRun + 911
56  CoreFoundation                      0x00000001103ec016 CFRunLoopRunSpecific + 406
57  GraphicsServices                    0x00000001156e0a24 GSEventRunModal + 62
58  UIKit                               0x0000000111d03134 UIApplicationMain + 159

Any clues on fixing this issue would be great.

Here are more details, please find the following pictures:

I am able to produce one scenario where crash is not happening any more, after deleting Emoji keyboard from Setting -> Keyboards using following steps.

  1. Open the Settings app.
  2. Go to General > Keyboard, then tap Keyboards at the top. (It'll have a number next to it - that's the number of keyboards you've got installed.)
  3. Tap Edit, then tap the red circle next to Emoji.
  4. Tap Delete.

This solution is not acceptable, we can't ask our customers to follow these steps, we better have a solution for the crash.

Emoji Keyboard in Keyboards

After deleting Emoji Keyboard

Before and after deleting Emoji Keyboard:

2 Answers
Related