when does user authorization for location services need to be enabled for a beacon to wake up an app? I have heard that it need not be enabled if an app is already open in the foreground or background. Is this true?
Beacons and app location authorization
Location services authorization must be obtained before any CoreLocation service is used (which includes iBeacon region monitoring). Without this authorization your app will not receive any location services from the system.
If you are expecting your app to be "woken up", that means you expect to be using the location services while in the background. That will require an "always" authorization.
Best time to request this authorization is at the point where you actually plan to use location services to perform a task. As requesting authorization may display an alert to the user, if it is not clear to the user that your app is using location services for a useful purpose, the user may deny your request.