App Crash happens

Hi,
I have one issue that I faced only one time. I got the crash issue in my app. The crash happens this line ,

MobileRTC.shared()?.setMobileRTCDomain(“zoom.us”)

If I hide this line then i got 150 error response while start a meeting. Could you explain why we are using this line ? and what is the purpose ?

Also, In this https://github.com/zoom/zoom-sdk-ios, under FAQ you mentioned one crash issue like 5th point --> App Crashed and log shows the crash point at TermSBPTUIModule(Cmm::ICmmMessageQueueClient*)

  • This error appears becuase the instance of the MobileRTCMeetingServiceDelegate was not set to nil after you finish using our Zoom services. We defined the delegate as assign property, which needs to be set to nil manually.
@property (nullable, assign, nonatomic) id<MobileRTCMeetingServiceDelegate> delegate;
  Could you explain, where I need to set this delegate to NIL.  ??

Also I got this issue in my console while I trigger a meeting OR as well as I end the meeting. Please check AudioSessionPortImpl.mm:56:ValidateRequiredFields: Unknown selected data source for Port Speaker (type: Speaker)

thanks!

Hi saroroo123,
Thanks for the post. Regarding your question:

  1. The method setMobileRTCDomain is for setting up the domain who our SDK should talk to and this method is required. In 99.99% of the cases, you should pass “zoom.us” as the parameter. We do have a few users that are using special servers for Zoom service. This method is for this scenario.
  2. The error 150 means “Invalid Argument”(https://marketplace.zoom.us/docs/sdk/native-sdks/iOS/resource/error-codes#14-meeting-error-codes), if you hide this line, then our SDK will not know who should we talk to, the argument (the domain) is invalid.
  3. In the place where you finish using our Zoom service, for example, in our demo, in the MainViewController.m, inside the dealloc method, do the following:
- (void)dealloc
{
  [[MobileRTC sharedRTC] getMeetingService].delegate = nil;
}

Normally, this should fix the issue. However, recently we have been reported that even with this fix, the error still appears. Could you provide more details on this error? Can you fill out the following info?

Description
A clear and concise description of what the question is.

Which version?
Knowing the version can help us to identify your issue faster.

To Reproduce(If applicable)
Steps to reproduce the behavior:

  1. Go to ‘…’
  2. Click on ‘…’
  3. Scroll down to ‘…’
  4. See error

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

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Especially the steps to reproduce this issue and any detailed log that you could provide would be really helpful for us.

Looking forward to hearing from you. Thanks!

1 Like

Hi Carson,
Happy Monday :slight_smile:. I hope you have a great weekend. Thanks for the info regarding my clarifications. Here is the details of my specifications,

Mac:
OS - macOS Mojave
Version - 10.14.4

Xcode
Version - 10.2.1

Language
Version - Swift 5

Now my clarifications regarding above post’s are,

  1. Why I need to set NIL for the meeting service delegate with in the dealloc. Because I am using latest version of XCode and swift 5. it’s not supported the dealloc method. Because the ARC (Automatic Reference Count) will automatically handle the memory related things. Please explain little bit more about this ?

  2. Regarding this issue AudioSessionPortImpl.mm:56:ValidateRequiredFields: Unknown selected data source for Port Speaker (type: Speaker) . here is the steps
    Steps to Reproduce:
    - I got the Meeting ID
    - I am going to start the meeting (without login) using tokens.
    - Now, Meeting started but in my Xcode console, I have seeing this issues repeatedly,

AudioSessionPortImpl.mm:56:ValidateRequiredFields: Unknown selected data source for Port Speaker (type: Speaker)
- I have end the meeting.

Please check it. Thanks!

Hi saroroo123,
Thanks for the details! Hope you have a good one as well. Regarding your question:

  1. Why I need to set NIL for the meeting service delegate with in the dealloc. Because I am using latest version of XCode and swift 5. it’s not supported the dealloc method. Because the ARC (Automatic Reference Count) will automatically handle the memory related things. Please explain little bit more about this ?

The reason why you need to set NIL for the meeting service delegate is because our meeting service delegate has the assign property:

@property (nullable, assign, nonatomic) id<MobileRTCMeetingServiceDelegate> delegate;

You will need to manually set to NIL to avoid having the kind of error that you are facing. In Swift, you can implement the “set Nil” call in deinit (https://stackoverflow.com/questions/25497928/dealloc-in-swift)

deinit {
   [[MobileRTC sharedRTC] getMeetingService].delegate = nil;
}

Hope this helps. Thanks again for providing the info regarding the issue. We are investigating the issue, I will get back to you as soon as we have any updates regarding this issue.

Thanks!

Hi Carson,
Thanks for the info. I will set the deinit method for setting up the meeting service to nil.

Regarding Audio session issue. Looking forward to hearing from you :slight_smile:

Thanks!

Hi,

Please accept our apologies for the delayed response.

We have received your request and will update you shortly.

Thanks,

Hi,
Ok. Please check this issue AudioSessionPortImpl.mm:56:ValidateRequiredFields: Unknown selected data source for Port Speaker (type: Speaker) issue. Thanks!

Hi saroroo123,
Hope everything goes well. After analyzing the error message that you got, it seems like the AudioSessionPortImpl.mm is not from our SDK. Are you getting this error from our demo app without importing any other libraries?

Looking forward to hearing from you. Thanks!

Hi Carson,
Thanks for the reply. I have fixed this console waring issue importing the AVKit framework in my XCode.

Now, I am facing one serious crash issue in my AppDelegate class while set the domain auth. I have checked the zoom forum. If anyone already had this issue. I got this link iOS device auth crash on v4.3.1.47201.0322. I am also getting the same issue and same place. Here is the screen shot of crash

. This crash happens not all the time. If I run the app more than 5 times then it will happen. Crash happened simulator, iPhone, iPad devices. But most cases I got this crash in simulator and few time got this crash in devices. All the devices IOS 12 supported. I am using zoom version is MobileRTC Version: Optional(“4.3.47201.0322”)

I have already shared my system configurations. what can I do now ? (NOTE: I have already set the delegate to nil). Please check this as soon as possible. We have app launch date is this month end. So I need to fix this before that. Hope you understand.
Thanks!

Hi,

Thanks for the info and pardon the inconvenience caused by this issue. Yes, this is a known issue. We have found this issue right after the 0322 release and we have fixed it. This fix will be in the next release. Pardon the inconvenience again. Let me know if you have any other questions. :slight_smile:

Thanks!

Hi Carson,
Great to hear the issue was fixed. So when I expect that crash fixed release ?

Thanks!

Hi saroroo123,

I have consulted our engineer and we have analyzed your issue again, it might be a little different from the fix that I was thinking(There is a fix that is related to setting the domain). Can you try to add the following method before you call the setMobileRTCDomain method and see if it helps:

 [MobileRTC initializeWithDomain:kSDKDomain enableLog:YES];
 [[MobileRTC sharedRTC] setMobileRTCDomain:kSDKDomain];

If it still crashes, can you provide the .crash file to us so we can further look into it? Thanks!

Hi Carson,
Ok. I will check this and let you know :slight_smile:
Thanks!

Hi Carson,
Sad news. Again I getting crash but this time I got crash this newly added line.

I did not get the .crash file. Now what can I do ?

Thanks!

Hi saroroo123,
Thanks for the info. Pardon the experience. Can you provide any kind of log files, or console prints?

I will work with the engineers and ensure your problem will be fixed in the end. Thanks for all the help! :slight_smile:

Thanks!

Hi saroroo123,

Regarding the .crash file, if you got the crash on your device, you will be able to find the .crash log with the following steps:

  1. Connect your device with your computer, open Xcode > Window > Devices and Simulators
    56%20PM
  2. Press “View Device Logs”
    03%20PM
  3. The pop-up windows will load and show all the crash logs you have on your device. Locate your app that has our SDK integrated, find the crash log that matches the exact time that you were facing the crash.
  4. Right-click, and press “Export Logs”
    26%20PM

In the meantime, can you use our iOS SDK demo app to reproduce this issue and send the demo to us?

Would appreciate your help. Thank you very much!

Hi Carson,
Thanks for info. I will check and get back to you :slight_smile:
Thanks!

Hi saroroo123,

Hope everything is going well. We would like to provide a build to resolve the crash issue that you are facing. I will send you a forum message in the bit.

Thank you!

Hi Carson,
Happy Friday. Hope all good. I have one new update. In my app, user can make audio calls using zoom. In zoom call window, my client asks to show the profile picture in the audio call window. Check below image


Is there any way to change that icon ?

thanks!

Hi,
Thanks for the reply. You can customize this if you are using Custom UI. But for Zoom UI, like this one you are using, I don’t think we have an interface to change the avatar here. I will consult the engineer to see if it is possible to support this. I will get back to you asap.

Let me know if you have any other questions. Thanks!