I’m : a programmer, writer, podcaster, geek, and coffee enthusiast.

iPhone OS requirements

Instapaper Pro became a universal iPhone/iPad app with version 2.2.2. I thought that making it universal was obvious: my customers don’t need to pay again for it on the iPad, nobody accidentally buys the iPhone version on the iPad and gets a bad experience, and I get the benefits of only managing one app. Win-win.

Except for one minor issue: the documentation for the SDK was poorly worded and seemed to say that universal iPhone/iPad apps required OS 3.1.3, the most recent version, on the iPhone. I was previously supporting everything from OS 3.0 forward, so this would reduce compatibility.

For all iPod touch owners who already had iPhone OS 3.0, and for all iPhone owners, the 3.1.3 update is free and is nearly three months old. iTunes is aggressive about updates, regularly reminding every device’s owner to update to the latest version until they do. I knew that requiring 3.1.3 would be inconvenient for some people, but I figured that I was offsetting that by the huge value added by making it universal, and I clearly stated in the “What’s new in this version” release notes — well above the “More…” cutoff in iTunes — that this version required 3.1.3.

There were two problems that I didn’t foresee:

In a normal software environment, it would be easy to look at these issues and say that they’re not my problem. But there are a number of factors unique to the iPhone and App Store platform which complicate it:

  1. I can’t give refunds.
  2. App updates are pushed heavily in iTunes and on the device.
  3. That “Update All” button is tempting and widely used. As a result, not updating one particular app indefinitely is a real pain, and most customers are likely to forget and accidentally hit “Update All” at least once.
  4. Once an app has been updated, there’s no good way to get the old version back.2
  5. While the iPhone App Store interface won’t update to an app version that your phone can’t run, iTunes will. And on its next sync, it just deletes any apps from the device whose most recent version, as downloaded by iTunes, isn’t compatible with the device’s OS version.

Effectively, the environment takes something that shouldn’t be my problem and makes it my problem.

So I get emails and Twitter messages every day from people because Instapaper “disappeared” from their phone (see #5), or because I’m requiring a version of the OS that they can’t jailbreak.

for some mysterious reason, it no longer is on my iphone and everytime i try to install it back on through iTunes by checking the checkbox again, it disappears during the sync.

My Pro version is gone from my springboard even though I paid for it. I am on 3.1.2. No plans to update to 3.1.3. Can I get version 2.2.1 (or whichever was the latest build to work with my FW)? Otherwise I am out the money.

I paid $5 for an app just have the developer decide that it wasn’t backward compatible with a “.” release on an Operating System??? I’m sorry but that is unacceptable. I’ve been in Enterprise software development for years and this is a serious mistake. You have a solid application, why ruin it with poor support? Why exactly is 3.1.2 no longer supported???

@instapaper Yay, all we have left to do is getting it to support my iPhone again! It’s been, what, 18 days?

iTunes overwrote the previous version so I have no way of getting Instapaper back without installing the bogus 3.1.3 upgrade (which I will not do).

Most of us don’t run 3.1.3 — not even Steve Jobs. Is there a concrete reason why you require 3.1.3 for Instapaper?

I was initially angry about these, resenting the attitude of entitlement and self-imposed helplessness. But I later realized that it’s not entirely their fault: they bought my app, the update doesn’t work for them, and iTunes makes it difficult, if not impossible, to revert to the previous version.

Fortunately, the aforementioned poor wording of the universal-app documentation was later clarified, and you can actually build universal iPhone/iPad apps against a minimum of iPhone OS 3.0. This is how I built my 2.2.3 update, currently in review and due out soon.

But what happens in the future if I need to upgrade the baseline requirement to use a great new API or maintain compatibility with a new device, and it can’t be jailbroken?

  1. Or it’s a difficult procedure to jailbreak, or something — I don’t care about the details. The problem, whatever the reason, is that a lot of jailbreakers refuse to upgrade to 3.1.3. ↩︎

  2. Geeks can pull an old version of an app’s .ipa file from Time Machine, or presumably hack it out of something else. But for most people, there’s effectively no way to get it back. ↩︎