Does macOS 10.15 support ASAuthorizationPasswordProvider?

I've got an iOS app and a Mac app. I'm trying to use ASAuthorizationPasswordProvider to implement the "existing user sign in" flow for Sign in with Apple.

It's working correctly on both platforms. when there's an existing Sign in with Apple user. However, I'm having trouble getting macOS to show suggested credentials for passwords from the keychain. ASAuthorizationPasswordProvider claims to work on both platforms, and I'm using the same code on both, but it's not working on Mac.

Here's the relevant code:

Code Block
let appleIDRequest = ASAuthorizationAppleIDProvider().createRequest()
appleIDRequest.requestedScopes = [.email, .fullName]
let passwordRequest = ASAuthorizationPasswordProvider().createRequest()
let controller = ASAuthorizationController(authorizationRequests: [appleIDRequest, passwordRequest])
controller.delegate = self
controller.presentationContextProvider = self
controller.performRequests()


I have verified that both Mac and iOS have the correct "Associated Domains" capability enabled. Is there something else I need to do to get this to work on Mac?

Accepted Reply

Resolved the issue; it turns out I had another older copy of the app on the system, and ASAuthorizationController was using that one to decide whether the webcredentials: associated domain was supported. Removing that older copy of the app fixed the issue.

Replies

Yes, macOS is supported. If you are not seeing this work, could you file a feedback report with a sysdiagnose taken after you expected this to work.
Filed FB7774028 with a sysdiagnose attached.
Follow-up: I talked to an engineer in the labs, and I passed along some additional logs for investigation. There wasn't anything obviously wrong with my configuration, so either there's a system bug or there's something weird about how the credentials are stored in the keychain that is causing them to not be found.
Resolved the issue; it turns out I had another older copy of the app on the system, and ASAuthorizationController was using that one to decide whether the webcredentials: associated domain was supported. Removing that older copy of the app fixed the issue.