It is indeed possible to use custom URL schemes for authentication in an iOS app. Here are the steps I took:

1. Choose an arbitrary domain, like `stackexchange.com`, for the OAuth domain in [your Stack Apps](https://stackapps.com/apps/oauth/)
2. (Optional) Make sure it has a Stack Apps Post if you want tokens with write access.
3. Check the checkboxes for these options:
   - Enable Client Side OAuth Flow
   - Disable Desktop Application OAuth Redirect Uri
4. Register the custom URL scheme for your application in the usual way, as described e.g. [here](https://developer.apple.com/documentation/uikit/inter-process_communication/allowing_apps_and_websites_to_link_to_your_content/defining_a_custom_url_scheme_for_your_app).
5. Use code like this to start the authentication flow (in Safari, not in the app itself). Substitute `54321` with the client ID from your Stack Apps listing. You may adjust the `scope` according to [the documentation](https://api.stackexchange.com/docs/authentication#scope), and of course the `redirect_uri`, as long as the domain matches the one in the Stack Apps listing.

	   let url = "https://stackoverflow.com/oauth/dialog?client_id=54321&scope=read_inbox,no_expiry,write_access,private_info&redirect_uri=example://stackexchange.com";
	   UIApplication.shared.open(URL(string: url)!) { (result) in }

6. Log in to Stack Overflow; your app will be opened and the URL will be something like
`example://stackexchange.com/#access_token=12345))` where `12345))` is the actual token.

---

An alternative is to use [Universal Links](https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html) to register a HTTP(S) URL you own, say `https://furdui.example.com` with your iOS app. Then, you can use the domain `furdui.example.com` as OAuth domain in Stack Apps, and have the redirects automatically forwarded to your iOS app.