didChangeAuthorizationStatus ... is not called when I turn location services on and off
That surprised me, so I looked at my code, and at the docs. There seem to be two CLLocationManagerDelegate methods, locationManagerDidChangeAuthorization: and locationManager: didChangeAuthorizationStatus:. The latter is deprecated and only briefly documented. The former is specifically documented to be called when the global location services setting is changed by the user:
https://developer.apple.com/documentation/corelocation/cllocationmanagerdelegate/locationmanagerdidchangeauthorization(_:)?language=objc
Events that Cause Authorization Status Changes
...
Turn location services on or off globally in Settings > Privacy > Location Services.
So... which of those methods have you implemented? And are you sure that it's not called for you? If so, "file a bug" ha ha ha.
Topic:
App & System Services
SubTopic:
Maps & Location
Tags: