В настоящее время я разрабатываю приложение, которое будет использовать комбинацию из трех библиотек: CoreLocation, CoreMotion и Healthkit.Проблемы с авторизацией CoreMotion
Моя проблема в том, что когда я инициализирую 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!
}
}
}
Запутанная часть является то, что эта функция также была протестирована на другом приложении минималистичных, и работает правильно (то есть. Диалоговое окно, чтобы «Motion & Fitness» отображается), на один и те же устройства. Все соответствующие системные настройки настроены так, как ожидалось, и другие приложения для шагомера \ см.
Так что проблемы в том, что что-то в моем приложении препятствует отображению диалогового окна авторизации CoreMotion. Существуют ли какие-либо известные «gotchas» или проблемы, связанные с работой с CoreMotion и авторизацией?