如何在 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?