Zoom SDK Integration iOS integration crash after calling meeting join function. Crash unrecognized selector sent to instance 0x2820ba8a0' terminating with uncaught exception of type NSException

Description
My app is in swift 5.0 in for native iOS. I have integrated the SDK as per the documentation https://marketplace.zoom.us/docs/sdk/native-sdks/iOS/getting-started/install-sdk#install-the-zoom-sdk

But after joining the meeting the default zoom meeting controller not displaying in iOS, Do I need make the UI from scratch in IOS for joining the meeting or zoom SDK is providing default controller to displaying join meeting information.

Which version?
5.0.1 (24433.0616).

Screenshots
If applicable, add screenshots to help explain your problem.

Smartphone (please complete the following information):

  • Device: iPhone6
  • OS: 14.01

Additional context
in android, the team implemented the same way below UI(Screenshots) displaying using zoom we need display same kind if UI but in iOS, we are facing issue in integration.

Below code, we did in iOS, We are expecting the After joining API call the ZOOM SDK will present default controller same like an android.

Code in APPDelegate Class in iOS.
let mainSDK = MobileRTCSDKInitContext()
mainSDK.domain = “zoom.us”
MobileRTC.shared().initialize(mainSDK)

let authService = MobileRTC.shared().getAuthService()
print(MobileRTC.shared().mobileRTCVersion)
authService?.delegate        = self
authService?.clientKey       = "<key>"
authService?.clientSecret    = "<secret>"
authService?.sdkAuth()

Code in ViewController Class in iOS.
let getservice = MobileRTC.shared().getMeetingService()
if let service = getservice {
service.delegate = self
let joinParam = MobileRTCMeetingJoinParam()
joinParam.meetingNumber = “comingfromserver”
joinParam.password = “passwordValue”
joinParam.webinarToken = “token”
joinParam.userName = “name”
let response = service.joinMeeting(with: joinParam)
print(“onJoinMeeting, response: (response)”)
}

I am getting crash and the ZoomMetting view not display

Hey @atulgawali786

Thanks for using the dev forum!

Sorry that is happening, crashes are no fun.

The SDK will automatically handle the UI for you, similar to Android. If it is not showing there are a couple things to check.

Is there a file in your project called “SceneDelegate”? The Zoom iOS SDK does not support scene delegates. To disable SceneDelegates remove that file, delete “Application Scene Manifest” from your info.plist, remove the UISceneSession functions from your appDelegate, then add a property to your appDelegate “var window:UIWindow?”.

Second, the SDK needs a UINavigationController to be able present the UI for you. You can set the navigationController with
MobileRTC.shared().setMobileRTCRootController(self.navigationController).

We have a repo that might help with further troubleshooting and integration:

Let us know if you have any other issues
Michael

1 Like

Thanks, Michael
It solves my problem, This reply really help full to me.
Just one more question

  • I join the meeting using below code
    let joinParam = MobileRTCMeetingJoinParam()
    joinParam.meetingNumber = mettingId
    joinParam.password = password
    joinParam.userName = fullName
    let response = service.joinMeeting(with: joinParam)

but somehow the join meeting failed, then I want to join another meeting then how can we clear all old session and on freshly join another meeting, Is there any leave API of ZOOM so it clear all existing running session.

I found this one but it is only for the host
/*!
@brief End/Leave the current meeting.
@param cmd The command for leaving the current meeting. The only host can end the meeting.
*/

  • ( void )leaveMeetingWithCmd:(LeaveMeetingCmd)cmd;

Hey @atulgawali786

Sorry for the delay! Im glad that helped you!

When the join meeting fails, are you getting an error? What exactly happens when the join fails?

As for clearing the sessions, you can end a meeting using the function you mentioned above, but I do not believe there is a way to clear all of your meetings at once. However, the meetings will automatically end if it is unresponsive for a while. It will also end if there are no users in the meeting anymore, or if only one user is in a meeting for an extended amount of time.

Thanks!
Michael

The meeting join is working fine, but it is failing only for one meeting. Giving me the error
onJoinMeeting, response: MobileRTCMeetError(rawValue: 152)

and after that i am not able to any other meeting. Above error is displaying for all other meeting those are work fine previously. To fixed this i need to kill the app.

Hey @atulgawali786,

The error code 152 means that this user is currently in another meeting. Sometimes, there is a delay between the user leaving their current meeting and the the backend reflecting that change.

Thanks!
Michael