Я застрял, выясняя, как исправить ошибку «Это приложение изменяет ошибку автозапуска из фонового потока». Любая помощь приветствуется.«Это приложение изменяет ошибку автоопределения» (Swift iOS)
Я пробовал подход, очерченный от this similar question, для использования dispatch_async (dispatch_get_main_qeueu()), но он не решает проблему. Я использую его неправильно?
От отладки Я выделил, что вызов Firebase для сброса пароля пользователя является, по крайней мере, частью проблемы. Когда я оставляю этот код, ошибки не возникает.
Соответствующий код и полное сообщение об ошибке ниже:
//MARK: - Forgot Password Button Tapped
@IBAction func forgotPasswordButtonTapped(sender: AnyObject) {
let userEnteredEmail = emailTextField.text
//Have Firebase send email to reset password
dispatch_async(dispatch_get_main_queue(), {
FIRAuth.auth()?.sendPasswordResetWithEmail(userEnteredEmail!, completion: { error in
if error != nil {
//Tell user that the user name or password is incorrect.
let errorCode = error!.code
switch (errorCode) {
// Error code handling alerting user to issue.
}
}
else {
//Send user to the forgot password screen.
self.performSegueWithIdentifier("toForgotPasswordViewController", sender: self)
}
})
})
}
}
Полная ошибка брошена:
This application is modifying the autolayout engine from a background thread, which can lead to engine corruption and weird crashes. This will cause an exception in a future release.
Stack:(
0 CoreFoundation 0x000000010a87dd85 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x000000010c6a5deb objc_exception_throw + 48
2 CoreFoundation 0x000000010a87dcbd +[NSException raise:format:] + 205
3 Foundation 0x000000010adf8b6b _AssertAutolayoutOnMainThreadOnly + 79
4 Foundation 0x000000010adf8a62 -[NSISEngine _optimizeWithoutRebuilding] + 49
5 Foundation 0x000000010ac57c0f -[NSISEngine optimize] + 46
6 Foundation 0x000000010ac5842d -[NSISEngine withBehaviors:performModifications:] + 245
7 UIKit 0x000000010b9e6adb -[UIView(AdditionalLayoutSupport) _withAutomaticEngineOptimizationDisabledIfEngineExists:] + 58
8 UIKit 0x000000010b9e761e -[UIView(AdditionalLayoutSupport) updateConstraintsIfNeeded] + 254
9 UIKit 0x000000010b9e8333 -[UIView(AdditionalLayoutSupport) _updateConstraintsAtEngineLevelIfNeeded] + 272
10 UIKit 0x000000010b19ca96 -[UIView(Hierarchy) _updateConstraintsAsNecessaryAndApplyLayoutFromEngine] + 159
11 UIKit 0x000000010b1ac980 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 703
12 QuartzCore 0x0000000109e05c00 -[CALayer layoutSublayers] + 146
13 QuartzCore 0x0000000109dfa08e _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 366
14 QuartzCore 0x0000000109df9f0c _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 24
15 QuartzCore 0x0000000109dee3c9 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 277
16 QuartzCore 0x0000000109e1c086 _ZN2CA11Transaction6commitEv + 486
17 QuartzCore 0x0000000109e1c378 _ZN2CA11Transaction14release_threadEPv + 224
18 libsystem_pthread.dylib 0x000000010d4d7387 _pthread_tsd_cleanup + 470
19 libsystem_pthread.dylib 0x000000010d4d6f63 _pthread_exit + 117
20 libsystem_pthread.dylib 0x000000010d4d5582 pthread_attr_getschedpolicy + 0
21 libsystem_pthread.dylib 0x000000010d4d3341 start_wqthread + 13
)
Спасибо за любые идеи или мысли!
вы проверить, является ли FIRAuth callback находится в основном потоке? – mbutan
Это почти наверняка нет. Сделайте еще один dispatch_async в основной поток в обратном вызове FIRAuth. – par
Не могли бы вы уточнить, что вы имеете в виду, если обратный вызов FIRAuth находится в основном потоке? Я знаю достаточно, чтобы быть опасным с Firebase и iOS, но я не эксперт. Не знаете, куда вы скажете эту другую отправку_async. Благодарю. – Ben