Вход в Apple не работает во время testflight

В настоящее время я застрял на проблеме, связанной со входом в систему с помощью 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
      }
   }
}

person Hanzala Raza    schedule 22.12.2020    source источник


Ответы (1)


Для этого вам нужно открыть учетную запись в песочнице, вы получите или сделаете одно электронное письмо и пароль, чтобы вы могли его протестировать. То же, что и Apple Pay. Вы можете создать пользователей песочницы из тестового полета.

person MMDev11070    schedule 23.12.2020
comment
как создать эту учетную запись песочницы? Я уже включил вкладку возможностей входа в Apple - person Hanzala Raza; 24.12.2020
comment
developer.apple.com/apple-pay/sandbox-testing Здесь вы есть все подробности об этом. В производственной среде все будет хорошо, но в тестовых средах вам потребуется эта учетная запись либо для входа, либо для Apple Pay. - person MMDev11070; 24.12.2020
comment
вы действительно думаете, что это решит мою проблему? потому что моя кнопка входа в систему Apple отлично работает в xcode, но не работает в testflight - person Hanzala Raza; 24.12.2020