HomeiOS DevelopmentWhy do I've so as to add the permissions I do not...

Why do I’ve so as to add the permissions I do not use when updating the Xamarin.iOS app within the AppStore?


My iOS utility, developed with Xamarin.Kinds for about 3 years, is revealed within the AppStore. Once I tried to replace this utility up to now months, I acquired an e-mail from the App Retailer join as follows.

ITMS-90683: Lacking function string in Data.plist – Your app’s code
references a number of APIs that entry delicate consumer information, or the
app has a number of entitlements that allow such entry. The
Data.plist file for the “AppName.iOS.app” bundle ought to include a
NSContactsUsageDescription key with a user-facing function string
explaining clearly and fully why your app wants the information. In case your
app helps a number of locales, you’re now required to offer a
function string worth within the Data.plist file along with a legitimate
localized string throughout every of your app’s localization folders. If
you’re utilizing exterior libraries or SDKs, they could reference APIs that
require a function string. Whereas your app won’t use these APIs, a
function string continues to be required. For particulars, go to:
https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/requesting_access_to_protected_resources.

ITMS-90683: Lacking function string in Data.plist – Your app’s code
references a number of APIs that entry delicate consumer information, or the
app has a number of entitlements that allow such entry. The
Data.plist file for the “AppName.iOS.app” bundle ought to include a
NSMicrophoneUsageDescription key with a user-facing function string
explaining clearly and fully why your app wants the information. In case your
app helps a number of locales, you’re now required to offer a
function string worth within the Data.plist file along with a legitimate
localized string throughout every of your app’s localization folders. If
you’re utilizing exterior libraries or SDKs, they could reference APIs that
require a function string. Whereas your app won’t use these APIs, a
function string continues to be required. For particulars, go to:
https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/requesting_access_to_protected_resources.

ITMS-90683: Lacking function string in Data.plist – Your app’s code
references a number of APIs that entry delicate consumer information, or the
app has a number of entitlements that allow such entry. The
Data.plist file for the “AppName.iOS.app” bundle ought to include a
NSAppleMusicUsageDescription key with a user-facing function string
explaining clearly and fully why your app wants the information. In case your
app helps a number of locales, you’re now required to offer a
function string worth within the Data.plist file along with a legitimate
localized string throughout every of your app’s localization folders. If
you’re utilizing exterior libraries or SDKs, they could reference APIs that
require a function string. Whereas your app won’t use these APIs, a
function string continues to be required. For particulars, go to:
https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/requesting_access_to_protected_resources.

ITMS-90683: Lacking function string in Data.plist – Your app’s code
references a number of APIs that entry delicate consumer information, or the
app has a number of entitlements that allow such entry. The
Data.plist file for the “AppName.iOS.app” bundle ought to include a
NSSiriUsageDescription key with a user-facing function string
explaining clearly and fully why your app wants the information. In case your
app helps a number of locales, you’re now required to offer a
function string worth within the Data.plist file along with a legitimate
localized string throughout every of your app’s localization folders. If
you’re utilizing exterior libraries or SDKs, they could reference APIs that
require a function string. Whereas your app won’t use these APIs, a
function string continues to be required. For particulars, go to:
https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/requesting_access_to_protected_resources.

ITMS-90683: Lacking function string in Data.plist – Your app’s code
references a number of APIs that entry delicate consumer information, or the
app has a number of entitlements that allow such entry. The
Data.plist file for the “AppName.iOS.app” bundle ought to include a
NSLocationAlwaysUsageDescription key with a user-facing function string
explaining clearly and fully why your app wants the information. In case your
app helps a number of locales, you’re now required to offer a
function string worth within the Data.plist file along with a legitimate
localized string throughout every of your app’s localization folders. If
you’re utilizing exterior libraries or SDKs, they could reference APIs that
require a function string. Whereas your app won’t use these APIs, a
function string continues to be required. For particulars, go to:
https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/requesting_access_to_protected_resources.

