views:

421

answers:

6

Is it possible to force the user to upgrade once there is a new version of my application available in the iTunes Store?

I am presently working on an application. However, I want to force the upgrade whenever I upload a newer version, because the upgrade will have more features and I want to discard the previous version. Is this possible by default with iPhone or do I have to write my own implementation to check the current version and compare it to the store?

+3  A: 

There's no automated way to do it, you would have to write something manually.

kubi
+1  A: 

The only way system handles updates of your application is prompting user that update is available in standard AppStore application.
Also standalone application is not aware about available updates so you'll need to implement your web service where application can check if the current version is valid.
And I'm not sure if this confirms with Apple rules on applications,like (can't find proof-link though) you cannot upload trial versions for application.

Vladimir
Thanks for the explanation. i shall have to try it coz clear cut upgrade is mandatory for my app. Present version deals with free subscriptions and upgrade has to include payments. Thats the reason i am trying to keep it forced.
Nareshkumar
A: 

Of course there is no way. The user should make the decision if he wants to download a newer version of your application or not.

The AppStore will display if there arenew versions, so I also do not think that Apple will allow this. Also I do not know how you would do this? You could check it via an internet connection, but that's not the way Apple likes and so you won't have a chance to do this.

Tim
+9  A: 

Your business/design plan should never contain the phrase "force the user". People get angry when you make them do something. Imagine a user in a hurry who opens your nifty little app one morning only to discover you are forcing him to upgrade before he can use the app for what he needs. Imagine he's stuck out in the wilds having to use Edge to download. He won't be happy.

If you follow this plan long enough, one of your upgrades will inevitably introduce a noticeable bug. If you force users to use a buggy version they will rebel.

I have been conditioned by experience to cringe whenever I see "more features" used to describe a new version of software because this inevitably means feature bloat. Designers tend to keep grafting more and more features onto apps until one app does everything. This is particularly dangerous on a platform like the iPhone where making one app do to many things rapidly overwhelms the interface and the responsiveness of the app.

Edit01: My comment here http://stackoverflow.com/questions/2219734/how-to-update-an-application-after-users-pay-for-upgrade/2221999#2221999 might also be relevant to your plans. If your upgrade design cuts Apple out of the revenue loop, its a non-starter.

TechZen
Well explained. +1.
finnw
I agree that "Force the User" is really bad behavior. However there are some cases where a forced update path may be relevant. For instance, I came looking for this answer because I have a multi-user persistent server based game (Kind of like a MMORPG), and I need to force an update any time I am adding features to the server that may not be compatible with older versions. However this is an odd use case. Most of the time a better solution can be engineered.
BadPirate
A: 

Sounds like the start of an arms race to me. How long until there is a question on this site or Superuser asking "how do I opt out of forced updates?".

Martin
A: 

If you absolutely have to, you can launch the App Store so that your users can get the latest version from there. I would recommend making this optional, or at least presenting a dialogue first.

// iTunesLink should be your applications link
NSString *iTunesLink = @"http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=284417350&mt=8";


[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];
BadPirate