Xamarin - ITMS-90683: отсутствует строка назначения в Info.plist - PullRequest
0 голосов
/ 25 мая 2020

Я разрабатываю приложение с использованием Xamarin Forms (Android и iOS). У меня готова первая версия приложения, и я пытаюсь загрузить ее в TestFlight, чтобы протестировать приложение с разными пользователями. Чтобы уменьшить размер ipa, я устанавливаю поведение компоновщика на «Link framework SDK only».

enter image description here

После уменьшения размера ipa, Я попытался загрузить приложение для тестового полета, но получил следующее сообщение об ошибке:

  • ITMS-90683: Отсутствует строка цели в Info.plist - код вашего приложения ссылается на один или несколько API, которые обращаются к конфиденциальному пользователю. данные. Файл Info.plist приложения должен содержать ключ NSCalendarsUsageDescription с ориентированной на пользователя целевой строкой, четко и полностью объясняющей, почему вашему приложению нужны данные.
  • ITMS-90809: устаревшее использование API - новые приложения, использующие UIWebView, не больше не принято. Вместо этого используйте WKWebView для повышения безопасности и надежности.
  • ITMS-90683: Отсутствует строка цели в Info.plist - код вашего приложения ссылается на один или несколько API, которые обращаются к конфиденциальным данным пользователя. Файл Info.plist приложения должен содержать ключ NSLocationAlwaysUsageDescription с ориентированной на пользователя целевой строкой, четко и полностью объясняющей, почему вашему приложению нужны данные.
  • ITMS-90683: Отсутствует строка назначения в Info.plist - код вашего приложения ссылается на один или несколько API, которые обращаются к конфиденциальным данным пользователя. Файл Info.plist приложения должен содержать ключ NSLocationWhenInUseUsageDescription с ориентированной на пользователя целевой строкой, четко и полностью объясняющей, почему вашему приложению нужны данные.

Проблема в том, что я не использую предметы, указанные в списке. Я не использую WebView внутри своего приложения и не запрашиваю разрешения для Location или Calendar. Я знаю, что эти ошибки исчезнут, как только я добавлю разрешение на inflo.plist, но я не использую Location или Calendar.

Как я могу изменить свое приложение, чтобы удалить эти ошибки с платформы TestFlight?

Как я могу заметить, какая библиотека (или NuGet), которую я использую, запрашивает какие-либо из этих элементов?

Ответы [ 2 ]

1 голос
/ 25 мая 2020

Чтобы избавиться от этого

ITMS-90809: устаревшее использование API - новые приложения, использующие UIWebView, больше не принимаются. Вместо этого используйте WKWebView для повышения безопасности и надежности.

Soultion - https://docs.microsoft.com/en-us/xamarin/ios/user-interface/controls/webview#uiwebview -deprecation

Для других проблем

Soultion - https://docs.microsoft.com/en-us/xamarin/ios/app-fundamentals/security-privacy

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

Например, Камера, Местоположение, Календарь et c

0 голосов
/ 26 мая 2020
  • ITMS-90683: вам нужно добавить эти строки в Info.plist

<key>NSLocationAlwaysUsageDescription</key> 
<string>We would like to know your location to find places near you</string>

<key>NSCalendarsUsageDescription</key>
<string>This app needs access to calendar when open</string>

<key>NSLocationWhenInUseUsageDescription</key>
<string>We would like to know your location to find places near you</string>
  • ITMS -90809:

    1. Обновите версию Xamarin.Forms
    2. Вы можете go в свой iOS проект, открыть свойства проекта и добавить этот флаг в поле дополнительных аргументов mtouch : --optimize = экспериментальный-xforms-product-type этот флаг работает вместе с параметром Linker Behavior, установленным на SDK Only или All.

https://devblogs.microsoft.com/xamarin/uiwebview-deprecation-xamarin-forms/

...