Проблемы авторизации CoreMotion
В настоящее время я разрабатываю приложение, которое будет использовать комбинацию из трех библиотек: CoreLocation, CoreMotion и Healthkit.
Моя проблема заключается в том, что при инициализации CoreLocation и Healthkit я получаю диалоговое окно разрешить авторизацию. Тем не менее, с CoreMotion, я не получаю никакого диалога с просьбой авторизации, просто ошибка "CMErrorDomain=105" (т. е. доступ запрещен). Настройки конфиденциальности для "Motion & Fitness" не показывают никаких записей для приложения. Как и настройки конфиденциальности для приложения показать любую запись, связанную с движением. Я несколько раз протирал свое тестирующее устройство, чтобы исключить любые ранее существовавшие настройки.
Приложение, созданное для ios 9.2 с использованием Swift 2.1. Тестировался на 5S и 6S+, с одинаковыми результатами (диалог авторизации отсутствует)
Вот код, используемый для проверки того, доступен ли шагомер и можем ли мы собирать данные (т. е. разрешенный). "шагомер" объявляется в области действия класса. Эта функция (в настоящее время) прикреплена к кнопке, которая вызывается пользователем.
func checkCM() {
pedometer.queryPedometerDataFromDate(NSDate(), toDate: NSDate()) {
(data, error) -> Void in
if error != nil {
//error handler
print(error?.description)
} else {
// no errors!
}
}
}
Смущает то, что эта функция также была протестирована на другом приложении bare-bones и работает правильно (т. е. появится диалоговое окно разрешить "движение и фитнес"), на тех же устройствах. Все соответствующие системные настройки настроены должным образом, и другие приложения Шагомерcm будут работать.
Итак, проблема заключается в том, что что-то в моем приложении мешает отображению диалогового окна авторизации CoreMotion. Есть ли какие-либо известные "готы" или проблемы, связанные с работой с CoreMotion и разрешение?