В настоящее время я застрял на проблеме, связанной со входом в систему с помощью Apple. Как вы все знаете из iOS 13, вход в систему с помощью Apple является обязательным для входа в социальные сети. Проблема, с которой я столкнулся, заключается в том, что я реализовал вход в систему Apple, который работает в режиме отладки, но когда я отправляю сборку в тестовом полете, это не работает. Вроде как на кнопке баг яблока. Пожалуйста, помогите мне решить эту проблему или любой другой выход
Спасибо
Код для входа в Apple
@IBAction func appleIDSignin(_ sender:UIButton){
SVProgressHUD.show()
self.view.isUserInteractionEnabled = false
currentAppleUser { (userFound) in
if userFound {
let userName = KeychainItem.currentUserNameIdentifier
print(userName)
let email = KeychainItem.currentEmailIdentifier
self.socialLogin(Name: userName, Email: email, isMale: 1)
} else if userFound == false {
DispatchQueue.main.async {
SVProgressHUD.dismiss()
self.view.isUserInteractionEnabled = true
self.handleAppleIDRequest()
}
}
}
func handleAppleIDRequest(){
let appleIDProvider = ASAuthorizationAppleIDProvider()
let request = appleIDProvider.createRequest()
request.requestedScopes = [.fullName, .email]
let authorizationController = ASAuthorizationController(authorizationRequests: [request])
authorizationController.delegate = self
authorizationController.performRequests()
}
Проверка текущего пользователя
func currentAppleUser( completionHandler:@escaping(_ userFound:Bool)->()){
let appleIDProvider = ASAuthorizationAppleIDProvider()
appleIDProvider.getCredentialState(forUserID: KeychainItem.currentUserIdentifier) { (credentialState, error) in
switch credentialState {
case .authorized:
print("User Valid")
if KeychainItem.currentUserNameIdentifier == "" || KeychainItem.currentEmailIdentifier == "" {
completionHandler(false)
} else {
completionHandler(true)
}
break // The Apple ID credential is valid.
case .revoked:
print("revoked")
completionHandler(false)
case .notFound:
print("notFound")
completionHandler(false)
// The Apple ID credential is either revoked or was not found, so show the sign-in UI.
default:
break
}
}
}