When FileApp first launched on the Apple App Store in 2008 in-app purchases didn’t exist and the prevailing model was that of the Lite/Full, Free/Pro dual app versions. In the last few years, in-app purchases have become the norm, so much so that little remains today to justify two separate apps.
With the release of FileApp 4, we’ve decided to take a leap of faith: merging FileApp Pro and FileApp.
But how do you ensure that paying users persistently enjoy all their Pro privileges - i.e. unlock all previously accessible features when migrating to the new, in-app purchase enabled FileApp?
We were facing the same issue developers have when releasing a new version of an app instead of an upgrade. How to ensure that user data such as settings, purchases (in-app) and privileges are being passed on to the new app?
Our solution will certainly help developers willing to release a new app (instead of an upgrade) specifically designed for iOS 7 like did 1password, reeder and twitterific to name a few. (We have previously discussed paying upgrades in the App Store at large.)
The first idea we had was to share flags between the old and new app using the iOS’ “Keychain sharing entitlement” which allows two apps to share the same keychain data:
- When FileApp Pro (the old app) is launched it writes a flag in the keychain
- FileApp 4 (the new app) accesses that flag, hence knows that FileApp Pro is installed on the device
- FileApp 4 automatically unlocks all the features that we wanted to grant to our former FileApp Pro users
The good things about this simple method are:
- It is secure
- The final state of the app (with the new features) is being backed up when syncing via iCloud
- The features will automatically be added to any other device using the same iCloud account through Keychain sync
But there is a problem: the features granted are not associated with users’ App Store account like any other app or purchase but with the device. Which means all benefits when reinstalling iOS or using the app on another device would be lost. Making sure our strategy would work meant keeping FileApp Pro indefinitely on the App Store, exactly the opposite of our goal! Naturally iCloud Keychain sync would ensure all devices’ flag remains and even better would enable other devices, but not every user has this feature enabled and it only works on iOS 7. We needed a better solution…
Then it finally hit us. The solution had been evasive because it is in it’s very wording a contradiction, a commercial oxymoron: free in-app purchases.
Is that even a thing? Yes, it is. Free in-apps are legit and perfect for our use case: in-app purchased items are stored on Apple’s servers and can be restored at any time, on any device using the same App Store account. The problem now became much simpler: how do we gently nudge Pro users into “buying” a free add-on?
Here’s our complete strategy, which leaves no user behind and helps migrating from one app to the other as painless as possible:
- Simultaneously release FileApp 4 (the new app) and a specific FileApp Pro 3 (the legacy app) version
- FileApp Pro writes the flag in the keychain at first launch
- FileApp Pro informs users about the new FileApp 4 and let them know that all previously owned features will be unlocked for free
- Once installed FileApp 4 offers a free in-app purchase bundle that unlocks all add-ons
That looked pretty good on the App Store front, but was still an issue due to iOS sandboxing that prevents apps to share documents between them. FileApp is a file manager and its purpose is to store files so we still needed a way to transfer the contents of the former app to the new one. So we have set up an automated file migration process via DiskAid our desktop iPhone file transfer app which detects the presence of both apps on a device and propose a painless, one-click transfer of all files from FileApp Pro 3.3 to FileApp 4.
The DigiDNA team wishes you all a very happy and productive 2014!