ITMS-90683: Lacking function string in Data.plist – Your app’s code
references a number of APIs that entry delicate consumer information, or the
app has a number of entitlements that allow such entry. The
Data.plist file for the “AppName.iOS.app” bundle ought to include a
NSLocationAlwaysAndWhenInUseUsageDescription key with a user-facing
function string explaining clearly and fully why your app wants
the information. In case your app helps a number of locales, you’re now required
to offer a function string worth within the Data.plist file as well as
to a legitimate localized string throughout every of your app’s localization
folders. In the event you’re utilizing exterior libraries or SDKs, they could
reference APIs that require a function string. Whereas your app won’t
use these APIs, a function string continues to be required. For particulars,
go to:
https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/requesting_access_to_protected_resources.

ITMS-90683: Lacking function string in Data.plist – Your app’s code
references a number of APIs that entry delicate consumer information, or the
app has a number of entitlements that allow such entry. The
Data.plist file for the “AppName.iOS.app” bundle ought to include a
NSLocationWhenInUseUsageDescription key with a user-facing function
string explaining clearly and fully why your app wants the information.
In case your app helps a number of locales, you’re now required to offer
a function string worth within the Data.plist file along with a legitimate
localized string throughout every of your app’s localization folders. If
you’re utilizing exterior libraries or SDKs, they could reference APIs that
require a function string. Whereas your app won’t use these APIs, a
function string continues to be required. For particulars, go to:
https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/requesting_access_to_protected_resources.

ITMS-90683: Lacking function string in Data.plist – Your app’s code
references a number of APIs that entry delicate consumer information, or the
app has a number of entitlements that allow such entry. The
Data.plist file for the “AppName.iOS.app” bundle ought to include a
NSBluetoothAlwaysUsageDescription key with a user-facing function
string explaining clearly and fully why your app wants the information.
In case your app helps a number of locales, you’re now required to offer
a function string worth within the Data.plist file along with a legitimate
localized string throughout every of your app’s localization folders. If
you’re utilizing exterior libraries or SDKs, they could reference APIs that
require a function string. Whereas your app won’t use these APIs, a
function string continues to be required. For particulars, go to:
https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/requesting_access_to_protected_resources

They’re mentioned that I need to clarify why I want these information in to the data.plist. However I don’t do something that requires this permission anyplace within the utility.

Once I acquired this e-mail, I needed to publish the appliance very urgently, so I entered the next permissions within the data.plist of the appliance: “Permission is requested as a result of libraries used within the utility.”.
I used to be in a position to one way or the other replace my utility after rejecting it 5-6 occasions in that launch. However proper now I wish to replace my app once more and Apple rejected my app once more. The explanation of rejection is: “Your app makes use of the SMS Fraud Extension to dam or filter messages from a listing of telephone numbers”.
Nevertheless, I don’t use any SMS Fraud Extension in my utility. I believe the explanation why Apple is responding on this approach stands out as the “NSContactsUsageDescription” permission I added to the data.plist. So I am at present making an attempt to determine why these permissions are obligatory.

I believe there could possibly be 2 causes for this.

  1. The primary cause could also be resulting from a bundle. If the bundle is triggered, the primary bundle that involves my thoughts is the “Xamarin.Necessities” bundle. As a result of as you realize, many options are gathered within the “Xamarin.Necessities” nuget and even when we use 1-2 options on this bundle, we have now to incorporate the identical bundle within the venture.
    I’m at present launching utility as Linker Conduct: Hyperlink Framework SDKs Solely.
    If the issue is attributable to the Xamarin.Important bundle, I perceive that if I set Linker Conduct: Hyperlink All, I’ll ship my utility to the market with out including any permission. It will likely be mounted. However after I do that, my app cannot open. (Once I press the app icon to open my utility, the appliance closes with out even the splash display.)

  2. The second cause might that I added the Share Extension characteristic to my utility within the earlier launch. I do not know if the Share extension characteristic wants these permissions, however these permissions are required after I added share extension characteristic to my app. Does Share Extension apply these permissions?

Has anybody encountered this example earlier than? In that case, how did you resolve it?

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments