'NSHealthUpdateUsageDescription должен быть установлен в Info.plist приложения.

Наше приложение собирает данные о частоте пульса из HealthKit на Apple Watch более 2 лет. Однако, начиная с XCode 11, это больше не работает. На самом деле приложение вылетает с ошибкой: «NSHealthUpdateUsageDescription должен быть установлен в Info.plist приложения. Я установил ключи NSHealthUpdateUsageDescription и NSHealthShareUsageDescription в файле info.plist приложения. Я прочитал все сообщения на всех форумах, но мне не повезло, почему приложение вылетает из-за этой ошибки, так как, очевидно, я установил соответствующие ключи. Я читал в нескольких сообщениях, что описание должно быть действительно длинным (очень научным), поэтому я сделал наши описания очень длинными, но безуспешно.

Мы просим разрешения на многие другие права, и все они работают нормально. Фактически, у нас есть пошаговый тест, который отлично работает и на Apple Watch.

Я должен сказать это, мы переместили текст из нашего приложения в локализуемые строки. Это, по-видимому, не имеет значения, потому что iOS продолжает запрашивать разрешение для других прав (использование камеры, FaceID, местоположение и т. Д.).

Мы создали файл InfoPList.strings в отчаянной попытке понять, почему мы продолжаем получать эту ошибку. Мысль о том, что яблоко ищет строку и не может ее найти, поэтому просто выдает общее, почти бесполезное сообщение об ошибке.

<key>NSHealthShareUsageDescription</key>
<string>$(PRODUCT_NAME) would like to capture a snap shot of your heart rate for the purpose of using the data in a clinical research study. Please grant this permission to continue participating.</string>
<key>NSHealthUpdateUsageDescription</key>
<string>$(PRODUCT_NAME) would like to update your health usage with heart rate data. Actually we never do anything of the kind but it seems Apple has lost control of X-Code and has few if any answers, so we will ask this permission.</string>

Вот пары "ключ-значение" в файле InfoPlist.strings (на английском языке):

NSHealthShareUsageDescription = "Это приложение использует HealthKit для получения информации о частоте пульса от пациента для клинического исследования. Ваша частота пульса будет сохранена в вашей защищенной личной записи клинического испытания и будет использоваться для дальнейших медицинских инноваций."; NSHealthUpdateUsageDescription = "Это приложение использует частоту пульса совместно с HealthKit";

Кто-нибудь сталкивался с этой проблемой и сумел ее решить? Следующим шагом будет обращение к Apple, что может оказаться очень сложной задачей, чтобы привлечь их внимание. Заранее спасибо.


person PDG    schedule 10.11.2019    source источник
comment
опубликуйте код, который вылетает. Насколько я понимаю, эти описания предназначены только для утверждения, а не для выполнения кода.   -  person john elemans    schedule 10.11.2019


Ответы (1)


Теперь вы также должны добавить его в info.plist проекта Watch Extension. У меня была такая же проблема, и она решилась этим.

person Patrick Tremblay    schedule 11.11.2019
comment
Спасибо, что решили мою проблему. На самом деле я добавил это как в файлы info.plist для расширения, так и в приложение WatchKit. Произошла ошибка, поэтому я удалил оба, что было моей фатальной ошибкой. Итак, опять же, у вас должны быть эти ключи в основном приложении и приложении расширения watchkit, но не может быть ключей в приложении watchkit. - person PDG; 11.11.2019