Исключение "NSInvalidArgumentException" NSHealthUpdateUsageDescritption

Завершение приложения из-за неотображенного исключения "NSInvalidArgumentException", причина: "NSHealthUpdateUsageDescription должен быть установлен в приложении Info.plist, чтобы запросить авторизацию на запись".

Info.plist имеет эту запись

<key>NSHealthShareUsageDescription</key>
<string>some string value stating the reason</string>

Ответ 1

Ошибка требует установки NSHealthUpdateUsageDescription. Это разные клавиши, которые вы можете увидеть здесь: https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html

  • NSHealthShareUsageDescription: Задает локализованную строку, которая описывает, почему приложение хочет читать данные HealthKit. Подробнее см. В разделе NSHealthShareUsageDescription.

  • NSHealthUpdateUsageDescription: Задает локализованную строку, которая описывает, почему приложение хочет записать данные в хранилище HealthKit. Подробнее см. В разделе NSHealthUpdateUsageDescription.

Ответ 2

Если вашему приложению необходимо использовать HealthKit, вы должны добавить права на чтение и запись в Info.plist.

Привилегия записи:

<key>NSHealthUpdateUsageDescription</key>
<string>some string value stating the reason</string>

Прочитать привилегию:

<key>NSHealthShareUsageDescription</key>
<string>some string value stating the reason</string>

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

Ответ 3

Если вы уже добавили NSHealthShareUsageDescription, но все равно получите исключение.

Это может быть связано с тем, что описание слишком короткое.

Убедитесь, что описание длиннее 12 символов для всех языков.

например

HelloHello → Crash !!

HelloHelloHi → ОК

Ответ 4

Вы также должны добавить ключ для NSHealthUpdateUsageDescription.

Добавьте в свой Info.plist следующее:

<key>NSHealthUpdateUsageDescription</key>
<string>some string value stating the reason</string>

Подробнее см. эту ссылку.

Ответ 5

У меня есть приложение с настройкой "NSHealthShareUsageDescription" в Info.plist. Однако, когда я загружаю приложение в App Store, Xcode показывает: "Вам нужно добавить строку поддержки для NSHealthUpdateUsageDescription". Мое приложение не должно запрашивать разрешение на запись от пользователей. Я был очищен проект, выход из Xcode без использования.

Необходимо ли добавить ключ NSHealthUpdateUsageDescription в проект? Кто-нибудь знает, почему он мне это показывает и как его решить?