Make smart localization choices according to your audience, and allow users the choice if they want to live with your app even if it's not in their locale.
In theory, the best practice is to localize your apps for your audience.
Of course, in theory your audience could be anyone in the world. But you are not likely going to have your app localized for the 732+ locales that iOS recognizes (as of iOS 9, probably more now).
So practically speaking, if your app targets a second audience (for instance, France is the world's largest tourist destination and its cuisine is one of its attractions among world travellers) it makes sense to localize for those audiences. In this example, Germany and the UK are the largest sources of visitors to France, so you may choose to localize to German and British English. You probably won't localize to Urdu.
However, there is nothing preventing a Paktistani Francophile from downloading your app when they land in Charles de Gaulle and, with whatever level of knowledge of French they have, make use of the app. If they find the experience too discordant they may stop using it, but that will be their choice. From your perspective, you are at least leaving the option open to users.
Also note that, if I understand your example correctly, this type of app will always be a little discordant in terms of localization when you think beyond UI and message and into actual content. You will never be able to get every restaurant in all of France to provide you a description, let alone a menu, aptly translated into English and German. Reviews people leave will be in their native language, most likely. Machine translation services like Google translate will get you some of the way (we see it on sites like Trip Advisor) but it will never be perfect.