RPScreenRecorder stopRecording block not getting called

1.4k views Asked by At

I have searched enough but failed to get a solution.

I am using ReplayKit to record the screen of my app. I have started recording the screen by calling

let sharedRecorder = RPScreenRecorder.shared()
sharedRecorder.startRecording() { error in 
    if let error = error {
        self.showScreenRecordingAlert(message: error.localizedDescription)
    }
}

When I am pressing the stopRecord button I am calling

let sharedRecorder = RPScreenRecorder.shared()
sharedRecorder.stopRecording { previewViewController, error in 
    if let error = error {
        self.showScreenRecordingAlert(message : error.localizedDescription)
        return
    }
}

But the issue that I am facing is, the program control does not enter inside the stopRecording block. When I am doing po sharedRecorder.isRecording, it always returns false. I have done everything I know but failed to get a solution.

2

There are 2 answers

0
Hardik Vyas On

If you having this above issue with your code i have found the solution for this.

let sharedRecorder = RPScreenRecorder.shared()
sharedRecorder.stopRecording { previewViewController, error in 
if let error = error {
    self.showScreenRecordingAlert(message : error.localizedDescription)
    return
}}

Above Block will not call if you running your app on simulator so please use real device to test then above method will call definitely.

Thank you.

0
Laser On

Just had this issue running XCode 9.4.1 and building onto iOS 11.4.0. Upgrading the phone to iOS 11.4.1 fixed the bug. I'm not sure if the difference in XCode versions is the root cause or if 11.4.0 was just broken.