Производственная сборка iOS / Swift аварийно завершает работу без сообщения об ошибке - PullRequest
0 голосов
/ 21 сентября 2019

Я часто получаю сбои в Firebase Crashlytics (проверено на Sentry - то же самое) без какого-либо значимого сообщения об ошибке.Все эти SIGABRT ABORT 0x, EXC_BREAKPOINT 0x и т. Д. Я новичок в iOS и в целом к ​​собственной разработке (используется для сред выполнения Android и .NET, где большую часть времени вы получаете сообщение об ошибке, помимо трассировки стека).Я скучаю по чему-то, и это обычный материал для производственных сборок iOS?Если так, то как можно это отладить?Просто трассировка стека и номер строки не отвечают точно, что произошло.Могу ли я ожидать, что номер строки будет как минимум на 100% правильным?

Обычный сбой выглядит следующим образом:

Crash: Thread #1
EXC_BREAKPOINT 0x00000001011e3d78
Crashed: Thread
0  App                            0x1011e3d78 TrackMyLocationService.determinateActivityType(withGeoCoordinate:) + 154 (TrackMyLocationService.swift:154)
1  App                            0x1011e2b70 closure #1 in TrackMyLocationService.start() (<compiler-generated>)
2  App                            0x1011c3e8c thunk for @escaping @callee_guaranteed (@guaranteed CLLocation, @unowned Bool) -> () (<compiler-generated>)
3  RxSwift                        0x1035415f0 closure #1 in ObservableType.subscribe(onNext:onError:onCompleted:onDisposed:) (<compiler-generated>)
4  RxSwift                        0x1035417f0 partial apply for closure #1 in ObservableType.subscribe(onNext:onError:onCompleted:onDisposed:) (<compiler-generated>)
5  RxSwift                        0x1034f7360 AnonymousObserver.onCore(_:) (<compiler-generated>)
6  RxSwift                        0x103544068 ObserverBase.on(_:) + 25 (ObserverBase.swift:25)
7  RxSwift                        0x1035441b8 protocol witness for ObserverType.on(_:) in conformance ObserverBase<A> (<compiler-generated>)
8  RxSwift                        0x103542bdc ObserveOnSink.run(_:_:) + 118 (ObserveOn.swift:118)
9  RxSwift                        0x103543e40 partial apply for thunk for @escaping @callee_guaranteed (@unowned @callee_guaranteed () -> ()) -> () (<compiler-generated>)
10 RxSwift                        0x103551c4c partial apply for thunk for @escaping @callee_guaranteed (@in_guaranteed A, @unowned @callee_guaranteed (@in_guaranteed A) -> ()) -> () (<compiler-generated>)
11 RxSwift                        0x103551238 closure #1 in RecursiveImmediateScheduler.schedule(_:) (<compiler-generated>)
12 App                            0x1010bc71c partial apply for thunk for @escaping @callee_guaranteed (@in_guaranteed ()) -> (@out Disposable) (<compiler-generated>)
13 App                            0x1010bc8a8 partial apply for thunk for @escaping @callee_guaranteed () -> (@out Disposable) (<compiler-generated>)
14 App                            0x1010bc71c partial apply for thunk for @escaping @callee_guaranteed (@in_guaranteed ()) -> (@out Disposable) (<compiler-generated>)
15 App                            0x1010bc8a8 partial apply for thunk for @escaping @callee_guaranteed () -> (@out Disposable) (<compiler-generated>)
16 App                            0x1010bc50c closure #1 in SingleBackgroundThreadScheduler.work() (<compiler-generated>)
17 App                            0x1010bc870 partial apply for thunk for @callee_guaranteed () -> (@error @owned Error) (<compiler-generated>)
18 libswiftObjectiveC.dylib       0x1e21f9d3c autoreleasepool<A>(invoking:) + 64
19 ???                            0x59ca81010bc424 (Missing)
20 App                            0x1010bc788 partial apply (<compiler-generated>)
21 App                            0x10127da1c thunk for @escaping @callee_guaranteed () -> () (<compiler-generated>)
22 CoreFoundation                 0x1b357549c <redacted> + 24
23 ???                            0x27df01b3fd061c (Missing)
24 ???                            0x755881b4106c54 (Missing)

1 Ответ

0 голосов
/ 25 сентября 2019

Причина, по которой в iOS иногда возникают подобные ошибки, а в .NET - в том, что Swift и Objective-C скомпилированы в сборку для архитектуры.C # компилируется, но с байт-кодом, который не совсем работает на оборудовании.Иногда код, с которым Swift компилируется, не имеет связанного сообщения об ошибке, потому что ошибка произошла в самой сборке.

Вот еще некоторые сведения: Область причин сбоя EXC_BREAKPOINT

...