В моем продлении часов я называю эту функцию:HealthKit Разрешение Листовая Не Появившись
func requestAuthorization() {
let healthStore = HKHealthStore()
let workoutType = HKObjectType.workoutType()
let heartRateType = HKObjectType.quantityType(forIdentifier: .heartRate)
//reading
let readingTypes = Set([heartRateType!, workoutType])
//writing
let writingTypes = Set([heartRateType!, workoutType])
//auth request
healthStore.requestAuthorization(toShare: writingTypes, read: readingTypes) { (success, error) -> Void in
if error != nil {
print("error \(error?.localizedDescription)")
} else if success {
self.startButton.setEnabled(true)
} else if !success {
self.startButton.setEnabled(false)
}
}
}
И в AppDelegate.swift, у меня есть:
func applicationShouldRequestHealthAuthorization(_ application: UIApplication) {
let healthStore = HKHealthStore()
healthStore.handleAuthorizationForExtension { (success, error) -> Void in
//...
}
}
Я получаю диалог на часы и телефон и он открывает приложение на телефоне, когда я расскажу об этом в диалоговом окне. Проблема, с которой я сталкиваюсь, заключается в том, что в телефонном приложении не отображается панель разрешений, которая должна отображаться, чтобы разрешать разрешения. Лист разрешения упоминается здесь: https://developer.apple.com/reference/healthkit
Что нужно сделать, чтобы оно появилось, чтобы разрешить разрешение? Поскольку это прямо сейчас, я могу предоставить разрешения, перейдя в приложение «Здоровье», затем из источников и выбрав свое приложение и предоставив разрешения таким образом.
Лист разрешений, о котором я говорю, это.
EDIT: Я получаю эту ошибку, напечатанную по вызову метода requestAuthorization().
error Optional("Required usage description strings not present in app\'s Info.plist")
Как только вы отказались от авторизации, вы можете открыть это только в настройках. Или переустановите приложение. – Lumialxk
Я никогда не отказывался от разрешения. Я попытался переустановить приложение, и я до сих пор не получил лист разрешений. – raginggoat
Какую версию iOS вы используете? – Mehul