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

Поэтому я хочу спросить, почему не сработало это предупреждение.


person Hilalkah    schedule 01.11.2019    source источник
comment
Возможно, на вашем устройстве отключена функция сохранения пароля (вы можете проверить это в Настройках- ›Общие-› Все пароли устройства)   -  person Tm Goyani    schedule 01.11.2019
comment
Он включен. Пробовал 2 устройства вот такой. Также можно сохранить пароль с помощью Safari.   -  person Hilalkah    schedule 01.11.2019
comment
Почтовый индекс, используемый для отображения предупреждений.   -  person ares777    schedule 06.11.2019


Ответы (1)


При создании новой учетной записи или изменении пароля используйте текстовый тип содержимого .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>

Разместите этот файл либо в хорошо известном каталоге вашего сайта, либо непосредственно в его корневом каталоге. Если вы используете хорошо известный каталог, URL-адрес файла должен соответствовать следующему формату:

https://<fully qualified domain>/.well-known/apple-app-site-association

Вы должны разместить файл, используя https: // с действующим сертификатом и без каких-либо перенаправлений.

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

person Andre Grillo    schedule 28.11.2019