The headline is misleading, inasmuch as it is difficult to believe that this was either accidental or an attempt to serve users. «Sneakily» is sort of misleading too. «Brilliantly deceptive» fits better. Makes for a really awkward headline, though.
One of the contentious aspects of Apple’s App Store (both the iOS and OS X flavors) is the lack of support for application upgrade paths. This has some short-term customer benefits; for example, app upgrades are usually free. When a developer thinks it is time to get paid for a new version said developer must create a whole new app, which customers have to buy all over again. Therefore people who purchased WhizBangApp version 5.7 and want to continue to have supported software, must buy WhizBangApp 2 version 1.0.
Apple doesn’t officially have a way to offer discounts for people with earlier versions upgrading to a newer one, either. But there are clever developers like the developers of Goodreader who have figured out that they can offer an App Bundle with the old version and the new one, where people who have already purchased one part of the bundle pay a lower price to complete the bundle.
«Legacy» iOS devices (almost anything older than about two years1) have historically been stranded, not only by Apple but also by app developers who update existing apps, targeting versions of iOS which make them potentially incompatible with — and therefore unavailable to — people running older versions of iOS.
Note the word potentially above. The way that Apple’s application developer tools work, in order to make an application for the App Store, you must create targets in your project for each version of the OS. As APIs change, maintaining these separate targets becomes burdensome, especially for smaller developers. The API hooks that an application actually uses may not have changed between revisions, but the developer must treat each revision separately. Developers wanting to use new features of iOS often have to choose between legacy support and new features unless they want to put a considerable amount of time in to preserving legacy support.
Historically, the only way to install older versions of an iOS app which might be compatible with one’s older device required jailbreaking the device, something most users won’t do.2
A new hope
Back in September of 2013 Apple-friendly blogs everywhere demonstrated the depths of their Stockholm syndrome by heaping praise on Apple for something that they should have done from the beginning: allowing the installation of the latest supported version of an app if the newest version cannot be installed on the iOS version of a particular device. Apple snuck this feature out without much mention, but once it was known this fact made the rounds.
The empire strikes back (at us)
Though many people were pleased at the newfound ability to redownload their apps, others were disappointed to find that when they tried to install an older app, instead of the new «Download an older version of this app?» message, were still greeted with, «You must update to iOS 7.0 (or whatever version) in order to download and use this application.» Many users, initially celebrating at the opportunity to, for example, watch streaming Netflix movies on their first-generation iPad, found that Apple still would not allow them.
Though I have a third-generation iPad for my personal use, I also have a first-generation iPad3 which I keep for testing. I use it infrequently, but thanks to a project where I have to support the older devices I started to poke around on the first-gen iPad.
A friend (we’ll call him Sam because that is his name) has a first-generation iPad as well, but unlike mine, his is the tablet that he actually uses4. It was given to him when a mutual friend bought her iPad Mini, and since he has found himself frustrated by the limited selection of apps available. Seeing firsthand that he was unable to install apps, I assumed that what I had heard about Apple permitting legacy versions to be installed was simply wishful thinking and/or misheard rumor. We’ve talked several times about jailbreaking the device, or finding some way to fool it into installing some old version of some apps that he couldn’t get.
Return of the (i)Jedi
Having retrieved the first-gen iPad from the (figurative) mothballs, I tried my hand at finding applications that I could install. At first my efforts were stymied; indeed the applications that are available for iOS 5 or below are few and far between.
Sometimes with Apple what seems like it ought to work doesn’t. This is often done in the name of simplicity. Similarly in the name of simplicity, sometimes Apple makes things work even while they tell you that it won’t.
From the first-generation iPad, all the descriptions of apps on the App Store sound depressing: requires iOS version 6, or 7, or 8. There is no mention that one might procure an earlier version. And as Sam found out, attempting to install those apps resulted in a disappointing message.
That is, of course, until I tried it. On my iPad, at least on some apps, I was presented the opportunity to download the latest version that would be compatible with my device. Soon enough, I had a number of those applications my friend cannot install: PCalc, Byword, Dropbox, SpiderOak, Notefile, Telegram, 2Do, iSSH, ownCloud… all of which are unavailable on iOS 5.
Thinking that something had recently changed to make the promised legacy version availability happen, I asked Sam to give it another try. Again he was frustrated to find that he could not install those apps on his first-gen iPad which I had just installed on my own first-gen iPad.
The difference: when I tried to install those apps, the store knew that I had already bought them. I’ve been using iOS for years. Most of the apps I’d have any interest in (and I few that I don’t) I’ve already bought.
It turns out that Apple will let you download the newest compatible version of an app so long as you’ve already bought it. It will not allow you to buy an app so that you can download an earlier version.
In true intuitive Apple form, they’ll let you have it so long as you don’t want to pay them for it.5
The logic is fairly obvious: Apple does have some responsibility not to yank the rug out from under the feet of the people who have already paid for software. But the faster the hardware becomes obsolete, the faster they sell more units. This scheme is essentially a way to discourage people from getting secondhand iOS devices. A first-gen iPad with the software available for it is basically no more than a web browser that you can hold in your hand. But a first-gen iPad for which you can get the apps that made it useful, that could have a lot of life left in it. Every device more than two years old that still lets people do the things they want is a brand-new device that Apple won’t sell. Or at least, that’s the thinking.
Then it occurred to me: some of the apps I’d installed over the past couple of days are apps that I installed after I had my third-gen iPad. So here is the question of the day: can I install an app on a compatible device, then install the older version on the older device? Turns out the answer is yes.
To test, I had to find an app that had been around for a while and which I had never installed. Well, I never had a Netflix account until I got a gift card for Netflix for my birthday at the end of the year. It’s one of the apps Sam was hoping to be able to run on his iPad and it’s one I’ve never installed.
First, I had to make sure that despite having downloaded legacy versions of other apps that Apple would prevent me from installing Netflix. A quick trip to the App Store confirmed: my attempt to install the Netflix app resulted in a message telling me I had to upgrade to iOS 7 in order to install it.
So I went to my newer iPad, installed the Netflix app, went back to the first-gen iPad and tapped on the «get» button. This time, the App Store asked me if I’d like to download the most recent compatible version. And you know what? this 2010 iPad, purchased less than two weeks after they first went on sale, still streams high-definition video exceptionally well. Better than my third-gen iPad which, due to having to control four times as many pixels and cram ten times as much operating system overhead into four times as much memory, can’t play an already-downloaded video unless I put it in airplane mode. If the iPad tries to do as much network activity as receiving an instant message at the same time video is playing, it will crash and spend over ten minutes rebooting.
Legacy versions of apps for older versions of iOS does not require a jailbreak or DMCA violations. All that’s required is to have a friend with a newer iOS device who likes you enough let you sign in on their device and buy the app you want. Later, install the old version on your old device. I’m guessing that means backing up friend’s device, wiping it clean, reinstalling with your account, and then restoring from your friend’s backup. That would have to be a friend who liked you a lot, but it’s far from impossible. Alternately there are a lot of people out there who are buying newer devices. Maybe catch one of them before they sell their old one, but after they have wiped it.
The idea of rewarding Apple for this perverse policy is troubling. More troubling, however, is the thought of letting them get away with enforcing the planned obsolecence of their devices. I’d rather see them get a few bucks here and there than see perfectly good hardware go to waste. Besides, there are a lot of free apps out there which this policy prevents a new owner of an older device from enjoying.
It’s bad enough that the march of technology makes older devices seem obsolete, even when they are still capable of amazing and useful things. It’s slimy of Apple to prematurely kneecap the useful life of their own products in hopes of selling new ones or at least preventing the life of the old ones in the aftermarket. One way or another, we ought to keep these devices running and make sure that people can use them with the software that is available, even if that software is a version or two back.
- The oldest iOS devices to support iOS 8: iPhone 5 was released September 21, 2012; iPod Touch (5th generation) was released October 11, 2012; iPad 2 was released March 11, 2011, meaning that the current revision of iOS can be run on only one model of iOS device older than two and a third years old, and zero as old as four years. ↩
- By the way, apps can be removed from the App Store entirely, not only preventing people from purchasing legacy versions but making it impossible for people who already purchased the software to reinstall. The beloved PocketMoney cannot be downloaded from Apple by any means. (The tragic passing of Hardy Marcia, PocketMoney’s developer and an pioneer of handheld computing — unfortunately leaves the app unsupported anyhow.) ↩
- Fun fact: the «top end» original iPad (the one with 3G wireless in addition to WiFi) was model A1337. If you don’t get the significance of that, you may not be 1337. ↩
- Also, it’s model A1219, which raises the question whether Apple really had one hundred and eighteen products to number in between the Wifi iPad and the Wifi/3G iPad, both released the same day. ↩
- To be fair, they won’t let you have it if it’s free, either. ↩