There is a bit of talk around upgrade pricing for iOS apps, and the pitfalls around it and why Apple is not likely to offer it any time soon.
Most of it boils down to:
-
Developers want - need - to charge for upgrades to keep a product viable. This is nothing new, except in the app space.
-
At the same time, users need to be able to stick with an old version they have paid for, and even get updates if required.
-
A developer can release a whole new app (as Tweetie 2 did), but everyone has to buy it again. This is fine, as the price is pretty low, but it does p' off a lot of people - cue one star reviews and the like.
-
A developer could put the new features behind a In App Purchase "wall", so that existing people don't lose functions, but if they want the new stuff, they have to pay. This is a fair bit more work for the developer tho.
I think a possible solution to this could be:
-
The developer releases My App as normal. It has a SKU of MYAPP-1 (all iOS apps have SKU's, even if the user never sees them). They can continue to release new versions on this SKU as normal. This is how it works now.
-
The developer makes a new app called My App 2 (or maybe it's handled without changing the name) with a SKU of MYAPP-2. In the setup in iTunes Connect, it's linked to MYAPP-1 with an upgrade price. iTunes knows if the user has MYAPP-1 using the same system as they use for re-downloading anything.
-
The developer can setup a normal price and an upgrade price (for people who own MYAPP-1).
-
The developer could setup a temporary price for upgrades - if you upgrade within a week, it's 99c, then its 1.99 to upgrade. The upgrade and full price are totally independent, but work the same way the current pricing does.
-
The developer can release updates (eg for security) on MyAPP-1 as needed - it's still a valid app, maybe the appstore says "this isn't the latest version anymore", or the app is flagged as "no new sales" so new users can't buy it, but existing users can re-download and get fixes.
I think this addresses most of the problems that the likes of Marco Arment have brought up on Build and Analyze... Some apps - eg Byline - did this already, by checking if the phone can respond to a specific URL pattern (eg byline1://). If it can, it means you have v1 installed, and v2 (which used IAP to get the nice features) would auto-enable the paid-for version. But that requires the whole IAP infrastructure to be used, and a new, limited function (but free) version to be released.
What did I miss? Of course, it requires Apple to WANT to do this, which may actually be the problem, as they are not short of people who could implement or think this up - I doubt this is something they have not thought about already.