CrashLytics crash in Twitter SDK, "non-main threads that appear to use UIKit"

ios

#1

Hello:

We have an iOS app that uses the Twitter SDK. Things are working fairly well, and in general, tweeting is working for us in testing, on a variety of devices and iOS versions.

We just launched our app, and we have seen a couple (rare) crashes down in the Twitter SDK, as far as we can tell.The Crashlytics report indicates:


This crash has non-main threads that appear to use UIKit classes or functions. Generally speaking, it is only safe to use UIKit from the main thread. Calling into UIKit from background threads can cause unpredictable behavior (like crashes!).. Please double check that all of your code (that is not on the main thread) has been explicitly marked as safe to use in the background by Apple.

Included below are the crash reports from Crashlytics.

I have checked our Twitter installations (using Pods), and it is the latest versions:
Using TwitterCore (3.0.2)
Using TwitterKit (3.2.1)

Our code that presents sends the tweets (no login) is very basic:

=====

-(BOOL)TwitterTweet:(NSString *)url_str parent:(UIViewController *)parent image:(nullable UIImage *) image text:(nullable NSString *)text {
	NSURL *						full_url;
	NSUInteger					i;
	
	LogInfo( @"Twitter url: %@", url_str );
	[self PushAppState:APP_STATE_SOCIAL_MEDIA];

	TWTRComposer *composer = [[TWTRComposer alloc] init];
	// Twitter will give an error, if these characters are in the tweet!
	text = [text stringByReplacingOccurrencesOfString:@"^" withString:@" "];
	text = [text stringByReplacingOccurrencesOfString:@"<" withString:@" "];
	text = [text stringByReplacingOccurrencesOfString:@">" withString:@" "];
	text = [text stringByReplacingOccurrencesOfString:@"\\" withString:@" "];
	text = [text stringByReplacingOccurrencesOfString:@"|" withString:@"-"];
	text = [text stringByReplacingOccurrencesOfString:@"`" withString:@"\""];
	if( text != nil ) {
		if( text.length > MAX_TWITTER_TEXT ) {
			// Some of the 140 char limit may be used by Twitter for the URL
			for( i = MAX_TWITTER_TEXT; i > 0 && [text characterAtIndex:i] != ' '; --i );
			text = [text substringToIndex:i];
		}
		text = [text stringByAppendingString:@"..."];
		if( ![composer setText:text] ) {
			LogError( @"Can't set twitter short description" );
			return NO;
		}
	}
	
	if( image != nil ) {
		if( ![composer setImage:image] ) {
			LogError( @"Can't set twitter image" );
			return NO;
		}
	}
	full_url = [NSURL URLWithString:url_str];
	if( ![composer setURL:full_url] ) {
		LogError( @"Can't set twitter URL" );
		return NO;
	}

	[composer showFromViewController:parent completion:^(TWTRComposerResult result) {
		if (result == TWTRComposerResultCancelled) {
			LogInfo( @"Tweet canceled" );
		} else {
			LogInfo( @"Tweet sent" );
		}
		[self PopSocialMediaState];
	}];
	
	return YES;
}

====

We seem to be getting about one of these crashes a day. I notice the trace indicates different SDK behaviour, depending on the iOS version (< 10, uses the original Apple SLComposer stuff it appears, under the covers.)

Any guidance would be greatly appreciated!

Thanks,
Dan Pronovost

================

Crashlytics - plaintext stacktrace downloaded by Dan Pronovost at Thu, 23 Nov 2017 02:12:33 GMT

URL: https://fabric.io/driftscape/ios/apps/com.driftscape.driftscape/issues/59e7941361b02d480dcb4618?time=last-thirty-days/sessions/4fb10906ecb947b997b790f4b0688733_d1699e30cff011e79cbe56847afe9799_0_v2

Organization: Driftscape

Platform: ios

Application: Driftscape

Version: 1.02 (65)

Bundle Identifier: com.driftscape.driftscape

Issue #: 1

