我正试图使用SwiftUI在SecureField中使用强密码建议功能,但它不起作用。只是想知道我是做错了什么,还是一个bug。
@State var password: String = ""
@State var confirmPassword: String = ""
var body: some View {
VStack {
SecureField("Password", text: $password) {
// do something
}
.textContentType(.newPassword)
SecureField("Confirm Password", text: $confirmPassword) {
// do something
}
.textContentType(.newPassword)
}
}
当我选择secureField时,它不建议使用强密码。
编辑:
经过进一步的测试和下面的评论,我添加了一个相关的域,并将以下web凭据文件上传到我的web服务器,例如.com/.apple-app-site-association.txt:
{
"webcredentials": {
"apps": [ " TEAMID.com.example.AppName" ]
}
}
我目前的功能是关联域和自动填充凭据提供程序设置为YES。
当我尝试使用强密码时,我会收到以下错误消息:
无法显示应用程序bundleID的自动强密码:com.example.AppName由于错误:无法识别调用应用的过程检查应用程序中的teamID和bundleID应用程序标识符授权
不确定从这里到哪里。
如果您已经用.newPassword
和";关联域";相应地,登录时的自动填充和强密码建议应该在您的设备上运行。
但请确保有一个iCloud帐户登录并启用iCloud钥匙串。如果不是这样,它不会建议使用强密码,因为它无法在设备之间同步密码。它将输出一些日志如下:
[AutoFill] Cannot show Automatic Strong Passwords for app bundleID:
com.example.signin-playground due to error: iCloud Keychain is disabled
此测试只能在真实设备上完成,因为您无法在模拟器中启用iCloud钥匙串。
如果希望建议使用新密码,则需要使用.newPassword
文本内容类型。
.password
用于输入现有密码。