Search code examples
xamarinxamarin.formsxamarin.iosvisual-studio-mac

Xamarin - ITMS-90683: Missing Purpose String in Info.plist


I'm developing an app using Xamarin Forms (Android and iOS). I have the first app version ready, and I'm trying to upload it to TestFlight in order to test the app with different users. In order to reduce the ipa size, I'm setting the linker behavior to "Link framework SDKs only".

enter image description here

After reducing the ipa size, I tried to upload the app to test flight but I got the next error message:

  • ITMS-90683: Missing Purpose String in Info.plist - Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain a NSCalendarsUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data.
  • ITMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability.
  • ITMS-90683: Missing Purpose String in Info.plist - 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.
  • ITMS-90683: Missing Purpose String in Info.plist - Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain a NSLocationWhenInUseUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data.

The problem is that I'm not using none of the items mentioned in the list. I'm not using WebView inside my app and I'm not requesting permissions of Location or Calendar. I know that those errors will disappear once I add the permission to inflo.plist, but I'm not using Location or Calendar.

How can I modify my application in order to remove those errors from TestFlight platform?

How can I notice which library (or NuGet) that I'm using is requesting any of those items?


Solution

  • To get rid of this

    ITMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability.

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

    For the other issues

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

    You need to manually set a message for the device features that you will be consuming in your app.

    For example Camera,Location,Calendar etc