App Crashed with the custom View

I’ve made the custom view to render the participant videos but, when I join the meeting I get this error **Terminating app due to uncaught exception 'NSGenericException', reason: 'This coder requires that replaced objects be returned from initWithCoder:'**

I’m using version v5.4.54802.0124 Xcode 12.4 and iOS 14.4

2021-03-02 12:32:54.992484+0000 watchnow[10062:846944] *** Terminating app due to uncaught exception 'NSGenericException', reason: 'This coder requires that replaced objects be returned from initWithCoder:'

*** First throw call stack:
(0x191d019d8 0x1a6087b54 0x191c044d0 0x19a8daf2c 0x19a867854 0x1941b1570 0x19a8daedc 0x19a8db0f4 0x19a867854 0x1941ac4fc 0x1941aeed4 0x193eaad88 0x193eab114 0x193eab7e8 0x193ddf738 0x193df3bb0 0x193df4fe0 0x193dd7e78 0x194a76398 0x194f7bdf4 0x194f82398 0x194f8d6e8 0x194ed8d7c 0x194f02f40 0x194f041f0 0x191c8087c 0x191c7af50 0x191c7b498 0x191c7aba0 0x1a89e3598 0x19456c2f4 0x194571874 0x1a53fbb54 0x1000a2274 0x1000a21ec 0x1000a266c 0x191959568)
libc++abi.dylib: terminating with uncaught exception of type NSException
*** Terminating app due to uncaught exception ‘NSGenericException’, reason: ‘This coder requires that replaced objects be returned from initWithCoder:’
terminating with uncaught exception of type NSException

Hi @shivam27saini, thanks for using our SDK.

Sorry to hear you’re running into a crash with the SDK. Can you please provide the SDK logs from your app so that we may investigate further? The log file should be encrypted.

Thanks!

Hey @shivam27saini,

In addition to the logs, can you also provide your ViewController code?

Thanks!
Michael

//
//  CustomMeetingViewController.swift
//  watchnow
//
//  Created by Shivam Saini on 21/12/20.
//

import UIKit
import MobileRTC

class CustomMeetingViewController: UIViewController, MobileRTCVideoServiceDelegate, MobileRTCMeetingServiceDelegate {
    
    
    @IBOutlet weak var tableView: UITableView!
    @IBOutlet weak var leaveButton: UIButton!
    @IBOutlet weak var txtSwitchMeeting: UILabel!
    @IBOutlet weak var participantView: MobileRTCVideoView!
    
    var meetings:[JSON] = []
    
    @IBOutlet weak var tableViewLeadingConstraint: NSLayoutConstraint!
    
    var meetingService: MobileRTCMeetingService?
    var meetingID: String!
    var password: String!

    override func viewDidLoad() {
        super.viewDidLoad()
        
        // Do any additional setup after loading the view.
        
        let activeVideo = MobileRTCVideoView(frame: CGRect.zero)
        
        
        tableView.delegate = self
        tableView.dataSource = self
        
        self.txtSwitchMeeting.text = "Welcome To WatchNow"
        self.txtSwitchMeeting.isHidden = false
        
        participantView.addGestureRecognizer(UITapGestureRecognizer(target: self,
                                                                    action: #selector(self.viewDidPressed)))
        
        self.meetingService = MobileRTC.shared().getMeetingService()
        
        self.joinMeeting(meetingNumber: meetingID,
                         meetingPassword: password)
        
        self.lockOrientation(.landscapeRight)
        UIDevice.current.setValue(UIInterfaceOrientation.landscapeRight.rawValue, forKey: "orientation")
    }
    
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        self.navigationController?.navigationBar.isHidden = true
        
    }
    
    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        self.navigationController?.navigationBar.isHidden = true
        self.meetingService?.leaveMeeting(with: LeaveMeetingCmd.leave)
        self.lockOrientation(.portrait)
    }
    
    @IBAction func leaveMeetingDidPressed(_ sender: Any) {
        self.navigationController?.popViewController(animated: true)
    }
    
