At some point, you’ll likely need to drop support for an older version of your app. Perhaps a critical bug popped up, or it’s just calling an outdated version of your API—either way, you need your users to upgrade.

The problem is, once someone downloads a version of your app, there’s no taking it back. Until they upgrade, they’ll be using the outdated release, and, depending on how they’ve configured their phone, that might be a while. So how do you gracefully discontinue the old version of the app? You have two options:

Ignore it and hope they upgrade, potentially losing frustrated users in the process Gently push your users to the new version, using a remote kill switch

Obviously, the first option is terrible. Whether it’s a bug or you’re breaking backwards compatibility, the user experience is going to be awful. Worst case, they just completely leave the app and never even see the shiny new version you released.

That’s why option #2, which I like to call the “kill switch”, is by far the best way to do it. When users visit your app, instead of crashes, they might see something like this:

Isn’t that a lot nicer?

Setting up your Kill Switch

The tricky thing about setting up your kill switch is you need to do it before any problems pop up. The good thing is, it’s not that difficult to do (and you should always be thinking about the future, anyway). The simplest version of your remote switch might look something like this:

A “minimum version” file: On a server somewhere, you should have a text file that contains the minimum supported version of your app. So, if you don’t want to continue supporting any versions older than, say, 1.5.4, this file would just contain 1.5.4 . This should be somewhere the app can access, with a URL that won’t change. The kill switch check in your app: In your app’s startup process, it should download the minimum version file and compare it to the app’s current version. If the app is no longer supported, it should pop up an alert, letting the user know they need to upgrade. Depending on the complexity of your app, you may also need to disable any startup API calls as well.

Now, when you need to invalidate an older version of the app, open up that static file, increase the version number, and just like that, your users will be asked to upgrade.