Я не могу заставить HealthKit работать. Отсутствует право

Мне трудно заставить HealthKit работать с моим приложением для iOS. Я выполнил все шаги, которые я нашел, и ни один из них не решает проблему моя проблема Я продолжаю получать эту ошибку при попытке авторизовать Healthkit:

Error Domain=com.apple.healthkit Code=4 "Missing com.apple.developer.healthkit entitlement." UserInfo=0x78fa24e0 {NSLocalizedDescription=Missing com.apple.developer.healthkit entitlement.}

Вот мой код, запрашивающий авторизацию:

    if([HKHealthStore isHealthDataAvailable]) {

        self.healthStore = [[HKHealthStore alloc] init];

        [self.healthStore requestAuthorizationToShareTypes:nil readTypes:[self dataTypesToRead] completion:^(BOOL success, NSError *error) {

            if (!success) {
                NSLog(@"HK Error: %@", error);
                [self presentHealthAlert:@"You didn't allow APP to access HealthKit Data. Please go to Settings and set up APP permissions." withTitle:@"Error"];
            } else {
                [self presentHealthAlert:@"Thank You For Access" withTitle:@"Success"];
            }
        }];

    } else {
        [self presentHealthAlert:@"Health Data Not Available" withTitle:@"Success"];
    }

И да, я включил его в своем проекте Capabilites, и да, я включил его в своем идентификаторе приложения Центра разработки. Есть ли что-то еще, что я могу упустить?


person Marcelo Ribeiro    schedule 27.11.2014    source источник
comment
Пробовали ли вы загрузить профиль подготовки и повторить попытку?   -  person Saad Masood    schedule 28.11.2014


Ответы (7)


У меня была эта проблема с приложением watchOS 2. Решение заключалось в том, чтобы убедиться, что я включил право HealthKit для как приложения iOS, и расширения для часов.

Я ошибочно предположил, что переключатель для приложения iOS будет унаследован расширением часов.

person Andrew Ebling    schedule 30.09.2015
comment
Спасибо тебе за это! Ни одна вещь, которую я нигде не видел, не упоминала об этом, поэтому я никогда не думал о поиске другого набора прав для включения! - person jkratz; 28.11.2015

Вы должны убедиться, что вы нажимаете на свою программу в левой части Xcode (верхняя часть вашей файловой иерархии). Вы перейдете к экрану общих настроек в главном окне (справа), где вы увидите идентификатор вашего пакета, цель развертывания и дополнительные настройки. Нажмите на вкладку вверху с надписью «Возможности». Теперь вы увидите переключаемый список, который включает HealthKit. Вы должны активировать его здесь, прежде чем сможете использовать его в приложении.

Изменить: вот изображение из Xcode, которое может помочь вам найти это, если вы не знакомы с настройкой зависимостей или других настроек программы.

Скриншот, показывающий, где находится список с HealthKit

Он находится в этом списке справа, внизу вы увидите HealthKit. Он проверит несколько вещей, как только вы включите его, и убедитесь, что вы можете его использовать.

person syntheticgio    schedule 27.11.2014

Немного устарело, но для всех, у кого есть проблемы, мне пришлось вручную обновить свои профили подготовки в XCode 6.2 (Настройки -> Учетные записи).

person qix    schedule 17.03.2015

Я оказался здесь после того, как достиг предела своего ума. Ничего не работало, и у меня явно было включено право HealthKit, поэтому, в конце концов, я просто перезагрузил телефон. Вуаля. Перезапуск устранил отсутствующие ошибки прав.

person John Scalo    schedule 18.05.2015

  1. Нажмите на цель Расширение приложения Watch.

  2. Нажмите Возможности.

  3. Прокрутите вниз и включите HealthKit.

введите здесь описание изображения

person Shamsudheen TK    schedule 27.10.2017

Мне удалось заставить мое право работать, убедившись, что у меня зарегистрировано устройство. Как только мой iPhone показывался в симуляторе, и у меня не было нерешенных проблем в разделе идентификации приложения, все загрузилось нормально.

person DMH    schedule 28.02.2016

Вы можете обнаружить, что, несмотря на то, что вы включили право HealthKit в xcode, есть второй файл прав, который не содержит логическое значение HealthKit. Я обнаружил, что хотя очевидный файл прав (на верхнем уровне) содержал правильную информацию, в разделе «Ресурсы» был создан другой файл прав, который не содержал права на комплект здоровья. исправление этого файла устранило мою проблему.

person Brett Kokegei    schedule 07.06.2017