Непонятная проблема с ключом info.plist, связанным с HealthKit - Apple - PullRequest
0 голосов
/ 28 ноября 2018

сегодня мне удалось столкнуться с очень странной ошибкой, связанной с ключами Info.plist в приложении, которое использует расширения WatchKit / WatchKit.Здесь речь идет о NSHealthUpdateUsageDescription.Это необходимо вместе с кратким описанием, когда отслеживаются какие-либо данные, относящиеся к HealthKit , предоставленному Apple.

Сложная деталь здесь, когда "Архивация" сборки указанного приложения находится в процессе подготовки.для представления.XCode говорит: «По отсутствующей причине необходим пропавший ключ NSHealthUpdateUsageDescription.

Когда сборка приложения попадает на страницу AppStore Connect, его указание тоже из-за идентификатора пакета, процесс затем исчезает иApple получит сообщение об ошибке, в котором будет сказано:

Уважаемый разработчик,

Мы обнаружили одну или несколько проблем с недавней доставкой для вашего приложения: «AirTime - Считайте свои прыжки!»Исправьте следующие проблемы и загрузите снова.

Отсутствует строка назначения в файле Info.plist - код вашего приложения ссылается на один или несколько API-интерфейсов, которые обращаются к конфиденциальным данным пользователя. Файл Info.plist приложения должен содержать NSHealthUpdateUsageDescriptionключ с пользовательской строкой назначения, ясно и полностью объясняющей, почему вашему приложению нужны данные.Начиная с весны 2019 года все приложения, представленные в App Store и имеющие доступ к данным пользователя, должны будут включать строку назначения. Если вы используете внешние библиотекиили SDK, они могут ссылаться на API, которые требуют пурСтрока ose.Хотя ваше приложение может не использовать эти API, строка назначения по-прежнему требуется.Вы можете связаться с разработчиком библиотеки или SDK и попросить, чтобы они выпустили версию своего кода, которая не содержит API.Узнать больше (https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy).

С наилучшими пожеланиями,

Команда App Store

Поиск SO, я не нашел ни одного поста, связанного с ключом info.plistпроблемы вне вещей, связанных с CFBundleIcons и т. д. Это не дубликат, я чувствую, как будто это вопрос, который будет полезен для будущих разработчиков при ответе.

Спасибо

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Проблема здесь была в том, что * * * * * NSHealthUpdateUsageDescription and NSHealthShareUsageDescription не требуется в Info.plist WatchKit, как я предполагал из сообщения об ошибке Apples ..

Будущее примечание для любого, кто найдет этот вопрос NSHealthUpdateUsageDescriptionнужен в вашем Info.plist, если вы «читаете» данные, которые вы отслеживаете ... это может означать несколько вещей, но в этом примере скажем, что вы отслеживаете данные и публикуете их в таблицу лидеров ... вам нужен этот ключ!

NSHealthShareUsageDescription используется, когда вы «записываете» в данные, которые вы отслеживаете.

Надеюсь, этот вопрос будет полезен для тех, кто столкнется с такой же проблемой в будущем!

Спасибо всем.

0 голосов
/ 28 ноября 2018

Похоже, ваш код ссылается на API для доступа к конфиденциальным данным от пользователя (в вашем случае вам необходим доступ к обновлению данных о работоспособности).Если вы хотите получить доступ к этим данным, вы должны спросить пользователя о разрешении.Это можно сделать в Info.plist, добавив этот ключ в Info.plist.

Вы также можете добавить строку, описывающую, зачем вам нужен доступ, к которому вы обращаетесь.В ответ от команды App Store написано, что эта строка с четкой целью будет требоваться начиная с весны 2019 года, поэтому вы должны попытаться использовать ее даже сейчас.

В этом случае вы должны установить строку с четкой целью для ключа NSHealthUpdateUsageDescription, поэтому вам необходимо обновить данные о состоянии.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...