Мое приложение не проверяется из-за зависания на экране входа.Когда пользователь входит в систему, после того, как приложение получает успешный ответ, оно пытается сохранить или обновить общедоступные веб-учетные данные пользователя.
Приложение было проверено и отклонено Apple, они говорят, что приложение зависает с загрузчикомна экране состояние, которое я не могу воспроизвести и которое не должно быть возможным из-за обработки тайм-аутов, успешных, неуспешных или нераспознанных кодов ответов http.
@IBAction func pressedLogin(_ sender: UIButton) {
OurCustomSpinner.sharedInstance.showSpinner()
let loginOperation = LoginOperation(email: emailTextField.text!, password: passwordTextField.text!)
loginOperation.success = { userItem in
DispatchQueue.main.sync {
// Try to store credentials, we don't care if it succeeds or fails, user should still go to next screen
SecAddSharedWebCredential("midrive.com" as CFString, self.emailTextField.text! as CFString, self.passwordTextField.text! as CFString, { (error) in
// Store user object (would crash if it failed)
DispatchQueue.main.sync {
// Spinner hidden here - line never reached
OurCustomSpinner.sharedInstance.hideSpinner()
// Take user to next screen
}
})
}
}
loginOperation.failure = { error in
DispatchQueue.main.sync {
// Spinner hidden here - line never reached
OurCustomSpinner.sharedInstance.hideSpinner()
self.presentError(message: error.localizedDescription)
}
}
NetworkQueue.shared.addOperation(op: loginOperation)
}
Поскольку приложение никогда не достигает места, где вращающийся элементскрыт, я могу только думать, что веб-запрос завершается успешно (следовательно, нет ошибки тайм-аута), и SecAddSharedWebCredential
почему-то происходит сбой в автоматическом режиме, возможно, из-за конфигурации безопасности на устройствах, используемых для обзора приложений.
Есть кто-нибудьсталкивался с этим раньше, или у кого-нибудь есть идеи, если есть варианты безопасности, которые блокируют общие веб-учетные данные?Он работает локально и правильно заполняет / обновляет пароли и работает для наших пользователей testflight.
Просто чтобы обновить это, я повторно отправил его без строки SecAddSharedWebCredential
, и он прошел проверку в первый раз.