My iOS-app shows a map and may be the user's location. At some point it will request the "always" location permission. On iOS all is well. The app also runs pretty neat on M1 macs so far, except for the part where it wants to request that permission. I also think it never asked me for the "Permission when in use" on the M1.
However, after the user granted the always-permission on iOS, he'll be shown the screen of the GPS tracker. Since recording GPS tracks doesn't make much sense on M1, I'd like to show the user that screen, but disable the start button.
So how do I test for M1?
P.S. I'd not ask such a dumb question, if I didn't get this error: (including these strange quotes)
„POI Toolbox“ kann nicht installiert werden
Domain: IDEInstallLocalMacService
Code: 1
Failure Reason: Versuche es später noch einmal.
Recovery Suggestion: Failed to finalize LSBundleWrapper mutator instance for {...BUNDLE_ID...}
--
System Information
macOS Version 11.4 (Build 20F71)
Xcode 12.5.1 (18212) (Build 12E507)
Timestamp: 2021-06-28T12:31:13+02:00
The "failure reason" doesn't say anything helpful. It means "Try again later."
Post
Replies
Boosts
Views
Activity
When we ask users for permission to use their location, they'll be able to grant permission to "WhenInUse" in the first step. After that the app may ask for "Always" authorization and the user taps 'Change to always'. That's fine. So far...
But there is something missing:
Issue on the 1st step:
An app can't tell the user that the wrong permission button was tapped ('Allow once' is sometimes wrong, see step 2) and to go to the settings to correct that. 'Allow once' is okay to show the user's location on a map. BUT if the app later needs BG permission, step 2 will fail silently. That's confusing to the user, and to the developer! Also, some users get nervous if they encounter such system pop-ups (i.e. see your mothers and fathers) and tend to tap 'Allow once'.
(My app shows a map, where 'Allow once' is okay, but it also is a GPS tracker in the 2nd use-case)
Issues on the 2nd step:
(2.1)
Well, the user asks the app to record a GPX track and before he chose 'Allow once' (because he wanted the map to locate himself; the same app session). Guess what?
Nothing at all happens.
To the user the app appears to be buggy. Since it didn't get any explicit callback by the system it never was able to determine whether another permission request could be successful or not.
(2.2)
The user selected "WhenInUse" in step (1) and decided to "Keep 'WhenInUse'".
Nothing at all happens. Again.
Problem here: The user tapped a button and the app doesn't get any callback on this. That probably breaks functionality. I have also tried to receive notifications (about key windows: UIWindowDidBecomeKeyNotification and UIApplicationDidBecomeActiveNotification). But the pop up seems not to be anything like a window or ... whatever would cause the app to resign the active state.
So here are my 2 cents. If I'd be the engineer of CLLocationManager, I'd like to change the following (R = Request):
(R1)
Add CLAuthorizationStatusTemporary (That is: "Allow once only" and means: "You don't even need to ask for 'Always' authorization")
(R2)
Some in-app mechanism, that would allow the user to correct the choice to "Allow 'WhenInUse'" once.
(R3)
Always give a feedback on the current authorization status, after the user taps a button.
Can we please have these changes?