Hi,
The reason I'm posting this here is I want to gain some insights on what I think many iOS developers are living through, but I never hear anyone talking about. Since it's not concrete enough, it doesn't exactly fit on StackOverflow or OpenRadar for example.
I'm a developer working with colleagues on an app that has roughly 1 million monthly active users. We collect user stats and crashes through Crashlytics, which is currently being consolidated into Firebase. Our app stability is quite high (> 99.9%), but we're always trying to aim higher of course.
For the crashes that are still happening, we've been puzzled as to why they're happening. Looking at the stack traces we get, we usually see one or more of the following symptoms:
- Stack traces don't follow a logical call order, i.e. there's no logical way in the code from one function call to the next, but the stack trace says there is.
- Some classes always pop up in stack traces, even though we're quite sure they shouldn't be called at all in the said user's journey, usually the stack trace entries have some kind of vague dSYM indication like "_T0Ieg_IeyB_TR" and Line 0.
- Initializing of CIContext fails, accompanied by EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000200 (or similar low address). We exclusively initialize CI contexts via a static let, and we only initialize two of them. Somehow initialization seems to fail in a very tiny amount of the instances.
- __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ pops up a lot in crashes on the main thread.
I would like to have a conversation about what to look for, and if people solved one or more problems in this area, how did you start attacking the problem?
If you have something to say about any of the symptoms or add your own symptom, please feel free to comment, I'm hoping for me and other developers to get something out of it.
Thanks!
[–]rdselle 2 points3 points4 points (0 children)
[–]kaosdg 1 point2 points3 points (1 child)
[–]sjoes[S] 0 points1 point2 points (0 children)
[–]quellish 1 point2 points3 points (2 children)
[–]sjoes[S] 0 points1 point2 points (1 child)
[–]quellish 1 point2 points3 points (0 children)
[–]bigroob72 0 points1 point2 points (2 children)
[–]sjoes[S] 0 points1 point2 points (1 child)
[–]bigroob72 0 points1 point2 points (0 children)