No IOS 11, o DeviceMotion em segundo plano parou de funcionar

Meu aplicativo relata e registra dados de localização, altitude, rotação e acelerômetro (DeviceMotion) enquanto em segundo plano. Isso funciona bem no ios 10.3.3. No IOS 11, não tenho mais acesso a dados de movimento enquanto o dispositivo está bloqueado. Os dados de altitude e localização ainda estão sendo transmitidos para o console.

Alguma coisa mudou no IOS 11 que me impede de acessar dados de movimento ou estou tentando acessá-los de uma maneira que a Apple agora bloqueia como OperationQueue.main

Aqui está como estou iniciando as atualizações de movimento. Se o telefone estiver desbloqueado, tudo funcionará bem. Se eu bloquear o telefone, não haverá mais atualizações:

let motionManager = self.motionManager

    if motionManager.isDeviceMotionAvailable {
        motionUpdateInterval = 0.15
        motionManager.deviceMotionUpdateInterval = motionUpdateInterval

        motionManager.startDeviceMotionUpdates(using: .xArbitraryZVertical, to: OperationQueue.main) {deviceMotion, error in
            guard let deviceMotion = deviceMotion else { return }

Não consigo encontrar nada sobre os modos de fundo do Motion mudando, mas parece que deve haver uma maneira, caso contrário, o RunKeeper, o Strava quebrará. Alguém pode me ajudar a fazer isso funcionar novamente antes do lançamento do IOS11?

Obrigado!

questionAnswers(2)

yourAnswerToTheQuestion