Issue ID: 59e7941361b02d480dcb4618

Session ID: 4fb10906ecb947b997b790f4b0688733_d1699e30cff011e79cbe56847afe9799_0_v2

Date: 2017-11-22T21:18:00Z

OS Version: 9.3.5 (13G36)

Device: iPad mini

RAM Free: 10.9%

Disk Free: 37.7%

#14. Crashed: com.apple.extension.global-state-queue
0 JavaScriptCore 0x2523ea22 WTFCrash + 53
1 JavaScriptCore 0x2523e9cd WTFPrintBacktrace + 128
2 WebCore 0x254c510b _WebTryThreadLock(bool) + 194
3 WebCore 0x254c56c1 WebThreadLock + 72
4 UIKit 0x2679d4db -[UIWebDocumentView becomeFirstResponder] + 130
5 UIKit 0x26520187 -[UITextInteractionAssistant(UITextInteractionAssistant_Internal) setFirstResponderIfNecessary] + 242
6 UIKit 0x268ce8a7 -[UITextInteractionAssistant(UITextInteractionAssistant_Internal) checkEditabilityAndSetFirstResponderIfNecessary] + 390
7 UIKit 0x2679f341 -[UIWebDocumentView _restoreFirstResponder] + 44
8 UIKit 0x2644c643 -[UIPeripheralHost(UIKitInternal) _restoreInputViewsWithId:animated:] + 410
9 UIKit 0x266d6015 -[UIViewController _restoreInputViewsForPresentation] + 284
10 UIKit 0x266b1ad9 -[UIPresentationController runTransitionForCurrentState] + 1928
11 UIKit 0x266b01d9 -[UIPresentationController _dismissWithAnimationController:interactionController:target:didEndSelector:] + 652
12 UIKit 0x266d5e23 __99-[UIViewController _dismissViewControllerWithAnimationController:interactionController:completion:]_block_invoke + 82
13 UIKit 0x26371541 +[UIView(Animation) performWithoutAnimation:] + 72
14 UIKit 0x266d5c47 -[UIViewController _dismissViewControllerWithAnimationController:interactionController:completion:] + 646
15 UIKit 0x2651beed __73-[UIViewController _dismissViewControllerWithTransition:from:completion:]_block_invoke + 36
16 UIKit 0x26371541 +[UIView(Animation) performWithoutAnimation:] + 72
17 UIKit 0x26496067 -[UIViewController _dismissViewControllerWithTransition:from:completion:] + 990
18 UIKit 0x2643a6bf -[UIViewController dismissViewControllerWithTransition:completion:] + 1078
19 UIKit 0x266d4f91 -[UIViewController _performCoordinatedPresentOrDismiss:animated:] + 416
20 UIKit 0x2643a265 -[UIViewController dismissViewControllerAnimated:completion:] + 124
21 Social 0x2b4a4ce5 -[SLComposeViewController completeWithResult:] + 492
22 Social 0x2b4a4fdf -[SLComposeViewController _handleRemoteViewFailure] + 98
23 Social 0x2b4a504b -[SLComposeViewController remoteController:didLoadWithError:] + 90
24 Social 0x2b4a55e7 __42-[SLComposeViewController viewWillAppear:]_block_invoke + 106
25 UIKit 0x269e4aa9 __117-[NSExtension(UIViewControllerAdditions) instantiateViewControllerWithInputItems:listenerEndpoint:connectionHandler:]_block_invoke + 148
26 libdispatch.dylib 0x21955823 _dispatch_call_block_and_release + 10
27 libdispatch.dylib 0x21962423 _dispatch_queue_drain$VARIANT$mp + 1758
28 libdispatch.dylib 0x21961a61 _dispatch_queue_invoke$VARIANT$mp + 284
29 libdispatch.dylib 0x219645e9 _dispatch_root_queue_drain + 1560
30 libdispatch.dylib 0x21963fcd _dispatch_worker_thread3 + 96
31 libsystem_pthread.dylib 0x21b19b29 _pthread_wqthread + 1024
32 libsystem_pthread.dylib 0x21b19718 start_wqthread + 8