    @objc func viewDidPressed() {
        var buttonAlpha = 1;
        if self.tableViewLeadingConstraint.constant == 0 {
            self.tableViewLeadingConstraint.constant = -80
            buttonAlpha = 0
        }else {
            self.tableViewLeadingConstraint.constant = 0
            buttonAlpha = 1
        }
        UIView.animate(withDuration: 0.5) {
            self.view.layoutIfNeeded()
            self.leaveButton.alpha = CGFloat(buttonAlpha)
        }
        
        DispatchQueue.main.asyncAfter(deadline: .now() + 10) {
            if self.tableViewLeadingConstraint.constant == 0 {
                self.tableViewLeadingConstraint.constant = -80
            }
            UIView.animate(withDuration: 0.5) {
                self.view.layoutIfNeeded()
                if self.leaveButton.alpha != 0 {
                    self.leaveButton.alpha = 0
                }
            }
        }
    }
    
    func lockOrientation(_ orientation: UIInterfaceOrientationMask) {
        
        if let delegate = UIApplication.shared.delegate as? AppDelegate {
            delegate.orientationLock = orientation
        }
    }
    
    func onMeetingError(_ error: MobileRTCMeetError, message: String?) {
        switch error {
        case .passwordError:
            print("Could not join or start meeting because the meeting password was incorrect.")
            
        default:
            print("Could not join or start meeting with MobileRTCMeetError: \(error) \(message ?? "")")
        }
    }
    
    func onJoinMeetingConfirmed() {
        print("Joined")
        self.txtSwitchMeeting.isHidden = true
        self.txtSwitchMeeting.text = "Switching Meeting"
        
    }
    
    func onMeetingStateChange(_ state: MobileRTCMeetingState) {
        print(state.rawValue)
    }
    
    func onSinkMeetingActiveVideo(_ userID: UInt) {
        DispatchQueue.main.async {
            self.participantView.showAttendeeVideo(withUserID: userID)
        }
    }
    
    func onSinkMeetingVideoStatusChange(_ userID: UInt) {
        DispatchQueue.main.async {
            self.participantView.showAttendeeVideo(withUserID: userID)
        }
    }
    
    func onMyVideoStateChange() {
        print("onMyVideoStateChange")
    }
    
    func onSinkMeetingVideoStatusChange(_ userID: UInt, videoStatus: MobileRTC_VideoStatus) {
        
    }
    
    func onSpotlightVideoChange(_ on: Bool) {
        print("onSpotlightVideoChange")
    }
    
    func onSinkMeetingPreviewStopped() {
     print("onSinkMeetingPreviewStopped")
    }
    
    func onSinkMeetingActiveVideo(forDeck userID: UInt) {
        print("onSinkMeetingActiveVideo")
    }
    
    func onSinkMeetingVideoQualityChanged(_ qality: MobileRTCNetworkQuality, userID: UInt) {
        print("onSinkMeetingVideoQualityChanged")
    }
    
    func onSinkMeetingVideoRequestUnmute(byHost completion: @escaping (Bool) -> Void) {
        print("onSinkMeetingVideoRequestUnmute")
    }
    
    func onSinkMeetingShowMinimizeMeetingOrBackZoomUI(_ state: MobileRTCMinimizeMeetingState) {
        print("onSinkMeetingShowMinimizeMeetingOrBackZoomUI")
    }
    
    
    func showZoomAttendeeVideo(videoView: MobileRTCVideoView, withUserId userID: UInt) {
        
        
    }
    
}

