如何在 xamarin 中为 iOS 12 添加凭据提供程序应用程序扩展

Posted

技术标签:

【中文标题】如何在 xamarin 中为 iOS 12 添加凭据提供程序应用程序扩展【英文标题】:How to add a credential provider app extension for iOS 12 in xamarin 【发布时间】:2019-03-14 19:13:19 【问题描述】:

我正在尝试利用新扩展来处理密码管理应用程序,但在设置它时遇到了障碍。这可能是我的谷歌搜索技能,但几乎没有关于如何使用 xamarin 执行此操作的文档。

到目前为止我所拥有的:

    将 com.apple.developer.authentication-services.autofill-credential-provider 作为自定义属性添加到我的 ios 项目 Entitlements.plist 中 创建了一个 ActivionView 扩展,因为在创建 iOS 扩展项目时没有凭据提供程序选项。 将 ActionViewController 更改为 CredentialProviderViewController 更新了 MainInterface.storyboard 以使用 CredentialProviderViewController 将 com.apple.developer.authentication-services.autofill-credential-provider 作为自定义属性添加到自动填充 Entitlements.plist

我在“设置”>“密码和帐户”下没有看到使用我的应用进行自动填充的选项。我一定错过了一些关键部分。有谁知道我应该怎么做?

这是我的 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>

【问题讨论】:

运行时你需要加载我认为的 .plist 文件。试过this? 我知道有一个 Xamarin.Essentials (docs.microsoft.com/en-us/xamarin/essentials/…) 可以将密码保存在钥匙串中,但它不允许您进行密码自动填充。听起来好像缺少在 iOS 应用中启用密码自动填充的功能 谢谢,这将我们指向正确的区域。一个团队成员现在正在处理这个问题,所以一旦我们有工作,我会让他发布答案。 @Cuberic 是不久前的事了,但是您设法解决了这个问题吗?如果是这样,你能分享一下吗?我也有同样的情况。 我也遇到了同样的问题。我可以在 XCode 中创建一个自动填充凭据提供程序,它按预期工作,但是当我尝试在 Xamarin 中复制它时,不行。我确实在控制台中看到了一条警告:App Extension 'prototypeapp' 的 NSExtensionPointIdentifier 值无法识别('com.apple.authentication-services-credential-provider-ui')。 【参考方案1】:

我已确认这是 Xamarin.iOS 的一个错误。具体来说,有一个已知扩展点列表的枚举和验证。 iOS 12 中引入的凭据提供程序点以及 iOS 10 之后的任何其他内容均不存在。

我已经分叉了 Xamarin.iOS 代码并制作了必要的补丁,并确认我现在能够成功部署凭据提供程序,该提供程序显示在 iOS 设置的自动填充密码提供程序列表中。我会尽快提交错误并提交拉取请求,但我可能会先检查并确保所有其他扩展点都存在。

编辑:我所有的拉取请求都已合并到主开发分支中,并有望很快成为正式版本的一部分。

【讨论】:

以上是关于如何在 xamarin 中为 iOS 12 添加凭据提供程序应用程序扩展的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 中为 TTTAttributedLabel LinkAttributes 添加 NSDictionary UIColor

如何在 Xamarin 中为 DatePicker 添加最小日期验证检查

如何在 xamarin 中为 android 添加工具栏,因为 ToolbarItem 不适用于 .droid?

如何在 Azure DevOps 中为 .net6 iOS 应用程序配置配置文件?

在 Xamarin.iOS 中为 2 个依赖静态库创建绑定

如何在Xamarin.Forms中为StackLayout正确创建自定义渲染器?