#0. com.apple.main-thread
0 libsystem_kernel.dylib 0x21a5e8d0 mach_msg_trap + 20
1 libsystem_kernel.dylib 0x21a5e6d5 mach_msg + 40
2 CoreFoundation 0x21da9ac5 __CFRunLoopServiceMachPort + 136
3 CoreFoundation 0x21da7e4d __CFRunLoopRun + 1036
4 CoreFoundation 0x21cf7229 CFRunLoopRunSpecific + 520
5 CoreFoundation 0x21cf7015 CFRunLoopRunInMode + 108
6 GraphicsServices 0x232e7ac9 GSEventRunModal + 160
7 UIKit 0x263cb189 UIApplicationMain + 144
8 Drift 0x4539f main (main.m:14)
9 libdispatch.dylib 0x2199f873 (Missing)

#1. com.apple.libdispatch-manager
0 libsystem_kernel.dylib 0x21a742f8 kevent_qos + 24
1 libdispatch.dylib 0x21969d61 _dispatch_mgr_invoke + 256
2 libdispatch.dylib 0x21969abf _dispatch_mgr_thread$VARIANT$mp + 38

#2. com.apple.NSURLConnectionLoader
0 libsystem_kernel.dylib 0x21a5e8d0 mach_msg_trap + 20
1 libsystem_kernel.dylib 0x21a5e6d5 mach_msg + 40
2 CoreFoundation 0x21da9ac5 __CFRunLoopServiceMachPort + 136
3 CoreFoundation 0x21da7e4d __CFRunLoopRun + 1036
4 CoreFoundation 0x21cf7229 CFRunLoopRunSpecific + 520
5 CoreFoundation 0x21cf7015 CFRunLoopRunInMode + 108
6 CFNetwork 0x223489f7 +[NSURLConnection(Loader) _resourceLoadLoop:] + 486
7 Foundation 0x226114a5 NSThread__start + 1148
8 libsystem_pthread.dylib 0x21b1b85b _pthread_body + 138
9 libsystem_pthread.dylib 0x21b1b7cf _pthread_start + 110
10 libsystem_pthread.dylib 0x21b19724 thread_start + 8

#3. com.apple.CFSocket.private
0 libsystem_kernel.dylib 0x21a72eec __select + 20
1 CoreFoundation 0x21daef13 __CFSocketManager + 566
2 libsystem_pthread.dylib 0x21b1b85b _pthread_body + 138
3 libsystem_pthread.dylib 0x21b1b7cf _pthread_start + 110
4 libsystem_pthread.dylib 0x21b19724 thread_start + 8

#4. com.twitter.crashlytics.ios.MachExceptionServer
0 Drift 0x5ba11 CLSProcessRecordAllThreads (CLSProcess.c:376)
1 Drift 0x5ba11 CLSProcessRecordAllThreads (CLSProcess.c:376)
2 Drift 0x5b903 CLSProcessRecordAllThreads (CLSProcess.c:407)
3 Drift 0x4f6cf CLSHandler (CLSHandler.m:26)
4 Drift 0x4b40f CLSMachExceptionServer (CLSMachException.c:446)
5 libsystem_pthread.dylib 0x21b1b85b _pthread_body + 138
6 libsystem_pthread.dylib 0x21b1b7cf _pthread_start + 110
7 libsystem_pthread.dylib 0x21b19724 thread_start + 8

#5. AVAudioSession Notify Thread
0 libsystem_kernel.dylib 0x21a5e8d0 mach_msg_trap + 20
1 libsystem_kernel.dylib 0x21a5e6d5 mach_msg + 40
2 CoreFoundation 0x21da9ac5 __CFRunLoopServiceMachPort + 136
3 CoreFoundation 0x21da7e4d __CFRunLoopRun + 1036
4 CoreFoundation 0x21cf7229 CFRunLoopRunSpecific + 520
5 CoreFoundation 0x21cf7015 CFRunLoopRunInMode + 108
6 libAVFAudio.dylib 0x276b6225 GenericRunLoopThread::Entry(void*) + 132
7 libAVFAudio.dylib 0x2768b177 CAPThread::Entry(CAPThread*) + 154
8 libsystem_pthread.dylib 0x21b1b85b _pthread_body + 138
9 libsystem_pthread.dylib 0x21b1b7cf _pthread_start + 110
10 libsystem_pthread.dylib 0x21b19724 thread_start + 8

#6. NetworkLoad
0 libsystem_kernel.dylib 0x21a5e8d0 mach_msg_trap + 20
1 libsystem_kernel.dylib 0x21a5e6d5 mach_msg + 40
2 CoreFoundation 0x21da9ac5 __CFRunLoopServiceMachPort + 136
3 CoreFoundation 0x21da7e4d __CFRunLoopRun + 1036
4 CoreFoundation 0x21cf7229 CFRunLoopRunSpecific + 520
5 CoreFoundation 0x21cf7015 CFRunLoopRunInMode + 108
6 GeoServices 0x27b82fe3 _runNetworkThread + 466
7 libsystem_pthread.dylib 0x21b1b85b _pthread_body + 138
8 libsystem_pthread.dylib 0x21b1b7cf _pthread_start + 110
9 libsystem_pthread.dylib 0x21b19724 thread_start + 8

#7. Thread
0 libsystem_kernel.dylib 0x21a73864 __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x21b19b35 _pthread_wqthread + 1036
2 libsystem_pthread.dylib 0x21b19718 start_wqthread + 8

#8. WebThread
0 libsystem_kernel.dylib 0x21a5e8d0 mach_msg_trap + 20
1 libsystem_kernel.dylib 0x21a5e6d5 mach_msg + 40
2 CoreFoundation 0x21da9ac5 __CFRunLoopServiceMachPort + 136
3 CoreFoundation 0x21da7e4d __CFRunLoopRun + 1036
4 CoreFoundation 0x21cf7229 CFRunLoopRunSpecific + 520
5 CoreFoundation 0x21cf7015 CFRunLoopRunInMode + 108
6 WebCore 0x254c38cf RunWebThread(void*) + 422
7 libsystem_pthread.dylib 0x21b1b85b _pthread_body + 138
8 libsystem_pthread.dylib 0x21b1b7cf _pthread_start + 110
9 libsystem_pthread.dylib 0x21b19724 thread_start + 8

#9. Thread
0 libsystem_kernel.dylib 0x21a73864 __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x21b19b35 _pthread_wqthread + 1036
2 libsystem_pthread.dylib 0x21b19718 start_wqthread + 8

#10. Thread
0 libsystem_kernel.dylib 0x21a73864 __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x21b19b35 _pthread_wqthread + 1036
2 libsystem_pthread.dylib 0x21b19718 start_wqthread + 8

#11. Thread
0 libsystem_kernel.dylib 0x21a73864 __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x21b19b35 _pthread_wqthread + 1036
2 libsystem_pthread.dylib 0x21b19718 start_wqthread + 8

#12. JavaScriptCore::Marking
0 libsystem_kernel.dylib 0x21a72998 __psynch_cvwait + 24
1 libsystem_pthread.dylib 0x21b1aded _pthread_cond_wait + 536
2 libsystem_pthread.dylib 0x21b1bc99 pthread_cond_wait + 40
3 libc++.1.dylib 0x2151886d std::__1::condition_variable::wait(std::__1::unique_lockstd::__1::mutex&) + 36
4 JavaScriptCore 0x2509e505 JSC::GCThread::waitForNextPhase() + 104
5 JavaScriptCore 0x2509e56f JSC::GCThread::gcThreadMain() + 58
6 JavaScriptCore 0x24eaf881 WTF::threadEntryPoint(void*) + 148
7 JavaScriptCore 0x24eaf7df WTF::wtfThreadEntryPoint(void*) + 14
8 libsystem_pthread.dylib 0x21b1b85b _pthread_body + 138
9 libsystem_pthread.dylib 0x21b1b7cf _pthread_start + 110
10 libsystem_pthread.dylib 0x21b19724 thread_start + 8