extension CustomMeetingViewController: UITableViewDelegate, UITableViewDataSource {
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return meetings.count
    }
    
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 80
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "meetingCell")!
        if let view = cell.viewWithTag(1) {
            view.backgroundColor = UIColor.red.withAlphaComponent(0.8)
        }
        if let label = cell.viewWithTag(2) as? UILabel {
            label.text = String(indexPath.row + 1)
        }
        
        return cell
    }
    
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        tableView.deselectRow(at: indexPath, animated: true)
        print(self.meetings[indexPath.row])
        let selectedItem = self.meetings[indexPath.row]
        let meetingId = selectedItem["MeetingID"] as? String ?? ""
        if String((Int(meetingId)! - 26) / 2) == self.meetingID {
            let alert = UIAlertController(title: "Alert",
                                          message: "Meeting already running",
                                          preferredStyle: .alert)
            alert.addAction(UIAlertAction(title: "Ok",
                                          style: .default,
                                          handler: nil))
            self.present(alert, animated: true, completion: nil)
        }else {
            self.meetingService?.leaveMeeting(with: LeaveMeetingCmd.leave)
            self.meetingService?.delegate = nil
            
            EVENT_ID = selectedItem["EventID"] as? Int ?? 0
            self.txtSwitchMeeting.isHidden = false
            DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
                self.joinMeeting(meetingNumber: String((Int(meetingId)! - 26) / 2),
                                 meetingPassword: selectedItem["Password"] as? String ?? "" )
                if self.tableViewLeadingConstraint.constant == 0 {
                    self.tableViewLeadingConstraint.constant = -80
                }
                UIView.animate(withDuration: 0.5) {
                    self.view.layoutIfNeeded()
                    if self.leaveButton.alpha != 0 {
                        self.leaveButton.alpha = 0
                    }
                }
            }
        }
    }
    
    func joinMeeting(meetingNumber: String, meetingPassword: String) {
        if let meetingService = self.meetingService {
            meetingService.delegate = self
            meetingService.connectMyAudio(false)
            
            let meetingsettings = MobileRTC.shared().getMeetingSettings()
            meetingsettings?.disableCallOut(true);
            meetingsettings?.disableShowVideoPreview(whenJoinMeeting: true)
            meetingsettings?.muteVideoWhenJoinMeeting()
            meetingsettings?.enableMicOriginalInput(false)
            meetingsettings?.bottomBarHidden = true
            meetingsettings?.disableDriveMode(true)
            meetingsettings?.disableGalleryView(true)
            meetingsettings?.meetingParticipantHidden = true
            meetingsettings?.enableCustomMeeting = true
            meetingsettings?.setMuteAudioWhenJoinMeeting(true)
            
            let joinMeetingParams = MobileRTCMeetingJoinParam()
            if let data = UserDefaults.standard.object(forKey: "kUserData") as? [String:Any] {
                joinMeetingParams.userName = data["UserName"] as? String ?? "WatchNow-iOS"
            }
            joinMeetingParams.meetingNumber = meetingNumber
            joinMeetingParams.password = meetingPassword
            joinMeetingParams.noAudio = true
            joinMeetingParams.noVideo = true
            meetingService.muteMyAudio(true)
            meetingService.joinMeeting(with: joinMeetingParams)
        }
    }
    
}

Hey @shivam27saini,

Thank you for providing that.
The line:
let activeVideo = MobileRTCVideoView(frame: CGRect.zero)
Is setting the videoView to have no size. This is probably unrelated to your crash, but if it isnt, it may also cause the video to not show. I also noticed this view is never used again outside of viewDidLoad().

The view:

@IBOutlet weak var participantView: MobileRTCVideoView!

Was never told what aspectRatio to follow. You need to call participantView.setAspectRatio() at some point to inform the video view what the aspect will be.

This code

func onSinkMeetingActiveVideo(_ userID: UInt) {
    DispatchQueue.main.async {
        self.participantView.showAttendeeVideo(withUserID: userID)
    }
}

func onSinkMeetingVideoStatusChange(_ userID: UInt) {
    DispatchQueue.main.async {
        self.participantView.showAttendeeVideo(withUserID: userID)
    }
}

Can probably be removed. You do need to call showAttendeeVideo(withUserID: userID) at some point, but not in these callbacks. Calling these here, will cause the participantView to attempt to render a new User video stream every time there is a change in someones video status or if the active speaker changes.

Let me try to assist with your scenario. Are you trying to have 1 main video video that will show a specific user the whole time, or are you trying to have 1 main video view that will show the active user’s video?

Thanks!
Michael

I’ve just checked that the SDK is not initialised

let context = MobileRTCSDKInitContext()
context.domain = “zoom.us
context.enableLog = true
let sdkInitializedSuccessfully = MobileRTC.shared().initialize(context)

sdkInitializedSuccessfully is returned as false every time, any suggestions what could cause this?

2021-03-05 09:22:26.698465+0000 watchnow[29004:2275633] -[UIView showAttendeeVideoWithUserID:]: unrecognized selector sent to instance 0x11570c430

