title: Location permission issue iOS 11 and iOS 10
body: <p>I am having an issue when requesting location permissions from user when I use iOS11 my info.plist contains </p>
  
  <pre><code>&lt;key&gt;NSLocationWhenInUseUsageDescription&lt;/key&gt;
  &lt;string&gt;When in use permissions&lt;/string&gt;
  &lt;key&gt;NSLocationAlwaysUsageDescription&lt;/key&gt;
  &lt;string&gt;always permissions&lt;/string&gt;
  &lt;key&gt;NSLocationAlwaysAndWhenInUsageDescription&lt;/key&gt;
  &lt;string&gt;Always and in usage permissions&lt;/string&gt;
  </code></pre>
  
  <p>I have two maps one for customer and another for employees. For employees I need to know their location even if the app is not running or is backgrounded (they are able to turn it off when signing out) and request permission using </p>
  
  <p><code>locationManager.requestAlwaysAuthorization()</code></p>
  
  <p>For customer i only need locations while the app is in use and request the permission using </p>
  
  <p><code>locationManager.requestWhenInUseAuthorization()</code></p>
  
  <p>In iOS 11 this only requests permission when in usage and never the always on permission.</p>
  
  <p>In iOS 10 it has the correct behaviour. </p>
  
  <p>The behaviour I want is as follows:
  When they are a customer (not signed in) it only asks for when in use permission. If they sign in (employee) it request location even when not in use.</p>
  
  <p>If anyone can shed some light on what I  am missing / done wrong it would be much appreciated.</p>
  
  <p>Something to note if i remove the permission <code>NSLocationAlwaysUsageDescription</code> iOS10 and iOS11 have the same issue of not requesting always permission.</p>
  
  <p>A bit more clarification. 
  I have implemented didChangeAuthorization delegate function and it gets called when a users allow the permission from alert from calling <code>requestWhenInUseAuthorization()</code>
   however when I call <code>requestWhenInUseAuthorization()</code> function on location manager the delegate method is not called it is like it's never receiving that call and no alert dialog is shown to the user.</p>