Explaining the TidBITS News App Version Confusion
As many of you have noticed, version 1.2 of the TidBITS News app has appeared in the App Store. The chief goal of this version is to support iOS 4’s multitasking (see “What is Fast App Switching?,” 23 June 2010). We also modernized the way the app presents its interface when playing a podcast, and updated the graphics to look nice on the iPhone 4’s Retina display.
But these feature updates, though surprisingly non-trivial to achieve, aren’t the subject of this article. The reason I’m writing this article is to explain why some people still using iOS 3 – either on an iPad because that’s all it runs right now, or on an older iPhone or iPod touch that doesn’t support iOS 4 or hasn’t been upgraded to iOS 4 – are receiving an error dialog from iTunes complaining that TidBITS News requires a newer version of iOS.
Put simply, if you are using iOS 3 and you get this error dialog from iTunes, I recommend selecting the “Do not warn me again” checkbox and clicking OK. You aren’t missing out on anything by not getting the update, and the version of TidBITS News you’ve already installed will continue to work fine. The people who are hurt are iPad users and users of older iPhone and iPod touch models who never installed the TidBITS News app in the first place, since now they can’t obtain the app at all. But let me explain what
The first version of the TidBITS News app (1.0) was developed to run under iOS 3.1.2, because that was current at the time. When the iPad appeared, sporting iOS 3.2, TidBITS News ran in emulation mode on it; this was acceptable, but a bug in iOS 3.2 caused the app to behave differently than it did on iOS 3.1.x, so we issued a new version (1.1) that fixed the problem. TidBITS News then ran fine on iOS 3.1.x and in emulation mode on the iPad on iOS 3.2.
When iOS 4.0 appeared, it was necessary to revise TidBITS News once more, to be a good multitasking citizen. But these and other changes necessary for compatibility with the new system meant that it would be difficult to maintain backwards compatibility with iOS 3.1.x. So we decided to drop future support for iOS 3.1.x, figuring that the vast majority of iPhone and iPod touch users who would be likely to get the app would have updated to iOS 4.0 anyway.
At the same time, we expected TidBITS News to continue working in emulation mode on the iPad, for which Apple has not yet issued its iOS 4 update. To ensure this, we set the app in Xcode to have a Deployment Target of iOS 3.2. The Deployment Target is the earliest system version on which you are willing for your app to run. And, sure enough, we then tested the new version of the app (1.2) both on devices running iOS 4 and on iPads running iOS 3.2 or 3.2.1, and everything worked fine.
Then it came time to submit the app to the App Store via Apple’s iTunes Connect administration site. When I tried to upload the binary of the file to iTunes Connect (first via the Web site, and a subsequent time via Apple’s Application Loader utility), it failed with this error:
The binary you uploaded was invalid. An application targeting the iPhone device family may not require an iPhone OS Deployment Target of 3.2, which is an iPad-only OS.
This was a puzzling error, because it was clear from our experience that an iPhone application may perfectly well require an iPhone OS Deployment Target of 3.2, since our app did and in our testing it worked precisely as desired and expected. Matt Neuburg (the developer of the TidBITS News app) queried iTunes Connect support, pointing this out, and was sent what amounted to a canned response advising him to make sure the app was compatible with iOS 4. This response was completely irrelevant and unhelpful, since the app was iOS 4-compatible. Next, I asked iTunes Connect support the same question. The canned non-answer I received told me to read the iTunes Connect Developers Guide and the Developer Program Overview, neither of
which address our question at all.
When I pushed further for an actual answer, or at least some information that was related to the question, iTunes Connect support simply told us to use a Developer Technical Support incident. Since this back-and-forth had taken weeks, not days, we were too frustrated to wait any longer.
So Matt simply gave up, and set the app’s Deployment Target to iOS 4. After that, iTunes Connect accepted it, and after the requisite 11 days or so in purgatory (only 1 of which was spent in review), it was approved. The result is that it is now available, but you can’t obtain it for the iPad, even though we know that it could run perfectly well on the iPad in emulation mode (when the Deployment Target is iOS 3.2). In fact, all of us at TidBITS are running TidBITS News 1.2 on our iPads, supplying it to ourselves via Ad Hoc Distribution. So we can do this, but you can’t, because of the App Store’s inexplicable refusal to accept the iPad-compatible build of the app. Sorry!
We’re well aware that this isn’t an ideal situation. There are a variety of solutions:
- Apple could change iTunes Connect such that it accepts our app, since it doesn’t seem as though there’s any reason it shouldn’t be accepted. That seems unlikely.
- Apple could release iOS 4 for the iPad. This will indeed probably happen within the next month or three. At that point, the TidBITS News app should become available for iPad users again at the App Store. At most, we’d have to recompile and resubmit, and it’s unlikely that we’d have to do even that.
Matt could create an iPad-native interface for the TidBITS News app, such that it would be native on all the iOS hardware platforms. This is a reasonable idea, but it hasn’t happened yet. (Free app, limited time, our Web site looks good on the iPad, insert all the usual excuses…)
Regardless, we regret any confusion that this situation has caused, and we ask you to understand that the problem stems from Apple’s policies and lack of communicativeness, not from anything we intended to have happen.
If you do have an iOS 4 device, I’d encourage you to take a look at the app for a clean and simple TidBITS reading experience that works whether or not you’re online. And if you have an iPad or an iOS 3.1.x device and you’re already running TidBITS News 1.1, it will continue working just fine.
You should have listened to Apple and read the docs. Set the target correctly to 3.2 and the devices to iPad and iPhone in Xcode. Then it will run on iPad or iPhone.
Oh, I.get it now, you want it to still use pixel doubled. Situation is as you described: only other option is to target 3.1.3, then. It really shouldn't be hard to be compatible with both.
Maybe I'm missing something but I find it curious that your solutions don't include "find the problem and fix it". I mean there are a ton of applications in the app store that support proper multitasking (iOS4) and work fine (in emulated mode) on the iPad and sometimes even on the iPhone with just iOS 3.0. So it's not like there's only some super exotic solution to your objective (offer multitasking and no iPad-native interface). Now you may have an exotic problem because of the way you coded your app, but I can hardly see how that's Apple's fault (what you basically listed as your first and second solution). BUT obviously the support and responses from Apple were really weak and not very helpful.
We'd happily fix the problem if we could, but since it is entirely within iTunes Connect (the app runs fine on our test machines), without some hint from Apple regarding what iTunes Connect doesn't like, it's nearly impossible.
Be sure to double-check your build settings. Xcode can target different iOS versions depending on whether you're building for distribution, or testing, or whatever.
It can become extremely confusing but we figured it out for our app. You can build apps with 4.x multitasking awareness that still run on 3.x devices. iForum does this just fine.
Let me know if you need any help you know how to get ahold of me.
Can I simply drag my old TidBITS News app out of the trash and back into Music:iTunes:Mobile Applications (overwriting the newer one that won't run on my v1 iPhone)?
Yes, if that's necessary, it should work fine.
Why Apple has decided to splinter the iOS into separate iPhone and iPad lines is beyond me. Now we have iOS for iPhone 4.0.x and iOS for iPad 3.2.x. By the time the latter reaches version 4.0.0, the former will probably be at 4.1.x.
This makes as much sense as would a "Mac OS for Mac Pro" and a "Mac OS for iMac" More and more, Apple is aping Microsoft.
It's widely believed that iOS 4.1 will bring the devices together. The disparity now is mostly because the iPad was a separate side project kept secret from many of the iPhone team members.
"This makes as much sense as would a "Mac OS for Mac Pro" and a "Mac OS for iMac".
You mean like OS X for Mac and OS X Server for XServe?