We had a very pleasant surprise yesterday when the App Store opened and we found that our stop motion app, Smoovie, had been chosen as a staff favourite. But we quickly discovered we had a problem. Brodie Beta dropped me a note to say that she'd installed the trial version and now the App Store App was marking Smoovie as Installed - meaning that she couldn't buy it. From what I've seen on Twitter over the last day or so this seems to be quite common: "Hey the MAS has picked up all the apps I have already...".
Obviously we want people to be able to try out our software before they decide whether to buy it, but if that then stops them buying it it's a serious problem. So why was this happening? The answer turned out to be a combination of both the bundle identifier and the version number.
We have two versions of Smoovie; the one on the App Store and the one which can be downloaded from our own web-site. The non-App Store version also doubles as the trial version, which can be unlocked if you buy a licence from our online store. Since they are effectively the same application it didn't make sense to us to use different bundle identifiers (I know Graham Lee for one would disagree with me on this and I'm looking forward to sorting this out over a couple of beers at NSConference). Maybe if we'd realised this was going to be a problem we might have done something different, but hindsights a great thing.
We also gave both bundles the same version number of 1.0.3. Again this made sense to us at the time. Functionally the two applications are the same and we felt that the version number should reflect this (we also display a build number in the about box, which from a traceability standpoint is the important bit for us).
So it turns out that the App Store app will mark an app as 'Installed' if the bundle identifiers are the same and if the copy on your machine has a version number the same or greater than the version on the App Store. This makes perfect sense to me; if there is a newer version of an app you already own you will be able to buy it. If you have a newer version than the one on the app store then you won't. So our solution has been to 'downgrade' the trial version to 1.0.2 (fortunately 1.0.2 which contained a fix for one of our customers which never saw the light of day). It's not pretty, but it'll work.
0 Comments:
Post a Comment