O manipulador de conclusão ReplayKit: startRecording () nunca é inserido

Descrição do Problema

O manipulador de conclusão startRecording () nunca é inserido, mesmo que o pop-up "Permitir gravação de tela em $ AppName" tenha sido exibido. O pop-up "Permitir gravação de tela em $ AppName" é exibido ocasionalmente. Isso acontece também quando eu removo o aplicativo, reinicio o dispositivo e faço uma limpeza / compilação no projeto. Estou usando um iPad Air 2 com iOS 11 e Xcode 9.

Pesquisa

Esse problema também parecia ser um problema nas versões anteriores, veja aqui:Às vezes, o replaykit startrecording nunca entra no manipulador de conclusão Não posso aprovar que desligar o Wi-Fi ou ter uma conexão estável à Internet resolve esse problema, nem o problema foi corrigido no iOS 11.

Aqui está o código que estou usando:

@IBAction func recordButtonTapped(_ sender: UIButton) {
    if !recorder.isRecording {
        startRecording(sender)
    } else {
        stopRecording(sender)
    }
}

private func startRecording(_ sender: UIButton) {
    guard recorder.isAvailable else {
        print("Recording is not available at this time.")
        // Display UI for recording being unavailable
        return
    }

    recorder.startRecording(handler: { (error) in
        guard error == nil else {
            print("There was an error starting the recording.")
            print(error!)
            return
        }

        print("Started Recording Successfully")
        DispatchQueue.main.async {
            sender.setTitle("Stop Recording", for: .normal)
            sender.setTitleColor(.red, for: .normal)
        }
    })
}

questionAnswers(1)

yourAnswerToTheQuestion