Предупреждение о сохранении пароля не отображается в 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 })

SecAddSharedWebCredential


Затем вы должны добавить на свой сайт файл 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: // с действующим сертификатом и без каких-либо перенаправлений.

Настройка связанных доменов приложения

После того, как функция автозаполнения пароля реализована, предупреждение о сохранении пароля будет отображаться при нажатии или представлении (в полноэкранном режиме) следующему .

Другие вопросы по тегам