*mic drop*By the way, the article is actually incorrect. The user is not required to use manually intervene in order to explicitly grant the “Always Allow” privilege... by design, they would be asked again at a later point. Because of this, it would be a violation of the Guidelines to ask the user to open the Settings app and forcibly grant the “Always Allow” privilege.
These complaining developers are aware of this fact, but they are being disingenuous, because they don’t like the way Apple is doing this.
Apple's intent is that the act of granting the “Always Allow” privilege should be a separate decision, and should also be as non-intrusive as possible to the user. From a development standpoint, it works like this (detailed in this WWDC 2019 video):
View attachment 853314
- As a developer, in your code, you should request “Always Allow” as you normally would.
- The user will see the new prompt which does not have the “Always Allow” option.
- If they grant “Allow While In Use” privileges, your app will actually be granted “provisional authorization” for the “Always Allow” privilege.
- The developer should now simply proceed to do the things for which they need that permission for: e.g., set up some geofences, and start monitoring for notifications, whatever.
- If the developer has coded their app according to the guidelines, at some point later, when an location-based event is triggered, the user will be prompted again— and this time, they’ll have the option to grant the “Allow Always” privilege, at which point the provisional authorization will be made permanent.