Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AutoFill Credential Provider and other iOS 11+ extensions are broken during build process #9000

Closed
kiddailey opened this issue Jul 3, 2020 · 5 comments
Labels
enhancement The issue or pull request is an enhancement iOS Issues affecting iOS
Milestone

Comments

@kiddailey
Copy link
Contributor

kiddailey commented Jul 3, 2020

It is not possible to create a working AutoFill Credential Provider Extension or any extension type introduced in iOS 11+. Although code support appears to be present, the build process breaks the integration with iOS because all NSExtensionPoints introduced after iOS 10 are undefined.

The credential provider is the focus of the information below as that is my immediate need. I have already applied a fix to Xamarin-macios and Xamarin-MacDev in my environment, confirmed that my code changes resolve the issue and allow the extension to function as expected, and will submit a pull request. My assumption is that similar changes can be applied to allow for the other missing extension types to be supported.

Steps to Reproduce

  1. Create an Action Extension as a baseline a template for Credential Provider is not available
  2. Modify the extension to conform to a Credential Provider extension (sample project provided below)
  3. Attempt to build and run the extension

Expected Behavior

  • Extension should appear in iOS Settings > Passwords & Accounts > AutoFill Passwords as a credential provider

Actual Behavior

  • Build console displays warning:

warning : The App Extension 'Extension' has an unrecognized NSExtensionPointIdentifier value ('com.apple.authentication-services-credential-provider-ui').

  • Extension does not appear as credential provider in iOS settings

Environment

Both Windows and Mac

Windows:
https://gist.github.com/kiddailey/23946ab84ae9f2e4439ff3f5ea51b76b

Mac:
https://gist.github.com/kiddailey/7aed782c076875b64f26892c50620253

Build Logs

https://gist.github.com/kiddailey/042fecd335fb4fc24fa708afe128e257

Example Project (If Possible)

AutoFillCredentialProviderExampleApp.zip

Additional Notes

  • There are two sets of changes required to resolve this for the credential provider:
    • Update Xamarin.MacDev
    • Update Xamarin-macios
@chamons chamons added enhancement The issue or pull request is an enhancement iOS Issues affecting iOS labels Jul 6, 2020
@chamons chamons added this to the Future milestone Jul 6, 2020
@chamons
Copy link
Contributor

chamons commented Jul 6, 2020

It looks like you've worked through this in:

dotnet/macios-devtools#75

@kiddailey
Copy link
Contributor Author

Yup. There's also a corresponding change to Xamarin-macios and per the suggestion of @rolfbjarne, I will submit a pull request for that once the MacDev change is merged.

Once I have more time, I may go through and submit changes for the other missing NSEntryPoints as well.

@rolfbjarne
Copy link
Member

@kiddailey
Copy link
Contributor Author

kiddailey commented Jul 13, 2020

Installed fine, verified that my "current" is the newly installed version and built the example Credential provider project. Received no warnings and the extension worked as expected. Also tried it with a more complex extension setup and it worked as expected there as well. Thanks!

@rolfbjarne
Copy link
Member

Great, thanks! I'm going to close this then, and we're going to try to get this in our d16-8 release later this fall.

@ghost ghost locked as resolved and limited conversation to collaborators Apr 30, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement The issue or pull request is an enhancement iOS Issues affecting iOS
Projects
None yet
Development

No branches or pull requests

3 participants