Ошибка Appstore connect: отсутствует строка назначения в файле Info.plist - PullRequest
0 голосов
/ 24 августа 2018

Я отправил свое приложение на рассмотрение в Appstore connect. Хотя приложение все еще находится на рассмотрении, я получил письмо, в котором сообщалось, что я должен исправить ошибку. Вот содержание сообщения:

    Dear Developer,

    We identified one or more issues with a recent delivery for your 
    app XXXXX. Your delivery was successful, but you 
    may wish to correct the following issues in your next delivery:

    "Missing Purpose String in Info.plist File. Your app's code 
    references one or more APIs that access sensitive user data. The 
    app's Info.plist file should contain a 
    NSLocationAlwaysUsageDescription key with a user-facing purpose 
    string explaining clearly and completely why your app needs the 
    data. Starting spring 2019, all apps submitted to the App Store 
    that access user data will be required to include a purpose 
    string.If you're using external libraries or SDKs, they may 
    reference APIs that require a purpose string. While your app might 
    not use these APIs, a purpose string is still required. You can 
    contact the developer of the library or SDK and request they 
    release a version of their code that doesn't contain the APIs. 


     After you’ve corrected the issues, you can use Xcode or 
     Application Loader to upload a new binary to iTunes Connect.

     Best regards,

     The App Store Team

Мое приложение полностью построено на expo, и я не знаю, как получить доступ и изменить Info.plist.

Есть идеи?

Ответы [ 15 ]

0 голосов
/ 27 августа 2018
## Используйте этот ключ в файле info.plist

NSLocationAlwaysUsageDescription Ваше местоположение требуется для получения льгот xyz. NSLocationWhenInUseUsageDescription Ваше местоположение требуется для получения льгот xyz.

0 голосов
/ 25 августа 2018

РЕДАКТИРОВАТЬ Апрель 2019 : Теперь вы должны добавить эти два ключа, как началась весна 2019. Обратите внимание, что NSLocationAlwaysUsageDescription устарела (начиная с iOS 11) и была заменена на NSLocationAlwaysAndWhenInUseUsageDescription и NSLocationWhenInUseUsageDescription. Если вы хотите поддерживать более низкую, чем iOS 11, вам придется использовать три значения.

Подводя итог, вы должны:

  • Добавить NSLocationAlwaysAndWhenInUseUsageDescription И NSLocationWhenInUseUsageDescription для iOS 11 и более
  • И добавьте NSLocationAlwaysUsageDescription, если вы хотите поддерживать iOS 10 и менее
  • И, наконец, вы можете добавить NSLocationUsageDescription, если хотите поддерживать iOS 8 и менее.

1024 *
*

Вы можете отправить свое приложение, даже если вы получили это сообщение!

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

Я могу подтвердить, что мое приложение было одобрено даже без использования клавиш NSLocationAlwaysUsageDescription и NSLocationWhenInUseUsageDescription в info.plist

Действительно, как Apple заявляет в почте:

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

Так что единственное, что нужно сделать, это добавить этот ключ (прямо сейчас лучше, чтобы вы не забыли) в ваш проект, чтобы он был включен в ваше следующее обновление .

Просто добавьте две новые записи в ваш info.plist, с ключами NSLocationAlwaysUsageDescription и NSLocationWhenInUseUsageDescription и кратким описанием того, почему вы используете их в качестве значения (даже если вы их не используете ...) ,

0 голосов
/ 25 августа 2018

У меня есть несколько приложений в магазине, и я попытался распространить версию для QA, и то же самое произошло в двух разных приложениях.Я думаю, что это новый критерий для принятия загрузок сборок в Appstore connect.

Решение простое, добавьте следующие строки в файл .plist.

<key>NSLocationAlwaysUsageDescription</key>
<br> <string>custom message</string>
<br> <key>NSLocationWhenInUseUsageDescription</key>
<br> <string>custom message</string>

PS: В моем случае я не использовал какую-либо функцию определения местоположения, ноЯ добавил эти строки, чтобы соответствовать рекомендациям Appstore connect.Между прочим, после получения этого письма я смог протестировать приложение, даже когда они сказали, что сборка имеет некоторые проблемы.

Надеюсь, эта работа для вас, ребята.

0 голосов
/ 24 августа 2018

Эта проблема возникает из-за того, что вы не включили

 <NSLocationAlwaysUsageDescription>

для своего приложения.Я столкнулся с той же проблемой, когда пытался отправить свое приложение в AppStore.После обработки приложения я получил ту же почту.Я только добавил описание, и теперь оно решено.

Надеюсь, это поможет.

0 голосов
/ 24 августа 2018

Мы получили одно и то же электронное письмо, и мы вообще не используем CoreLocation. После быстрого поиска мы обнаружили, что Parse SDK может использовать CoreLocation. В электронном письме Apple четко сказано:

Если вы используете внешние библиотеки или SDK, они могут ссылаться на API, для которых требуется целевая строка.

Это означает, что в тот момент, когда ваш код или любая другая библиотека или SDK могут использовать CoreLocation, даже если вы его не используете, вам необходимо предоставить описание конфиденциальности для «Когда используется» и «Всегда использовать».

Это также что-то новое от Apple, и пока это только предупреждение, но оно будет требоваться начиная с весны 2019 года для новых заявок.

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