Crash with UITextView intelligenceCollectContent Apple Intelligence

Hello, I am using Xcode 15.3 and doesn't add any support for Apple Intelligence yet as it requires Xcode 16+. But I see many crashlogs related to Apple Intelligence, I assume crash is related to UITextView element of UIKit.

Can you please help me to resolve this issue, how can I fix it?

There are few lines of the crashlog, they are all similar.

Thread 0 name:

Thread 0 Crashed:

0   UIKitCore                     	0x0000000196692d74 specialized UITextView._intelligenceCollectContent(in:collector:) + 2748 (UITextView_IntelligenceSupport.swift:37)

1   UIKitCore                     	0x0000000196691eb0 @objc UITextView._intelligenceCollectContent(in:collector:) + 60 (<compiler-generated>:17)

2   UIIntelligenceSupport         	0x000000026b91f1e4 UIIntelligenceElementCollector.performCollection(_:) + 424 (UIIntelligenceElementCollector.swift:46)

3   UIKitCore                     	0x0000000196473b70 specialized UIView._intelligenceElement(in:using:transformToRoot:) + 1440 (UIView_IntelligenceSupport.swift:132)

4   UIKitCore                     	0x000000019647a800 specialized UIView._intelligenceCollectElement(for:in:using:transformToRoot:) + 424 (UIView_IntelligenceSupport.swift:84)

5   UIKitCore                     	0x00000001964792ec @objc UIView._intelligenceCollectElement(for:in:using:transformToRoot:) + 136 (<compiler-generated>:77)

6   UIKitCore                     	0x0000000196472c20 closure #1 in UIView._intelligenceCollectSubelements(in:using:transformToRoot:) + 256 (UIView_IntelligenceSupport.swift:55)

7   UIIntelligenceSupport         	0x000000026b91f728 UIIntelligenceElementCollector.performElementCollection(_:) + 424 (UIIntelligenceElementCollector.swift:61)
v

8   UIKitCore                     	0x00000001964728f4 UIView._intelligenceCollectSubelements(in:using:transformToRoot:) + 928 (UIView_IntelligenceSupport.swift:54)

9   UIKitCore                     	0x0000000196473354 @objc UIView._intelligenceCollectSubelements(in:using:transformToRoot:) + 136 (<compiler-generated>:0)

10  UIKitCore                     	0x0000000196479810 closure #3 in UIView._intelligenceElement(in:using:transformToRoot:) + 256 (UIView_IntelligenceSupport.swift:165)

11  UIIntelligenceSupport         	0x000000026b91fb54 UIIntelligenceElementCollector.performElementArrayCollection(_:) + 144 (UIIntelligenceElementCollector.swift:78)
...

...

225 UIIntelligenceSupport         	0x000000026b8ee630 closure #1 in IntelligenceCollectionListener.collectFragments(_:) + 192 (IntelligenceCollectionListener.swift:60)

226 UIIntelligenceSupport         	0x000000026b91b138 thunk for @escaping @callee_guaranteed () -> () + 36

227 CoreFoundation                	0x000000019376b6e4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 28 (CFRunLoop.c:1818)

228 CoreFoundation                	0x0000000193759910 __CFRunLoopDoBlocks + 356 (CFRunLoop.c:1860)
229 CoreFoundation                	0x00000001937595f4 __CFRunLoopRun + 2432 (CFRunLoop.c:3217)

230 CoreFoundation                	0x0000000193758830 CFRunLoopRunSpecific + 588 (CFRunLoop.c:3434)

231 GraphicsServices              	0x00000001df7381c4 GSEventRunModal + 164 (GSEvent.c:2196)

232 UIKitCore                     	0x00000001962beeb0 -[UIApplication _run] + 816 (UIApplication.m:3844)
Answered by Frameworks Engineer in 818329022

Thank you for providing the complete crash report. We have identified the issue, it is a compatibility problem with the JSQMessagesCellTextView component of the third-party JSQMessagesViewController library. Specifically, that subclass of UITextView returns an invalid NSRange from its selectedRange property.

As an immediate workaround, if you are integrating that library using its source code into your project, change the implementation from this:

- (NSRange)selectedRange
{
    //  attempt to prevent selecting text
    return NSMakeRange(NSNotFound, NSNotFound);
}

to this instead:

- (NSRange)selectedRange
{
    //  attempt to prevent selecting text
    return NSMakeRange(0, 0);
}

Please submit a bug report using Feedback Assistant and attach the complete crash report file so we can investigate further.

Share the FB# here once you have submitted it. We will need the complete crash log to investigate this.

Hello,

Thank you for quick response,

I have opened a bug report: FB16109883

Accepted Answer

Thank you for providing the complete crash report. We have identified the issue, it is a compatibility problem with the JSQMessagesCellTextView component of the third-party JSQMessagesViewController library. Specifically, that subclass of UITextView returns an invalid NSRange from its selectedRange property.

As an immediate workaround, if you are integrating that library using its source code into your project, change the implementation from this:

- (NSRange)selectedRange
{
    //  attempt to prevent selecting text
    return NSMakeRange(NSNotFound, NSNotFound);
}

to this instead:

- (NSRange)selectedRange
{
    //  attempt to prevent selecting text
    return NSMakeRange(0, 0);
}
Crash with UITextView intelligenceCollectContent Apple Intelligence
 
 
Q