Моя репутация недостаточно высока, чтобы комментировать, но у меня произошел тот же сбой, который только начал происходить на iOS 12. Я отправил отчет об ошибке в Apple, так что, надеюсь, он скоро будет решен.
На основе трассировки стека происходит сбой при попытке очистить висячие ограничения, поэтому одним из возможных обходных путей, который вы можете попробовать, является удаление всех ограничений перед удалением представления.
extension UIView {
func removeAllConstraints() {
let superViewConstraints = superview?.constraints.filter{ $0.firstItem === self || $0.secondItem === self } ?? []
superview?.removeConstraints(superViewConstraints + constraints)
}
}
... а затем, прежде чем вид будет удален, просто позвоните:
view.removeAllConstraints()
Я не уверен на 100%, что это сработает, потому что я сам не смог воспроизвести аварию, я видел только ее всплывающую подсказку в службе аналитики аварий, которую я использую.