Search code examples
ioscocoapodsapp-store-connectprivacyinfo.plist

How to handle AppStore Warning - Missing Purpose String, because of third party library?


I have uploaded new build of the application that was in the App Store for severals years.

Received following email from iTunes Connect:

Your delivery was successful, but you may wish to correct the following issues in your next delivery: ITMS-90683: Missing Purpose String in Info.plist -

NSLocationAlwaysUsageDescription NSLocationWhenInUseUsageDescription

The application is not using location for any purpose.

It may be caused:

  • one of the pods I updated, has added usage of Location (admob?)
  • apple started to perform this check very recently

I have looked for Location and CoreLocation stuff in the project but no results. It might be compiled binary using it. But how to know which and for what purpose?

What is the developer supposed to write in the purpose string if it's some 3rd party lib using that permission?

PD: From what I know for AdMob, at least on Android, it's been using location since long time ago. https://developers.google.com/admob/ios/targeting#location https://support.google.com/admob/answer/6373176?hl=en

PD2: Just found this

7.8.1 2016‑05‑11 Added SDK support for automatically using location data when a user has explicitly enabled an app's location permissions.

In release notes: https://developers.google.com/admob/ios/rel-notes

PD3: Just found the issue on Google Groups forum of AdMob: https://groups.google.com/forum/#!category-topic/google-admob-ads-sdk/ios/byShbNTrumk


Solution

  • Another place with related issue: https://github.com/OneSignal/OneSignal-iOS-SDK/issues/368

    Tried removing OneSignal pod and uploading a new build. This time all worked without any email from apple.