OneSignal/OneSignal-iOS-SDK

[Bug]: Main thread is getting blocked during initialisation

sapharow opened this issue · 5 comments

What happened?

The app's main thread hanged for more than 3 seconds due to usage of synchronous deprecated API applicationIconBadgeNumber.

Steps to reproduce?

Can not be reliably reproduced locally due to nature of the issue. 
The info is gathered using BugSnag error reporter from one of our users.

What did you expect to happen?

The app's main thread is not blocked during OneSignal initialisation.

OneSignal iOS SDK version

Release 5.2.1

iOS version

17

Specific iOS version

17.0.2

Relevant log output

Thread 0 - com.apple.usernotifications.UNUserNotificationServiceConnection - (TH_STATE_WAITING)
0  libsystem_kernel.dylib +0x11d4 _mach_msg2_trap
1  libsystem_kernel.dylib +0xf6c  _mach_msg2_internal
2  libsystem_kernel.dylib +0xe84  _mach_msg_overwrite
3  libsystem_kernel.dylib +0xcc4  _mach_msg
4  libdispatch.dylib +0x1eefc     __dispatch_mach_send_and_wait_for_reply
5  libdispatch.dylib +0x1f29c     _dispatch_mach_send_with_result_and_wait_for_reply
6  libxpc.dylib +0x106cc          _xpc_connection_send_message_with_reply_sync
7  Foundation +0x396bc            ___NSXPCCONNECTION_IS_WAITING_FOR_A_SYNCHRONOUS_REPLY__
8  Foundation +0x213b8            -[NSXPCConnection _sendInvocation:orArguments:count:methodSignature:selector:withProxy:]
9  Foundation +0x3b4bc            -[NSXPCConnection _sendSelector:withProxy:arg1:arg2:]
10 Foundation +0x3b3e8            __NSXPCDistantObjectSimpleMessageSend2
11 UserNotifications +0x46fc      ___70-[UNUserNotificationServiceConnection badgeNumberForBundleIdentifier:]_block_invoke
12 libdispatch.dylib +0x42fc      __dispatch_client_callout
13 libdispatch.dylib +0x136b0     __dispatch_lane_barrier_sync_invoke_and_complete
14 UserNotifications +0x5090      -[UNUserNotificationServiceConnection badgeNumberForBundleIdentifier:]
15 UserNotifications +0x4f40      -[UNUserNotificationCenter badgeNumber]
16 UIKitCore +0x390530            -[UIApplication applicationIconBadgeNumber]
17 OneSignalNotifications +0x7580 +[OSNotificationsManager clearBadgeCount:fromClearAll:]
18 OneSignalFramework +0x9188     +[OneSignal init]
<redacted>

Code of Conduct

  • I agree to follow this project's Code of Conduct

I'm seeing the same thing ... launch time is really slow after adding the OneSignal SDK for iOS.

+1 This crash happened during an app review and caused us to get rejected. Any workarounds??