#13. WebCore: CFNetwork Loader
0 libsystem_kernel.dylib 0x21a5e8d0 mach_msg_trap + 20
1 libsystem_kernel.dylib 0x21a5e6d5 mach_msg + 40
2 CoreFoundation 0x21da9ac5 __CFRunLoopServiceMachPort + 136
3 CoreFoundation 0x21da7e4d __CFRunLoopRun + 1036
4 CoreFoundation 0x21cf7229 CFRunLoopRunSpecific + 520
5 CoreFoundation 0x21cf7015 CFRunLoopRunInMode + 108
6 WebCore 0x254e77cd WebCore::runLoaderThread(void*) + 268
7 JavaScriptCore 0x24eaf881 WTF::threadEntryPoint(void*) + 148
8 JavaScriptCore 0x24eaf7df WTF::wtfThreadEntryPoint(void*) + 14
9 libsystem_pthread.dylib 0x21b1b85b _pthread_body + 138
10 libsystem_pthread.dylib 0x21b1b7cf _pthread_start + 110
11 libsystem_pthread.dylib 0x21b19724 thread_start + 8

#14. Crashed: com.apple.extension.global-state-queue
0 JavaScriptCore 0x2523ea22 WTFCrash + 53
1 JavaScriptCore 0x2523e9cd WTFPrintBacktrace + 128
2 WebCore 0x254c510b _WebTryThreadLock(bool) + 194
3 WebCore 0x254c56c1 WebThreadLock + 72
4 UIKit 0x2679d4db -[UIWebDocumentView becomeFirstResponder] + 130
5 UIKit 0x26520187 -[UITextInteractionAssistant(UITextInteractionAssistant_Internal) setFirstResponderIfNecessary] + 242
6 UIKit 0x268ce8a7 -[UITextInteractionAssistant(UITextInteractionAssistant_Internal) checkEditabilityAndSetFirstResponderIfNecessary] + 390
7 UIKit 0x2679f341 -[UIWebDocumentView _restoreFirstResponder] + 44
8 UIKit 0x2644c643 -[UIPeripheralHost(UIKitInternal) _restoreInputViewsWithId:animated:] + 410
9 UIKit 0x266d6015 -[UIViewController _restoreInputViewsForPresentation] + 284
10 UIKit 0x266b1ad9 -[UIPresentationController runTransitionForCurrentState] + 1928
11 UIKit 0x266b01d9 -[UIPresentationController _dismissWithAnimationController:interactionController:target:didEndSelector:] + 652
12 UIKit 0x266d5e23 __99-[UIViewController _dismissViewControllerWithAnimationController:interactionController:completion:]_block_invoke + 82
13 UIKit 0x26371541 +[UIView(Animation) performWithoutAnimation:] + 72
14 UIKit 0x266d5c47 -[UIViewController _dismissViewControllerWithAnimationController:interactionController:completion:] + 646
15 UIKit 0x2651beed __73-[UIViewController _dismissViewControllerWithTransition:from:completion:]_block_invoke + 36
16 UIKit 0x26371541 +[UIView(Animation) performWithoutAnimation:] + 72
17 UIKit 0x26496067 -[UIViewController _dismissViewControllerWithTransition:from:completion:] + 990
18 UIKit 0x2643a6bf -[UIViewController dismissViewControllerWithTransition:completion:] + 1078
19 UIKit 0x266d4f91 -[UIViewController _performCoordinatedPresentOrDismiss:animated:] + 416
20 UIKit 0x2643a265 -[UIViewController dismissViewControllerAnimated:completion:] + 124
21 Social 0x2b4a4ce5 -[SLComposeViewController completeWithResult:] + 492
22 Social 0x2b4a4fdf -[SLComposeViewController _handleRemoteViewFailure] + 98
23 Social 0x2b4a504b -[SLComposeViewController remoteController:didLoadWithError:] + 90
24 Social 0x2b4a55e7 __42-[SLComposeViewController viewWillAppear:]_block_invoke + 106
25 UIKit 0x269e4aa9 __117-[NSExtension(UIViewControllerAdditions) instantiateViewControllerWithInputItems:listenerEndpoint:connectionHandler:]_block_invoke + 148
26 libdispatch.dylib 0x21955823 _dispatch_call_block_and_release + 10
27 libdispatch.dylib 0x21962423 _dispatch_queue_drain$VARIANT$mp + 1758
28 libdispatch.dylib 0x21961a61 _dispatch_queue_invoke$VARIANT$mp + 284
29 libdispatch.dylib 0x219645e9 _dispatch_root_queue_drain + 1560
30 libdispatch.dylib 0x21963fcd _dispatch_worker_thread3 + 96
31 libsystem_pthread.dylib 0x21b19b29 _pthread_wqthread + 1024
32 libsystem_pthread.dylib 0x21b19718 start_wqthread + 8

