Reputation: 5876
After I upload build to TestFlight, I'm getting email:
App Store Connect: Your app … has one or more issues
ITMS-90683: Missing purpose string in Info.plist - Your app’s code references one or more APIs that access sensitive user data, or the app has one or more entitlements that permit such access. The Info.plist file for the “Runner.app” bundle should contain a NSLocationWhenInUseUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. If your app supports multiple locales, you’re now required to provide a purpose string value in the Info.plist file in addition to a valid localized string across each of your app’s localization folders. 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. For details, visit: https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/requesting_access_to_protected_resources.
I can fix this by adding NSLocationWhenInUseUsageDescription with some random value. But I want to know which of my plugins references location API. Maybe I don't need this plugin, or I will find out location request scenario and write better explanation
Upvotes: 1
Views: 834
Reputation: 5876
If location API is referenced in some flutter plugin, the plugin may be found like this:
grep -E "(Core|NS|Swift|CL)Location" -rl ~/.pub-cache
However, location API can also be referenced in some native iOS (non-flutter) framework, which, in turn, is a dependency of a flutter plugin. This case is harder to find. You may find list of plugins (Android Studio -> tool window Project -> External Libraries -> Flutter Plugins), find plugin dependencies in <plugin>/ios/<plugin>.podspec
and then check source code of the dependencies.
Or try to grep binaries in pods cache:
grep -E "(Core|NS|Swift|CL)Location" -rl ~/Library/Caches/CocoaPods
Among plugins in the question, two of them reference location API: flutter_keyboard_visibility
and onesignal_flutter
Upvotes: 1