iOS 18: “Settings” button on location permission alert does nothing, logs BUG IN CLIENT OF UIKIT warning

Hello everyone,

I’m encountering a problem on the latest iOS 18 related to location permissions. When the user denies location access, my app triggers the standard system prompt asking them to enable location from Settings. On iOS 17 and below, tapping the “Settings” button in this system alert would successfully navigate the user to my app’s Settings page. However, on iOS 18, nothing happens. Instead, I see the following warning in the Xcode console:

Warning : BUG IN CLIENT OF UIKIT: The caller of UIApplication.openURL(:) needs to migrate to the non-deprecated UIApplication.open(:options:completionHandler:). Force returning false (NO).

Important details and context:

  1. In my own code, I have already replaced all calls to openURL(:) with open(:options:completionHandler:).
  2. I searched the entire codebase for usage of openURL: and didn’t find any.
  3. The alert that appears is the system location alert (iOS-generated), not a custom UIAlertController. Thus, I have no direct control over the underlying call.
  4. On iOS 17 (and below), tapping “Settings” in the same system dialog works perfectly and takes the user to the app’s permission page.
  5. The console message implies that somewhere—likely inside the system’s own flow—the deprecated API is being called and blocked on iOS 18.

What I’ve tried:

  1. Verified I am not calling openURL: anywhere in my code.
  2. Confirmed that UIApplication.openSettingsURLString works when I programmatically open it in a custom alert.
  3. Tested multiple times on iOS 17 and iOS 18 to confirm the behavior difference.

Steps to reproduce:

  1. Install the app on a device running iOS 18 Beta.
  2. Deny location permission when prompted.
  3. Trigger a piece of code that relies on location (e.g., loading a map screen) so that the OS automatically shows its standard “Location is disabled” alert, which includes a “Settings” button.
  4. Tap “Settings.” On iOS 17, this navigates to the app’s Settings. On iOS 18 Beta, it does nothing, and the console logs the BUG IN CLIENT OF UIKIT warning.

Questions:

  1. Is this a known iOS 18 bug where the system’s own alert is still using the deprecated openURL: call?
  2. If so, are there any workarounds besides presenting a custom alert that manually calls open(_:options:completionHandler:)?

Thank you in advance. Any guidance or confirmation would be appreciated!

Answered by Frameworks Engineer in 823205022

This is likely a system bug with the location prompt, could you please file a feedback report and post the feedback number here? Thanks!

Accepted Answer

This is likely a system bug with the location prompt, could you please file a feedback report and post the feedback number here? Thanks!

iOS 18: “Settings” button on location permission alert does nothing, logs BUG IN CLIENT OF UIKIT warning
 
 
Q