=====================

Crashlytics - plaintext stacktrace downloaded by Dan Pronovost at Tue, 21 Nov 2017 14:36:03 GMT

URL: https://fabric.io/driftscape/ios/apps/com.driftscape.driftscape/issues/5a14352861b02d480dedd278?time=last-thirty-days/sessions/28416a00235c4552a1cbccf74486cf88_853a5b73cec611e7829756847afe9799_0_v2

Organization: Driftscape

Platform: ios

Application: Driftscape

Version: 1.02 (65)

Bundle Identifier: com.driftscape.driftscape

Issue #: 15

Issue ID: 5a14352861b02d480dedd278

Session ID: 28416a00235c4552a1cbccf74486cf88_853a5b73cec611e7829756847afe9799_0_v2

Date: 2017-11-21T14:16:00Z

OS Version: 10.3.3 (14G60)

Device: iPhone 6

RAM Free: 3.1%

Disk Free: 2%

#0. Crashed: com.twitter.crashlytics.ios.exception
0 Drift 0x100088f54 CLSProcessRecordAllThreads (CLSProcess.c:376)
1 Drift 0x100088f54 CLSProcessRecordAllThreads (CLSProcess.c:376)
2 Drift 0x100088e04 CLSProcessRecordAllThreads (CLSProcess.c:407)
3 Drift 0x100078d28 CLSHandler (CLSHandler.m:26)
4 Drift 0x100086f2c __CLSExceptionRecord_block_invoke (CLSException.mm:199)
5 libdispatch.dylib 0x18ca829a0 _dispatch_client_callout + 16
6 libdispatch.dylib 0x18ca8fee0 _dispatch_barrier_sync_f_invoke + 84
7 Drift 0x1000869c4 CLSExceptionRecord (CLSException.mm:206)
8 Drift 0x1000867fc CLSExceptionRecordNSException (CLSException.mm:102)
9 Drift 0x100086410 CLSTerminateHandler() (CLSException.mm:259)
10 libc++abi.dylib 0x18c61b5d4 std::__terminate(void (*)()) + 16
11 libc++abi.dylib 0x18c61b640 std::terminate() + 60
12 libobjc.A.dylib 0x18c62c77c _destroyAltHandlerList + 10
13 libdispatch.dylib 0x18ca829b4 _dispatch_client_callout + 36
14 libdispatch.dylib 0x18ca875e8 _dispatch_main_queue_callback_4CF + 996
15 CoreFoundation 0x18db790c8 CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE + 12
16 CoreFoundation 0x18db76ce4 __CFRunLoopRun + 1572
17 CoreFoundation 0x18daa6da4 CFRunLoopRunSpecific + 424
18 GraphicsServices 0x18f511074 GSEventRunModal + 100
19 UIKit 0x193d61c9c UIApplicationMain + 208
20 Drift 0x10006cdb0 main (main.m:14)
21 libdyld.dylib 0x18cab559c start + 4

