Question: Good morning, I created a web application project by Google, simple, with nothing in it. I'm trying to deploy my project, and is giving the following error: Can not get the Java Compiler System. Please use the JDK, not the JRE.

I replaced the window -> preferences -> Java -> installed JREs to use the JDK. When I change this, an error in the compilation of index.jsp: Your project must be configured to use the JDK in order to use JSPs.

And now, I put JRE to make deploy and error in jsp, jsp and the concert I can not do deploy. What can I do?

Answer: 
You should check if the permission is already granted for your app and if so, remove that permission (iOS settings app, privacy).

Another recommendation is to completely deinstall the app from simulator/device.

Here is a code snippet from my appDelegate, it uses `requestAlwaysAuthorization` but that shouldn't make a difference here:

```
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
    // intialize locationManager
    locationManager.delegate = self
    locationManager.activityType = CLActivityType.Fitness
    locationManager.distanceFilter = 10   // 10m
    locationManager.requestAlwaysAuthorization()

    // get current location
    if CLLocationManager.authorizationStatus() == CLAuthorizationStatus.Authorized {
        locationManager.startUpdatingLocation()
    }
}

func locationManager(manager: CLLocationManager!, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
    if status == .Authorized {
        locationManager.startUpdatingLocation()
    }
}

func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
    ...
}

```

And this is in my `Info.plist`:

```
<key>NSLocationAlwaysUsageDescription</key>
<string>No tracking without your permission</string>

```
I also have problems with CLLocationManager. You need request access if state is changed to `NotDetermined`. Example:

```
private var isInitalized = false
private func initLocationManagerIfNescessary() {
    if isInitalized { return }
    isInitalized = true

    locationManager = CLLocationManager()
    locationManager.delegate = self
    // locationManager.locationServicesEnabled
    locationManager.desiredAccuracy = kCLLocationAccuracyBest

    let Device = UIDevice.currentDevice()
    let iosVersion = NSString(string: Device.systemVersion).doubleValue
    let iOS8 = iosVersion >= 8
    if iOS8 {
        //locationManager.requestAlwaysAuthorization() // add in plist NSLocationAlwaysUsageDescription
        locationManager.requestWhenInUseAuthorization() // add in plist NSLocationWhenInUseUsageDescription
    } else {
        locationManager.startUpdatingLocation()
    }
}

internal func locationManager(manager: CLLocationManager!,
    didChangeAuthorizationStatus status: CLAuthorizationStatus) {
    switch status {
    case CLAuthorizationStatus.AuthorizedWhenInUse:
        locationManager.startUpdatingLocation()
    case CLAuthorizationStatus.NotDetermined:
        // After first request status may be not autorized, do request access again
        locationManager.requestWhenInUseAuthorization()
    default: break
    }
}

```