2021-03-05 09:22:26.699857+0000 watchnow[29004:2275633] *** Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘-[UIView showAttendeeVideoWithUserID:]: unrecognized selector sent to instance 0x11570c430’
*** First throw call stack:
(0x191d019d8 0x1a6087b54 0x191c11bbc 0x1945a0d30 0x191d0401c 0x191d05f8c 0x102e9550c 0x102e95604 0x1056f7ce4 0x1056f9528 0x105707994 0x191c815e0 0x191c7ba88 0x191c7aba0 0x1a89e3598 0x19456c2f4 0x194571874 0x1a53fbb54 0x102ea5cd8 0x102ea5c50 0x102ea60d0 0x191959568)
libc++abi.dylib: terminating with uncaught exception of type NSException
*** Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘-[UIView showAttendeeVideoWithUserID:]: unrecognized selector sent to instance 0x11570c430’
terminating with uncaught exception of type NSException

Hey @shivam27saini,

Hmm that is strange. The only time I have seen this happen is when the frameworks have been imported incorrectly. Where are you calling that code?

Thanks!
Michael

It’s on the homeViewController, on viewDidLoad

this is the crash logs
Incident Identifier: D87EB7EC-7799-41A0-AF34-9A813EE189AA
CrashReporter Key: 01cd5f8fb620f5ec48ee0dadff82f7dc6090772b
Hardware Model: iPhone10,1
Process: watchnow [1321]
Path: /private/var/containers/Bundle/Application/932CFDC6-2B8A-48AD-B0FF-8B45649898D0/watchnow.app/watchnow
Identifier: com.rad.techno.solution.watchnow
Version: 1 (1.0)
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd [1]
Coalition: com.rad.techno.solution.watchnow [785]

Date/Time: 2021-03-08 11:32:43.8063 +0000
Launch Time: 2021-03-08 11:32:41.7176 +0000
OS Version: iPhone OS 14.4 (18D52)
Release Type: User
Baseband Version: 6.41.01
Report Version: 104

Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Triggered by Thread: 0

Application Specific Information:
abort() called

