苹果登录拒绝

时间:2020-02-21 06:35:49

标签: appstore-approval

我已经用Apple SignIn上传了一个应用程序,在成功登录后,我们接收的用户信息包括名字,姓氏,电子邮件,但是我遭到了Apple的拒绝。

  1. 1.1法律:隐私权-数据收集和存储 准则5.1.1-法律-隐私-数据收集和存储 我们注意到,您的应用要求用户使用与您的应用的核心功能不直接相关的个人信息进行注册。具体来说,以下字段是必填字段,但似乎与您应用的核心功能没有直接关系:
    • 名字和姓氏(与Apple一起使用登录时)
    • 电子邮件(与Apple一起使用登录时) 名称和电子邮件是由Apple登录提供的,因此分别询问是不合适的。我们鼓励您利用Apple登录功能并遵守其意图,以尊重用户的隐私和个人信息。 下一步 要解决此问题,请删除与应用程序不相关的所有必填字段,或将这些字段设为可选。注册过程中要求提供的信息必须与应用程序提供的功能相关。

1 个答案:

答案 0 :(得分:0)

*将所有数据保存在钥匙串中当您获得成功数据didCompleteWithAuthorization以及使用钥匙串数据之后。

 func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization) {
    if let appleIDCredential = authorization.credential as? ASAuthorizationAppleIDCredential {

        // Create an account in your system.
        // For the purpose of this demo app, store the these details in the keychain.
        KeychainItem.currentUserIdentifier = appleIDCredential.user
        KeychainItem.currentUserFirstName = appleIDCredential.fullName?.givenName
        KeychainItem.currentUserLastName = appleIDCredential.fullName?.familyName
        KeychainItem.currentUserEmail = appleIDCredential.email

        print("User Id - \(appleIDCredential.user)")
        print("User Name - \(appleIDCredential.fullName?.description ?? "N/A")")
        print("User Email - \(appleIDCredential.email ?? "N/A")")
        print("Real User Status - \(appleIDCredential.realUserStatus.rawValue)") 
}
}

要更改凭据的任何状态,您可以使用以下代码进行跟踪。

 let appleIDProvider = ASAuthorizationAppleIDProvider()
appleIDProvider.getCredentialState(forUserID: KeychainItem.currentUserIdentifier) { (credentialState, error) in
    switch credentialState {
    case .authorized:
        // The Apple ID credential is valid.
        break
    case .revoked:
        // The Apple ID credential is revoked.
        break
    case .notFound:
        // No credential was found, so show the sign-in UI.
        }
    default:
        break
    }
}