Does this app detect startMonitoringForRegion:, startRangingBeaconsInRegion:, or both?
If you have set locations enabled through the SDK then:
The xtremepush SDK uses both startMonitoringForRegion and startRangingBeaconsInRegion for detecting beacons. So the consequently the App uses both too. However this detection only starts on the App side if there is a list of beacons to monitor for on the platform.
What is the user experience when the app detects the presence of a beacon?
When the xtremepush SDK detects a beacon, it checks locally to see if this beacon is on the list of beacons to monitor. If it is on the list, the xtremepush SDK sends an API request to the xtremepush platform to report a beacon "enter" or "exit" event. If there is a campaign set-up on the xtremepush platform based on this particular beacon, the user will receive a notification on their device containing the targeted message from the campaign (provided the user is eligible for the campaign on the platform).
What features in this app use background location?
The xtremepush SDK is relied upon for detecting "enter" and "exit" events for both geofences and beacons. These geofences and beacons are configured on the xtremepush platform and then sent down to the SDK in the App for monitoring. If any "enter" or "exit" events occur for the particular regions being monitored in the App, these are reported to the xtremepush platform, and can be used for triggering targeted messaging campaigns.
If this app uses 3rd party SDKs for iBeacons, please provide links to their documentation showing that background location is required for it to function.
The App is using a 3rd party SDK for iBeacon detection i.e. the xtremepush SDK that requires background location. Here is a link for the documentation regarding the configuration of the xtremepush location services: https://support.xtremepush.com/hc/en-us/articles/205669522-iOS-Location-Services