<!--
{
  "availability" : [
    "iOS: 14.0.0 -",
    "iPadOS: 14.0.0 -",
    "macCatalyst: 14.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AuthenticationServices",
  "identifier" : "/documentation/AuthenticationServices/ASAccountAuthenticationModificationExtensionContext/completeUpgradeToSignInWithApple(userInfo:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "Authentication Services"
    ],
    "preciseIdentifier" : "c:objc(cs)ASAccountAuthenticationModificationExtensionContext(im)completeUpgradeToSignInWithAppleWithUserInfo:"
  },
  "title" : "completeUpgradeToSignInWithApple(userInfo:)"
}
-->

# completeUpgradeToSignInWithApple(userInfo:)

Completes the process of upgrading an account’s authentication credentials from using passwords to using Sign in with Apple.

```
func completeUpgradeToSignInWithApple(userInfo: [AnyHashable : Any]? = nil)
```

## Parameters

`userInfo`

A dictionary that contains details to pass to the extension’s containing app if the app initiated the account modification request.

## Discussion

After successfully upgrading to Sign in with Apple, the system deletes the password credentials from the keychain.

To receive the `userInfo` dictionary in your app, set a delegate on the [`ASAccountAuthenticationModificationController`](/documentation/AuthenticationServices/ASAccountAuthenticationModificationController) when initiating the request. The delegate receives the `userInfo` dictionary as a parameter to [`accountAuthenticationModificationController(_:didSuccessfullyComplete:userInfo:)`](/documentation/AuthenticationServices/ASAccountAuthenticationModificationControllerDelegate/accountAuthenticationModificationController(_:didSuccessfullyComplete:userInfo:)).

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)