Since iOS 10 it’s mandatory to add a NSLocationWhenInUseUsageDescription entry in the info.plist.
NSLocationWhenInUseUsageDescription describes the reason that the app accesses the user’s location. When the system prompts the user to allow access, this string is displayed as part of the dialog box. To add this entry you can pass the variable GEOLOCATION_USAGE_DESCRIPTION on plugin install.
If you don’t pass the variable, the plugin will add an empty string as value.
OK, great. in Meteor that should just be:
App.configurePlugin("cordova-plugin-geolocation", {
GEOLOCATION_USAGE_DESCRIPTION: "We secretly record your location and pass it on to the FBI, NSA, CIA.",
});
I was just exploring this yesterday, see Github issue here.
Try adding the following to your mobile-config.js and then rebuilding. Make sure you have removed your .meteor/local/cordova-build/ directory between builds because of this Meteor issue just to be safe.
App.appendToConfig(`
<edit-config target="NSLocationWhenInUseUsageDescription" file="*-Info.plist" mode="merge">
<string>My app needs access to your location for navigation purposes</string>
</edit-config>
`);
Let know if this works for you as I will add to Meteor Guide if it does.
On Android I think the requesting of permissions is handled at run-time automatically in the plugin by a call to the helper method requestPermission, but I did not do a full review.