I've been a programmer for decades and I write my share of mobile apps. I write in many languages and for many platforms so I'm not married to any particular target system. I am in the middle of a project and have some beta testers running an iOS app with OTA updates using a OTA provisioning profile which is a fancy way of saying users can update apps over the air without needing to use the app store. My provision profile, a digital signature like thing, expired in November and the users needed a new version of the app to keep testing. I opened up my MacBook and it informed me that XCode 5 was available and "would I like to update it?" Sure, why not? Well, I can tell you why not. XCode 5 made software written in previous version not work! Significant rewrites needed to be done in order to do any changes and there was no option to compile for previous version. In short, an errant software update created two weeks work. Nowhere in there notice to update did it say clicking YES will cost you $10,000. This is screwed up! Backward compatibility should be available for development. If they want to no longer accept iOS6 apps into the store, that is fine. I should be able to compile old code without error by selecting the correct target device. This sort of thing actually makes their previous devices worthless because if they cannot run iOS7 then no new software can be written for them again. It is a such a waste. I am pissed at these guys.
I am able to take a previous compiled binary and sign it with a new profile so that the users are still able to work, but now even the most minor change requires a rewrite. These guys seem to forget who made them rich. It was devs making awesome software which made people buy their products in huge numbers. iTunes integration will only sell so many phones.