问题描述
目前,我遇到了一个关于苹果登录的问题。众所周知,从 iOS 13 开始,苹果登录是社交登录的强制性要求。我遇到的问题是我实现了在调试模式下工作的苹果登录,但是当我在试飞时提交构建时它不起作用。看起来按钮有它是苹果的错误。请指导我解决这个问题或任何其他出路
谢谢
@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
}
}
}
解决方法
您需要为此打开沙盒帐户,您将收到或制作一封电子邮件和密码,以便您可以对其进行测试。和苹果支付一样。您可以通过试飞创建沙盒用户。