Fatal Exception: NSInvalidArgumentException
0 CoreFoundation 0x18dbcafe0 __exceptionPreprocess
1 libobjc.A.dylib 0x18c62c538 objc_exception_throw
2 UIKit 0x19406debc -[UIViewController _presentViewController:withAnimationController:completion:]
3 UIKit 0x193df6588 -[_UIViewControllerTransitionCoordinator _applyBlocks:releaseBlocks:]
4 UIKit 0x193e2279c -[_UIViewControllerTransitionContext _runAlongsideCompletions]
5 UIKit 0x193e215a0 -[_UIViewControllerTransitionContext completeTransition:]
6 UIKit 0x193d35538 -[UIViewAnimationBlockDelegate _didEndBlockAnimation:finished:context:]
7 UIKit 0x193d35060 -[UIViewAnimationState sendDelegateAnimationDidStop:finished:]
8 UIKit 0x193d34e7c -[UIViewAnimationState animationDidStop:finished:]
9 QuartzCore 0x190ee60d4 CA::Layer::run_animation_callbacks(void*)
10 libdispatch.dylib 0x18ca829a0 _dispatch_client_callout
11 libdispatch.dylib 0x18ca875e8 _dispatch_main_queue_callback_4CF
12 CoreFoundation 0x18db790c8 CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE
13 CoreFoundation 0x18db76ce4 __CFRunLoopRun
14 CoreFoundation 0x18daa6da4 CFRunLoopRunSpecific
15 GraphicsServices 0x18f511074 GSEventRunModal
16 UIKit 0x193d61c9c UIApplicationMain
17 Drift 0x10006cdb0 main (main.m:14)
18 libdyld.dylib 0x18cab559c start

#0. Crashed: com.twitter.crashlytics.ios.exception
0 Drift 0x100088f54 CLSProcessRecordAllThreads (CLSProcess.c:376)
1 Drift 0x100088f54 CLSProcessRecordAllThreads (CLSProcess.c:376)
2 Drift 0x100088e04 CLSProcessRecordAllThreads (CLSProcess.c:407)
3 Drift 0x100078d28 CLSHandler (CLSHandler.m:26)
4 Drift 0x100086f2c __CLSExceptionRecord_block_invoke (CLSException.mm:199)
5 libdispatch.dylib 0x18ca829a0 _dispatch_client_callout + 16
6 libdispatch.dylib 0x18ca8fee0 _dispatch_barrier_sync_f_invoke + 84
7 Drift 0x1000869c4 CLSExceptionRecord (CLSException.mm:206)
8 Drift 0x1000867fc CLSExceptionRecordNSException (CLSException.mm:102)
9 Drift 0x100086410 CLSTerminateHandler() (CLSException.mm:259)
10 libc++abi.dylib 0x18c61b5d4 std::__terminate(void (*)()) + 16
11 libc++abi.dylib 0x18c61b640 std::terminate() + 60
12 libobjc.A.dylib 0x18c62c77c _destroyAltHandlerList + 10
13 libdispatch.dylib 0x18ca829b4 _dispatch_client_callout + 36
14 libdispatch.dylib 0x18ca875e8 _dispatch_main_queue_callback_4CF + 996
15 CoreFoundation 0x18db790c8 CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE + 12
16 CoreFoundation 0x18db76ce4 __CFRunLoopRun + 1572
17 CoreFoundation 0x18daa6da4 CFRunLoopRunSpecific + 424
18 GraphicsServices 0x18f511074 GSEventRunModal + 100
19 UIKit 0x193d61c9c UIApplicationMain + 208
20 Drift 0x10006cdb0 main (main.m:14)
21 libdyld.dylib 0x18cab559c start + 4
… ( remainder truncated to fit in post)