Предупреждение о сохранении пароля не отображается в Swift
Я хочу, чтобы это предупреждение появлялось, когда пользователь входит в мое приложение.
Я сделал это руководство для этого. Инструменты паролей iOS 12: повышение безопасности и удобства пользователей
Также я посмотрел эту тему. И используя этот код в моем LoginViewController.swift в viewDidDisappear или viewWillDisappear. Но это предупреждение вообще не появляется.
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
if user.id != 0 {
usernameTextField.text = nil
passwordTextField.text = nil
}
}
Мой файл прав, подобный этому (предположим, что twitter.com - это веб-сайт моего приложения):
<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:twitter.com</string>
<string>webcredentials:twitter.com</string>
</array>
<key>com.apple.developer.authentication-services.autofill-credential-provider</key>
<true/>
И, конечно, мой usernameTextField тип контента является имя пользователя и passwordTextField тип контента пароль.
Поэтому я хочу спросить, почему это предупреждение не сработало.
2 ответа
При создании новой учетной записи или изменении пароля используйте текстовый тип содержимого.newPassword для пароля TextField:
newPasswordTextField.textContentType = .newPassword
confirmPasswordTextField.textContentType = .newPassword
Включение автозаполнения пароля в режиме ввода текста
Вы также можете управлять учетными данными связки ключей iCloud с помощью API Security.SecSharedCredentials. По-прежнему потребуется ассоциация домена (права):
SecAddSharedWebCredential("your_domain.com" as CFString,
usernameTextField.text as CFString,
newPasswordTextField?.text as CFString, {(error) in })
Затем вы должны добавить на свой сайт файл Apple App Site Association.
Создайте файл с именем apple-app-site-association (без расширения). Обновите файл, чтобы он содержал JSON-представление словаря, в котором перечислены идентификаторы приложений, связанные с вашим доменом для службы webcredentials.
{
"webcredentials": {
"apps": [ "D3KQX62K1A.com.example.DemoApp",
"D3KQX62K1A.com.example.DemoAdminApp" ]
}
}
Используйте следующий формат для идентификаторов приложений:
<Team Identifier>.<Bundle Identifier>
Поместите этот файл либо в хорошо известный каталог вашего сайта, либо непосредственно в его корневой каталог. Если вы используете каталог.well-known, URL-адрес файла должен соответствовать следующему формату:
https://<fully qualified domain>/.well-known/apple-app-site-association
Вы должны разместить файл, используя https: // с действующим сертификатом и без каких-либо перенаправлений.
После того, как функция автозаполнения пароля реализована, предупреждение о сохранении пароля будет отображаться при нажатии или представлении (в полноэкранном режиме) следующему