# Oh apple...
The longer I develop for ios and osx the more I understand the frustration...
of other developers and why the pricing on ios is higher than on android.
Usually I try to stay away from complaining too much about a brand but in this case it was just too frustrating.
But what happened?
tl;dr; iOS behaves differently if an app is installed via the app store or TestFlight.
I've released an app update on ios. The update itself was in TestFlight for beta testing for a couple of weeks (by ~900 people) and there were no reported crashes. Since it all looked fine I released the app, apple approved it 24h later. All good right? Wrong! In the next couple of hours after release I was bombarded with emails and 1 star ratings about the app crashing.
How could that happen? Did I mess something up?
After scratching my head for a bit I looked at the crash reports and they are indeed valid. In this case I've tried to change the idleTimeout (the thing that keeps the screen turned on) from a non UI thread. This caused the crash, and it was something I could fix.
As another dev noticed this issue starts appearing out of nowhere.
But why did no one else notices the issue before the release? Well here comes the frustrating part: It only happens if the app is released.
For whatever reason iOS doesn't complain about this issue if the app is not installed via the app store. So it was fine for every tester until they installed the app from the app store. I could reproduce this behavior easily: Install via TestFlight, all fine. Install the same app via the app store: All broken.
Since the fix was easy I already submitted it to apple and hope it gets approved quickly.
But the most frustrating part is that most of the end user do not care who's fault it was or why the issue hasn't been detected before the release.
All they see is a broken app, and I'm the one receiving bad ratings (which btw never get updated, even if the issue is fixed and I reply to every single one of them..).
Thanks apple.