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.
Shit.
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.
- recompile your App with a new version number and name
- submit this update to Apple for review
- wait till the update is approved. This will free the original App name
- delete your App from the store
- add the desired device capabilities to your App's
- recompile your App with the old version number and original name
- submit this as new App to Apple for review
- enter all your metadata, descriptions and screenshots again
- wait till your App is approved
- publish your App
Suffice to say, you can still download Instant Webcam on your camera-less iPad or iPod and have it crash immediately.
7 Comments:
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).
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.
I real glad to uncover this web internet site on google, just what I was searching for : D likewise saved to bookmarks.
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?
Also it has pharmacy related websites, tourism sites, travel pages, Worldwide travel, travel business, travel industry, travel link, travel url,travel add.
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="www.paidshop.com/compare/">compare</a>
I agree that UIRequiredDeviceCapabilities only affects the use of App store. Thanks for sharing this! Find more details at valwriting.net/custom_essay.