Я настроил проект swift 4 и включил средства AWS Amplify Authorization как часть установки. Все работает, если я хочу использовать базовые входные данные для регистрации электронной почты, пароля и номера телефона, но если я хочу включить другие атрибуты и / или изменить некоторые обязательные атрибуты, они не отображаются на странице регистрации. Я исследовал AWSUserPoolSignUpViewController.m и вижу (IBAction) onSignUpClicked: (id) отправитель жестко запрограммирован, вызывая имя пользователя, пароль и номер телефона. Я также вижу, что атрибут userAttribute в настоящее время имеет значение nil. Я не уверен, как я могу вставить и изменить необходимые мне атрибуты.
func signUp(){
AWSMobileClient.sharedInstance().signUp(username: "your_username",
password: "Abc@123!",
userAttributes: ["email": "john@doe.com", "DOB": "01/01/2000", "gender": "male", "zipcode": "07042"]){ (signUpResult, error) in
if let signUpResult = signUpResult {
switch(signUpResult.signUpConfirmationState) {
case .confirmed:
print("User is signed up and confirmed.")
case .unconfirmed:
print("User is not confirmed and needs verification via \(signUpResult.codeDeliveryDetails!.deliveryMedium) sent at \(signUpResult.codeDeliveryDetails!.destination!)")
case .unknown:
print("Unexpected case")
}
} else if let error = error {
if let error = error as? AWSMobileClientError {
switch(error) {
case .usernameExists(let message):
print(message)
default:
break
}
}
print("\(error.localizedDescription)")
}
}
}