Bug - iOS 13 support

Description
When i try to join online meeting on iOS 13, and Zoom Framework pretends to open popup it app crashes due to, UIAlertView is deprecated and unavailable for UIScene based applications, please use UIAlertController!’

Here is the message:
Terminating app due to uncaught exception ‘NSObjectNotAvailableException’, reason: 'UIAlertView is deprecated and unavailable for UIScene based applications, please use UIAlertController!'

Which version?
4.6.15805.0403

To Reproduce(If applicable)
Steps to reproduce the behavior:
try to join webinar while no network connection.

Smartphone (please complete the following information):

  • iPhone8
  • OS: 13

Hi 3moeslam,

Thanks for using Zoom SDK and for the post. Are you using UIScene? Did you successfully initialized the SDK? And are you using the network to pass the SDK authentication and then disconnect from the network when trying to join a meeting/webinar? Because normally if you do not have network, you will receive an error in SDK authentication.

Thanks!

Everything working fine, until SDK need to show popup, you use UIAlertView which deprecated from iOS9, so the fix of this issue is to use UIAlertController instead of UIAlertView

Hello @3moeslam @carson.zoom,

Facing same issue. Is there any work around?

Hi,

Would you mind providing a .crash file so that we could further investigate this issue?

Thanks

Hi @carson.zoom this is crash log in xcode

*** Terminating app due to uncaught exception ‘NSObjectNotAvailableException’, reason: ‘UIAlertView is deprecated and unavailable for UIScene based applications, please use UIAlertController!’
*** First throw call stack:
(
0 CoreFoundation 0x00007fff23e39f0e __exceptionPreprocess + 350
1 libobjc.A.dylib 0x00007fff50ad79b2 objc_exception_throw + 48
2 CoreFoundation 0x00007fff23e39d4c +[NSException raise:format:] + 188
3 UIKitCore 0x00007fff480fa9f0 -[UIAlertView initWithFrame:] + 299
4 UIKitCore 0x00007fff480fb056 -[UIAlertView initWithTitle:message:delegate:cancelButtonTitle:otherButtonTitles:] + 218
5 MobileRTC 0x000000010b844832 _Z16TermSBPTUIModulePN3Cmm22ICmmMessageQueueClientE + 619101
6 MobileRTC 0x000000010b8c8546 _Z16TermSBPTUIModulePN3Cmm22ICmmMessageQueueClientE + 1159025
7 CoreFoundation 0x00007fff23d64f4c CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER + 12
8 CoreFoundation 0x00007fff23d643c5 _CFXRegistrationPost1 + 421
9 CoreFoundation 0x00007fff23d64131 ___CFXNotificationPost_block_invoke + 193
10 CoreFoundation 0x00007fff23e61513 -[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1795
11 CoreFoundation 0x00007fff23d63a86 _CFXNotificationPost + 950
12 MobileRTC 0x000000010b6e31ed _Z10ios_getpidv + 309447
13 MobileRTC 0x000000010c57fb40 _Z16TermSBPTUIModulePN3Cmm22ICmmMessageQueueClientE + 14493035
14 MobileRTC 0x000000010c540ec3 _Z16TermSBPTUIModulePN3Cmm22ICmmMessageQueueClientE + 14235886
15 MobileRTC 0x000000010c538eaf _Z16TermSBPTUIModulePN3Cmm22ICmmMessageQueueClientE + 14203098
16 MobileRTC 0x000000010c0961e6 _Z16TermSBPTUIModulePN3Cmm22ICmmMessageQueueClientE + 9341969
17 MobileRTC 0x000000010c08c77e _Z16TermSBPTUIModulePN3Cmm22ICmmMessageQueueClientE + 9302441
18 MobileRTC 0x000000010c085844 _Z16TermSBPTUIModulePN3Cmm22ICmmMessageQueueClientE + 9273967
19 MobileRTC 0x000000010c028430 _Z16TermSBPTUIModulePN3Cmm22ICmmMessageQueueClientE + 8891995
20 MobileRTC 0x000000010c089636 _Z16TermSBPTUIModulePN3Cmm22ICmmMessageQueueClientE + 9289825
21 CoreFoundation 0x00007fff23d9e634 CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION + 20
22 CoreFoundation 0x00007fff23d9e2ce __CFRunLoopDoTimer + 1038
23 CoreFoundation 0x00007fff23d9d92a __CFRunLoopDoTimers + 282
24 CoreFoundation 0x00007fff23d9857e __CFRunLoopRun + 1950
25 CoreFoundation 0x00007fff23d97ac4 CFRunLoopRunSpecific + 404
26 GraphicsServices 0x00007fff38b2fc1a GSEventRunModal + 139
27 UIKitCore 0x00007fff48bc7f80 UIApplicationMain + 1605
28 Zoom Remote iOS 0x000000010b31ad2b main + 75
29 libdyld.dylib 0x00007fff519521fd start + 1
30 ??? 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException

When can we expect a bug fix?

Hi iOS-Dev-Work,

Thanks for the info. What is the SDK version that you are getting this crash? Is it 4.6.15805.0403 as well?

Thanks!

Hi tmiskiew,

Even though Apple has deprecated the UIAlertView, but it won’t directly cause crashes, so there might be some other issues that are causing this. We are still investigating this issue, once we are able to identify the root cause, we will fix it as soon as possible.

If you are facing this crashing issue, could you provide the .crash file and the SDK version so that we could further investigate?

Thanks!

Hi @carson.zoom, We removed UIScene from project and it didn’t crash then.

Glad to hear that it is working now. Happy Zooming!

Removing UIScene is not really a solution. Our iOS app targets iOS 13 and up and we would like to take advantage of UIScene. The Zoom SDK requires iOS 8 which is also when they deprecated UIAlertView introduced UIAlertController. I would expect the Zoom SDK to have made the update by now.

This is simply false as of iOS 13:

Even though Apple has deprecated the UIAlertView, but it won’t directly cause crashes, so there might be some other issues that are causing this. @carson.zoom

FatalError:

*** Terminating app due to uncaught exception 'NSObjectNotAvailableException', reason: 'UIAlertView is deprecated and unavailable for UIScene based applications, please use UIAlertController!'

Is there a way to override any function that may present an alert and handle it on our own? I noticed implementing onMeetingEndedReason(_ reason: MobileRTCMeetingEndReason) allowed me to handle meetingEnded on my own, but there are still other cases where the SDK decides it wants to present its own alert.

Hi @aaron-koder,

Thanks for using Zoom SDK. We have dependencies on supporting UIScene and other new features and these dependencies are out of the SDK team’s control. We are actively communicating with the teams that are working on the dependencies and hopefully we will be able to provide those support to everyone soon. I have forwarded your feedback to the engineering team and they will investigate the possibility of making more error/status to be able to handled by the developers.

Thanks!