Last Exception Backtrace:
0 CoreFoundation 0x1a3a699d8 __exceptionPreprocess + 216
1 libobjc.A.dylib 0x1b7defb54 objc_exception_throw + 55
2 CoreFoundation 0x1a396c4d0 +[NSException raise:format:] + 107
3 UIFoundation 0x1ac642f2c UINibDecoderDecodeObjectForValue + 775
4 UIFoundation 0x1ac5cf854 -[UINibDecoder decodeObjectForKey:] + 307
5 UIKitCore 0x1a5f19570 -[UIRuntimeConnection initWithCoder:] + 171
6 UIFoundation 0x1ac642edc UINibDecoderDecodeObjectForValue + 695
7 UIFoundation 0x1ac6430f4 UINibDecoderDecodeObjectForValue + 1231
8 UIFoundation 0x1ac5cf854 -[UINibDecoder decodeObjectForKey:] + 307
9 UIKitCore 0x1a5f144fc -[NSCoder+ 7791868 (UIIBDependencyInjectionInternal) decodeObjectsWithSourceSegueTemplate:creator:sender:forKey:] + 487
10 UIKitCore 0x1a5f16ed4 -[UINib instantiateWithOwner:options:] + 1063
11 UIKitCore 0x1a5c12d88 -[UIViewController loadView] + 587
12 UIKitCore 0x1a5c13114 -[UIViewController loadViewIfRequired] + 171
13 UIKitCore 0x1a5c137e8 -[UIViewController view] + 27
14 UIKitCore 0x1a5b47738 -[UINavigationController startCustomTransition:] + 1167
15 UIKitCore 0x1a5b5bbb0 -[UINavigationController startDeferredTransitionIfNeeded:] + 699
16 UIKitCore 0x1a5b5cfe0 -[UINavigationController __viewWillLayoutSubviews] + 163
17 UIKitCore 0x1a5b3fe78 -[UILayoutContainerView layoutSubviews] + 223
18 UIKitCore 0x1a67de398 -[UIView+ 17007512 (CALayerDelegate) layoutSublayersOfLayer:] + 2467
19 QuartzCore 0x1a6ce3df4 -[CALayer layoutSublayers] + 287
20 QuartzCore 0x1a6cea398 CA::Layer::layout_if_needed+ 1426328 (CA::Transaction*) + 519
21 QuartzCore 0x1a6cf56e8 CA::Layer::layout_and_display_if_needed+ 1472232 (CA::Transaction*) + 139
22 QuartzCore 0x1a6c40d7c CA::Context::commit_transaction+ 732540 (CA::Transaction*, double, double*) + 415
23 QuartzCore 0x1a6c6af40 CA::Transaction::commit+ 905024 () + 727
24 QuartzCore 0x1a6c6c1f0 CA::Transaction::observer_callback+ 909808 (__CFRunLoopObserver*, unsigned long, void*) + 91
25 CoreFoundation 0x1a39e887c CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION + 31
26 CoreFoundation 0x1a39e2f50 __CFRunLoopDoObservers + 603
27 CoreFoundation 0x1a39e3498 __CFRunLoopRun + 959
28 CoreFoundation 0x1a39e2ba0 CFRunLoopRunSpecific + 571
29 GraphicsServices 0x1ba74b598 GSEventRunModal + 159
30 UIKitCore 0x1a62d42f4 -[UIApplication run] + 1051
31 UIKitCore 0x1a62d9874 UIApplicationMain + 163
32 libswiftUIKit.dylib 0x1b7163b54 UIApplicationMain+ 80724 (
:
:
:
:slight_smile: + 99
33 watchnow 0x1046b9628 0x1046a0000 + 103976
34 watchnow 0x1046b95a0 0x1046a0000 + 103840
35 watchnow 0x1046b966c 0x1046a0000 + 104044
36 libdyld.dylib 0x1a36c1568 start + 3

Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x00000001cf9a884c __pthread_kill + 8
1 libsystem_pthread.dylib 0x00000001ec28c9e8 pthread_kill + 212
2 libsystem_c.dylib 0x00000001ac7648f4 abort + 100
3 libc++abi.dylib 0x00000001b7eebcc8 __cxxabiv1::__aligned_malloc_with_fallback+ 77000 (unsigned long) + 0
4 libc++abi.dylib 0x00000001b7eddca0 demangling_unexpected_handler+ 19616 () + 0
5 libobjc.A.dylib 0x00000001b7defe04 objc_terminate+ 28164 () + 124
6 libc++abi.dylib 0x00000001b7eeb154 std::__terminate(void (*)+ 74068 ()) + 16
7 libc++abi.dylib 0x00000001b7eede68 __cxa_rethrow + 144
8 libobjc.A.dylib 0x00000001b7defd04 objc_exception_rethrow + 40
9 CoreFoundation 0x00000001a39e2c8c CFRunLoopRunSpecific + 808
10 GraphicsServices 0x00000001ba74b598 GSEventRunModal + 160
11 UIKitCore 0x00000001a62d42f4 -[UIApplication run] + 1052
12 UIKitCore 0x00000001a62d9874 UIApplicationMain + 164
13 libswiftUIKit.dylib 0x00000001b7163b54 UIApplicationMain+ 80724 (
:
:::slight_smile: + 100
14 watchnow 0x00000001046b9628 0x1046a0000 + 103976
15 watchnow 0x00000001046b95a0 0x1046a0000 + 103840
16 watchnow 0x00000001046b966c 0x1046a0000 + 104044
17 libdyld.dylib 0x00000001a36c1568 start + 4

Thread 1:
0 libsystem_pthread.dylib 0x00000001ec29086c start_wqthread + 0

Thread 2:
0 libsystem_pthread.dylib 0x00000001ec29086c start_wqthread + 0

Thread 3:
0 libsystem_pthread.dylib 0x00000001ec29086c start_wqthread + 0

Thread 4:
0 libsystem_pthread.dylib 0x00000001ec29086c start_wqthread + 0

Thread 5:
0 libsystem_pthread.dylib 0x00000001ec29086c start_wqthread + 0

Thread 6 name: com.apple.uikit.eventfetch-thread
Thread 6:
0 libsystem_kernel.dylib 0x00000001cf985644 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x00000001cf984a48 mach_msg + 72
2 CoreFoundation 0x00000001a39e90fc __CFRunLoopServiceMachPort + 376
3 CoreFoundation 0x00000001a39e3570 __CFRunLoopRun + 1176
4 CoreFoundation 0x00000001a39e2ba0 CFRunLoopRunSpecific + 572
5 Foundation 0x00000001a4c027f8 -[NSRunLoop+ 30712 (NSRunLoop) runMode:beforeDate:] + 228
6 Foundation 0x00000001a4c026d8 -[NSRunLoop+ 30424 (NSRunLoop) runUntilDate:] + 88
7 UIKitCore 0x00000001a6380054 -[UIEventFetcher threadMain] + 504
8 Foundation 0x00000001a4d5f4bc NSThread__start + 848
9 libsystem_pthread.dylib 0x00000001ec28bc9c _pthread_start + 288
10 libsystem_pthread.dylib 0x00000001ec290880 thread_start + 8

Thread 7:
0 libsystem_kernel.dylib 0x00000001cf9a861c __psynch_cvwait + 8
1 libsystem_pthread.dylib 0x00000001ec288db4 _pthread_cond_wait$VARIANT$armv81 + 1180
2 MobileRTC 0x0000000105757118 0x104bac000 + 12235032
3 MobileRTC 0x0000000105650368 0x104bac000 + 11158376
4 MobileRTC 0x0000000105527ac0 0x104bac000 + 9943744
5 libsystem_pthread.dylib 0x00000001ec28bc9c _pthread_start + 288
6 libsystem_pthread.dylib 0x00000001ec290880 thread_start + 8

Thread 8:
0 libsystem_kernel.dylib 0x00000001cf9a861c __psynch_cvwait + 8
1 libsystem_pthread.dylib 0x00000001ec288db4 _pthread_cond_wait$VARIANT$armv81 + 1180
2 MobileRTC 0x0000000105757118 0x104bac000 + 12235032
3 MobileRTC 0x0000000105654e60 0x104bac000 + 11177568
4 MobileRTC 0x0000000105527ac0 0x104bac000 + 9943744
5 libsystem_pthread.dylib 0x00000001ec28bc9c _pthread_start + 288
6 libsystem_pthread.dylib 0x00000001ec290880 thread_start + 8

Thread 9:
0 libsystem_kernel.dylib 0x00000001cf9aab5c poll + 8
1 MobileRTC 0x00000001057a48fc 0x104bac000 + 12552444
2 MobileRTC 0x00000001057aa008 0x104bac000 + 12574728
3 libsystem_pthread.dylib 0x00000001ec28bc9c _pthread_start + 288
4 libsystem_pthread.dylib 0x00000001ec290880 thread_start + 8

Thread 10:
0 libsystem_kernel.dylib 0x00000001cf9aab5c poll + 8
1 MobileRTC 0x00000001057a48fc 0x104bac000 + 12552444
2 MobileRTC 0x00000001057aa008 0x104bac000 + 12574728
3 libsystem_pthread.dylib 0x00000001ec28bc9c _pthread_start + 288
4 libsystem_pthread.dylib 0x00000001ec290880 thread_start + 8

Thread 11:
0 libsystem_kernel.dylib 0x00000001cf9a8bf0 __semwait_signal + 8
1 libsystem_c.dylib 0x00000001ac7616d4 nanosleep + 212
2 libsystem_c.dylib 0x00000001ac7615ac usleep + 64
3 MobileRTC 0x0000000105078450 0x104bac000 + 5030992
4 MobileRTC 0x0000000105003b44 0x104bac000 + 4553540
5 libsystem_pthread.dylib 0x00000001ec28bc9c _pthread_start + 288
6 libsystem_pthread.dylib 0x00000001ec290880 thread_start + 8

Thread 12:
0 libsystem_kernel.dylib 0x00000001cf9a8bf0 __semwait_signal + 8
1 libsystem_c.dylib 0x00000001ac7616d4 nanosleep + 212
2 libsystem_c.dylib 0x00000001ac7615ac usleep + 64
3 MobileRTC 0x000000010577f2c4 0x104bac000 + 12399300
4 MobileRTC 0x0000000105003b44 0x104bac000 + 4553540
5 libsystem_pthread.dylib 0x00000001ec28bc9c _pthread_start + 288
6 libsystem_pthread.dylib 0x00000001ec290880 thread_start + 8

Thread 13:
0 libsystem_kernel.dylib 0x00000001cf9a8b00 __select + 8
1 MobileRTC 0x00000001050934c4 0x104bac000 + 5141700
2 MobileRTC 0x00000001050b7a9c 0x104bac000 + 5290652
3 MobileRTC 0x000000010507f2b8 0x104bac000 + 5059256
4 MobileRTC 0x000000010507e620 0x104bac000 + 5056032
5 MobileRTC 0x0000000105003b44 0x104bac000 + 4553540
6 libsystem_pthread.dylib 0x00000001ec28bc9c _pthread_start + 288
7 libsystem_pthread.dylib 0x00000001ec290880 thread_start + 8

Thread 14 name: com.apple.CoreMotion.MotionThread
Thread 14:
0 libsystem_kernel.dylib 0x00000001cf985644 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x00000001cf984a48 mach_msg + 72
2 CoreFoundation 0x00000001a39e90fc __CFRunLoopServiceMachPort + 376
3 CoreFoundation 0x00000001a39e3570 __CFRunLoopRun + 1176
4 CoreFoundation 0x00000001a39e2ba0 CFRunLoopRunSpecific + 572
5 CoreFoundation 0x00000001a39e3c60 CFRunLoopRun + 60
6 CoreMotion 0x00000001ae43cd68 0x1ae2fd000 + 1310056
7 libsystem_pthread.dylib 0x00000001ec28bc9c _pthread_start + 288
8 libsystem_pthread.dylib 0x00000001ec290880 thread_start + 8

Thread 15:
0 libsystem_kernel.dylib 0x00000001cf9a8bf0 __semwait_signal + 8
1 libsystem_c.dylib 0x00000001ac7616d4 nanosleep + 212
2 libsystem_c.dylib 0x00000001ac7615ac usleep + 64
3 MobileRTC 0x0000000105508734 0x104bac000 + 9815860
4 MobileRTC 0x0000000105003b44 0x104bac000 + 4553540
5 libsystem_pthread.dylib 0x00000001ec28bc9c _pthread_start + 288
6 libsystem_pthread.dylib 0x00000001ec290880 thread_start + 8

Thread 0 crashed with ARM Thread State (64-bit):
x0: 0x0000000000000000 x1: 0x0000000000000000 x2: 0x0000000000000000 x3: 0x0000000000000000
x4: 0x00000001b7eeef31 x5: 0x000000016b75f330 x6: 0x000000000000006e x7: 0x0000000000007e00
x8: 0x0000000104b67880 x9: 0xdc804ced843ccdd9 x10: 0x0000000000000002 x11: 0x000000000000000b
x12: 0x00000001ee9bec4a x13: 0x0000000000000001 x14: 0x0000000000000010 x15: 0x0000000000000019
x16: 0x0000000000000148 x17: 0x0000000000000001 x18: 0x0000000000000000 x19: 0x0000000000000006
x20: 0x0000000000000507 x21: 0x0000000104b67960 x22: 0x0000000000000001 x23: 0x00000002829c85c0
x24: 0x0000000000000000 x25: 0x0000000000000001 x26: 0x0000000eb1e31100 x27: 0x00000001fd155000
x28: 0x0000000000000001 fp: 0x000000016b75f290 lr: 0x00000001ec28c9e8
sp: 0x000000016b75f270 pc: 0x00000001cf9a884c cpsr: 0x40000000
esr: 0x56000080 Address size fault

Hey @shivam27saini,

You are getting a EXC_CORPSE_NOTIFY exception which is likely a language exception or a missing framework. Apple Developer Documentation

Base on this exception and our previous conversation, I do not think the MobileRTC.framework was imported into your application correctly. I would suggest removing the framework and re-importing it again using these steps: https://marketplace.zoom.us/docs/sdk/native-sdks/iOS/getting-started/integration.

You will know that the framework is imported correctly when MobileRTC.shared().initialize(context) returns true.

Thanks!
Michael

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.