简体   繁体   中英

“Missing Purpose String in Info.plist File” not actually missing

Attached is what I get from Apple after uploading to the App Store Connect, even though all of these are included in my info.plist. I have tried nearly 10 times to change the name of my string ranging from long strings (eg We get the bluetooth in order to connect with certain DJI models that require bluetooth to get telemetry and other data from the drone.) to short strings (eg We display the user's location on Mapview.)

All other questions I have seen claim the simple solution is to include the string, which I'm already doing! Does this have something to do with DJI's sdk? I would think just including this in MY info.plist would be enough. The main issue seems to be with the bluetooth permissions as another app I am trying to upload returns the same issue.

的Info.plist

"Dear Developer,

We identified one or more issues with a recent delivery for your app, "DJI Swift Demo". Please correct the following issues, then upload again.

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 NSBluetoothPeripheralUsageDescription 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. Learn more ( https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy ).

Though you are not required to fix the following issues, we wanted to make you aware of them:

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. 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. Learn more ( https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy )."

Instead of verifying the plist information in XCode, please look into the plist inside ipa.

Please follow the below steps to verify plist inside ipa.

Let say, your ipa file is Demo.ipa

  1. Copy the Demo.ipa to DemoBkup.ipa
  2. Rename it to DemoBkup.zip
  3. Extract the zip file. (Double click the zip file)
  4. The Extracted file will contain "Payload" folder.Get into Payload folder.
  5. You will find the Demo package. Right click and tap "Show Package contents"
  6. Search for your Info.plist.

Validate all the information you gave in XCode is present in this plist.

Change your info.plist keys with the keys Privacy - Bluetooth Peripheral Usage Description , Privacy - Location When In Use Usage Description . Check the given screenshot for reference: 在此输入图像描述

Do check the plist file referenced by the scheme you are building. I think the plist file you are making change is not the same referenced by the scheme from what you are building the ipa file to submit to App Store.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM