AVAudioEngine setManualRenderingInputPCMFormat does not work in iOS 11

AVAudioEngine supports manual rendering in iOS 11, however the inputBlock never be called in real-time mode, any tips ?

self.audioEngine.stop()

try! self.audioEngine.enableManualRenderingMode(.realtime, format: self.audioFormat, maximumFrameCount: 1024)

self.audioEngine.connect(self.audioEngine.inputNode, to: self.audioEngine.mainMixerNode, format: nil)

self.audioEngine.connect(self.audioEngine.mainMixerNode, to: self.audioEngine.outputNode, format: nil)

let result = self.audioEngine.inputNode.setManualRenderingInputPCMFormat(self.audioEngine.manualRenderingFormat, inputBlock: { (frameCount) -> UnsafePointer<AudioBufferList>? in

    print("in inputBlock")

    return nil

})

print(result) // always be true

try! self.audioEngine.start()