Исключение "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 в проект? Кто-нибудь знает, почему он мне это показывает и как его решить?