Combining iPhone + iPad apps into Universal app

We have a longstanding app ("Frax") on the App Store, in an iPhone version ("Frax") and an iPad version ("Frax HD"). For years we've wanted to combine these two into a single Universal app, but there were always significant obstacles, to which we've now developed tentative but imperfect workarounds. I'm posting our scenario in hopes of finding ways to improve these workarounds before we pull the trigger.


Obstacle 1: How to transfer user data from the deprecated iPad-only app to the new Universal app.


Some of our users have accumulated preset libraries that approach hundreds of megabytes, some even gigabytes, which is far too large to transfer reliably via iCloud. So our tentative solution has been to create an App Group directory shared by both apps; the iPad-only app moves its presets from the local Documents folder into the App Group, where they can be seen from the Universal app. When the user eventually downloads the Universal app, the iPad-only app can safely be deleted, and the App Group directory (with all the presets) will remain intact.


Question 1: If Frax HD is removed from sale, and a user hadn't yet upgraded it to the App-Group-aware version, is there still a way for them to upgrade so they can move across their presets to the Universal version?


Obstacle 2: How to avoid double-charging users for switching from iPad-only to Universal.


In principle, the most elegant way to accomplish this (short of fully automating it) would be to create an App Bundle comprising both apps, for the price of the iPad-only app. Then users could simply "complete the bundle", and download the Universal app for free.


However, this solution runs into a Catch-22. Per Apple, App Bundles may not contain both iPhone-only and iPad-only apps, so we can't create the App Bundle before converting the iPhone version to Universal. But App Bundles ALSO cannot contain apps that have been removed from sale, so we can't create the App Bundle afterward either. My understanding is that Apple will not allow us to offer both the Universal app and the iPad-only version of the same app concurrently, and we would prefer not to do that anyway because it could cause serious confusion. We also would prefer not to artificially convert the Universal app to "freemium" and require an IAP to unlock its most basic level of functionality, because that would inconvenience and frustrate new users going forward.


Our tentative workaround is simply to offer the Universal app for free for a limited period of time (a month or two), and have the iPad-only app actively prompt users to switch, showing a link to the Universal app in the App Store. We hope this will capture most active users. For stragglers, we can offer free-download tokens on a piecemeal basis. And for users who simply can't be bothered, the deprecated iPad-only app should hopefully continue to function for a few more years at least.


Question 2: Is there any way to use an App Bundle in this scenario to allow Frax HD purchasers to not be charged again for Frax Universal?


I'd appreciate any advice or feedback any of you might have on our scenario. Thanks for listening!

Accepted Reply

I suspect Apple will allow the third 'redundant' app if you state in the notes to App Review your reason for the 3 apps and your intention to go forward with the one universal app.


Regarding 'free' IAPs: 1) You can use the detection of the old app 1 to unlock the code in the new app 2 with no IAP required and 2) IAP's can be set to 'free' and 3) you can have the new app do something, anything, before the IAP is purchased.


You can 'simplify' the problem by updating the iPhone app to a free universal app that detects the iPad app on the device as per my first post. That 'free' app also detects its 'original purchase date' on its receipt to determine whether the original purchase was paid for or free (search - converting from paid app to freemium app). Then updating the iPad app so it communicates with the universal app.

Replies

TMI.

You have two apps and you want to create one app. You can do that by creating three apps:

1) an updated iPad app

2) an updated iPhone app

3) a universal app.


All three apps share disk space on the device they are on using a variety of ways:

through iCloud

through the keychain

shared disk space using com.apple.security.application-groups


Regarding pricing:

You can include two IAPs in the new universal app.

They both do the same thing

They have different prices.

The user can see the less expensive IAP only if the updated version is on the same device. The universal can 'see' the updated version using the shared file system or a simple canOpenURL where the updated versions have set some dummy URL as available thereby 'signaling' the universal app that it exists.

Hi PBK,


Thanks for your reply. I had thought about your suggested approaches as well, but they don't quite work. Apple won't allow three redundant apps as you propose to coexist on the App Store at the same time. So the question is about how best to work around this.


In addition, IAP's cannot be set to"Free" pricing (which would be required to avoid double-charging users), and I believe it's against Apple's policies to have a free-to-download app that requires an immediate IAP in order to function.


You're right that App Groups (com.apple.security.application-groups) is the right solution for sharing/transferring data; the question is what happens if a user has an older non-App-Group-aware version of the original app, and then that app is removed from sale. The question is whether they can still upgrade their platform-specific app in that case, to be able to transfer their data to the universal app.

I suspect Apple will allow the third 'redundant' app if you state in the notes to App Review your reason for the 3 apps and your intention to go forward with the one universal app.


Regarding 'free' IAPs: 1) You can use the detection of the old app 1 to unlock the code in the new app 2 with no IAP required and 2) IAP's can be set to 'free' and 3) you can have the new app do something, anything, before the IAP is purchased.


You can 'simplify' the problem by updating the iPhone app to a free universal app that detects the iPad app on the device as per my first post. That 'free' app also detects its 'original purchase date' on its receipt to determine whether the original purchase was paid for or free (search - converting from paid app to freemium app). Then updating the iPad app so it communicates with the universal app.

Thanks. I do plan to 'simplify' by converting the iPhone app to Universal, rather than making a third app. If Apple allows me to keep the iPad app simultaneously on the store for a short time (a few months), I can use the App Bundle mechanism to enable iPad users to switch to Universal for free, rather than making the universal app "freemium".


In any case, I stand corrected that non-consumable IAP's can be "free": I had inadvertently been looking at consumable IAPs, which have a 99c minimum. Non-consumable IAP's, which apply here, can be free.

ok