Blog Home

A Tale of Bad UX

A few weeks ago, I completed my iOS App Instant Webcam and eagerly submitted it to Apple for review. They approved it about a week later and I was free to sell it in the AppStore. About 30 minutes later my App showed up when you searched for it. All ready to launch I thought.

Before publishing the accompanying blog post and tweeting about it, I tested the App one last time: I downloaded it directly from the AppStore on my iPhone and made sure it works. Which it did. Then, just to see what it looks like, I searched for the App on my iPad 1, which as you know doesn't have a camera. You shouldn't be able to download the App on a camera-less device at all. The AppStore should indicate this, but It didn't.

You could still download the App just fine on the iPad 1, despite the device having no camera to use it. When you start the App, it instantly crashes.


Of course this was my fault. I forgot to set the appropriate key for UIRequiredDeviceCapabilities in the App's Info.plist file - namely the video-camera key that tells the AppStore that this App indeed requires camera capabilities.

You can't test this at all before submitting your App for review. There's no "staging area" where you can see how your App will look like in the store. This bug only presents itself after release. You can't test for it beforehand. Apple's review process should probably have caught this bug, but didn't.

The UIRequiredDeviceCapabilities property only affects the presentation in the AppStore, yet it has to be set in the App directly. Which means in order to change this you have to recompile your App, submit it for review again and wait a week or two till it's approved. Not fun.

Worse still, you can't release an update for your App that requires features that your original version did not require. So this bug that only presents itself after release is essentially unfixable.

The official way to "mitigate" this, confirmed via iTunes connect support, is the following.

Suffice to say, you can still download Instant Webcam on your camera-less iPad or iPod and have it crash immediately.

Tuesday, October 29th 2013
— Dominic Szablewski, @phoboslab


#1PypeBros – Wednesday, October 30th 2013, 15:15

Does Apple allow the app to download a "complement" before it is first run ? I'm thinking at the sort of complement that could inform the user of erratas, redirect him to another (updated) application or similar things (a did-you-know message or a custom splash screen more than code, actually).

#2 – Ryan – Saturday, November 2nd 2013, 20:06

I had the exact same problem with an app I built for a client. We ended up releasing an update that checks for camera capabilities at app launch, displaying an error message on devices with no camera. It's not ideal, but at least it doesn't crash. Also make sure you have a very visible disclaimer in your app description.

#3Friv 3 – Thursday, June 12th 2014, 10:10

I real glad to uncover this web internet site on google, just what I was searching for : D likewise saved to bookmarks.

#4Nathan Duke – Sunday, June 29th 2014, 12:16

I totally dig Instant WC, but would LOVE it if the same features / camera controls the appear in the iOS UI showed up in the browser feed window. Is this even remotely (n.p.i.) possible?

#5Renas – Tuesday, April 7th 2015, 20:29

Also it has pharmacy related websites, tourism sites, travel pages, Worldwide travel, travel business, travel industry, travel link, travel url,travel add.

#6 – compare – Friday, April 24th 2015, 18:54

my nine-year old and i have been working on a few simple cross stitch kits lately. i was thinking of getting the black canvas and designing our own. think i might, thanks for the nudge!<a href="">compare</a>

#7Sienna Preston – Thursday, July 30th 2015, 14:03

I agree that UIRequiredDeviceCapabilities only affects the use of App store. Thanks for sharing this! Find more details at