7

I’m trying to leverage the new extension to work with a password management app, and I’m running into a road block setting it up. It could be my googling skills but there is almost no documentation on how to do this with xamarin.

What I have so far:

  1. Added com.apple.developer.authentication-services.autofill-credential-provider as a custom property into my iOS project Entitlements.plist
  2. Created an ActivionView extension since there is no credential provider option when creating a iOS extension project.
  3. Changed the ActionViewController to a CredentialProviderViewController
  4. Updated the MainInterface.storyboard to use the CredentialProviderViewController
  5. Added com.apple.developer.authentication-services.autofill-credential-provider as a custom property to the autofill Entitlements.plist

I don’t see the option under Settings>Passwords & Accounts to use my app for the autofill. I must be missing some key pieces. Does anyone know what I should be doing instead?

Here is my Entitlements.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>keychain-access-groups</key>
    <array>
        <string>$(AppIdentifierPrefix)com.orginization.appname</string>
    </array>
    <key>com.apple.security.application-groups</key>
    <array>
        <string>group.com.orginization.appname</string>
    </array>
    <key>com.apple.developer.authentication-services.autofill-credential-provider</key>
    <true/>
</dict>
</plist>
Cuberic
  • 177
  • 1
  • 12
  • while running you need to load that .plist file I think. tried [this](https://github.com/xamarin/ios-samples/tree/master/Keychain)? – Morse Oct 10 '18 at 00:18
  • I know there's a Xamarin.Essentials (https://learn.microsoft.com/en-us/xamarin/essentials/secure-storage?tabs=ios) to save the password in keychain, but it doesn't let you do password autofill. Sounds like something is missing to enable password autofill in the iOS app – Patrick Nov 07 '18 at 19:48
  • Thanks, that's pointing us to the right area. A team member is working on this now, so I will have him post an answer once we have something working. – Cuberic Dec 12 '18 at 17:56
  • @Cuberic it's a while ago, but did you manage to solve the issue? If so, could you please share? I'm in the same situation. – Merijn Aug 21 '19 at 15:59
  • I'm also having the same issue. I can create a auto fill credential provider in XCode and it works as expected, but when I try to duplicate it in Xamarin, no go. I do see a warning in the console: The App Extension 'prototypeapp' has an unrecognized NSExtensionPointIdentifier value ('com.apple.authentication-services-credential-provider-ui'). – kiddailey Jun 30 '20 at 19:05
  • @kiddailey if it works in XCode then it is likely a bug, try to file a bug. – Ivan Ičin Jun 30 '20 at 22:26

1 Answers1

0

I have confirmed that this is a bug with Xamarin.iOS. Specifically, there is an enumeration of and validation against a list of known Extension Points. The credential provider point introduced in iOS 12, and any others after iOS 10 are not present.

I've forked the Xamarin.iOS code and made the necessary patches and confirmed that I am now able to successfully deploy a credential provider that shows up in the AutoFill Passwords provider list in iOS settings. I will file a bug and submit a pull request as soon as I can, but I may go through and make sure all the other extension points are present first.

Edit: All of my pull requests have been merged into the main development branch and will hopefully be part of an official release soon.

kiddailey
  • 3,302
  • 3
  • 22
  • 23