jknlsn.

iCloud red flag for indie developers

Cover Image for iCloud red flag for indie developers

As a consumer, I love iCloud. One central storage for documents, photos and app data. What's not to love? It's not a perfect service by any means, but it's handy and just works for the most part. When I see an app using iCloud, I'm pretty stoked as a consumer. It often comes along with other positives in my eyes, such as not needing an account and a level of iOS focused app creation philosophy that I appreciate.

As a developer, the reasons above are why I want to use iCloud in my apps. If I like a feature as a user, that's one of the most important factors when deciding what to build. However, several areas present technical challenges and one factor that I consider a potential show stopper for an indie developer who is considering using iCloud.[1]

Much has been said about the technical difficulties and challenges with iCloud by those with greater insight than I, so I won't rehash that aspect. Instead, I want to highlight the potential effects on your indie developer business.

Red flag - apps using iCloud cannot be transferred to another account

As Billy Ocean eloquently put it, a red light spells danger. This red flag indicates a threat to your potential indie app business.

The App Transfer Criteria list the requirements for an app to be able to be transferred to another account, which would be the case if you wanted to sell the app.

No version of the app can use an iCloud entitlement.

This is where it starts to get a little complicated for indie developers.

If you're only intending to ever build the one app, this presents no problem as you can just sell the entire Developer Account. So for your first app, no real problem. What about your second? Well, now it gets tricky. Using iCloud for more than one app in an account now means that selling any apps would require selling all of them.

We can take a look at my apps for a worked example. Currently, only one of my apps uses iCloud, my digital loyalty card wallet Barcodes. I have two other apps, the intelligent music player Mixtapes and my take on the word guessing genre Word Game Hero.

Current app portfolio state:

App iCloud Eligible for sale
Barcodes Yes Only with account
Mixtapes No Yes
Word Game Hero No Yes

So right now, as long as only one app is using an iCloud entitlement, then this can be managed. I'm not intending to sell any of my apps (although yes, Tim, for the right number that would change for the right buyer), but I could with a few steps if I did.

  1. Create a new account
  2. Transfer Mixtapes and Word Game Hero to that account
  3. Sell the account, now only containing Barcodes to the buyer

Original account, now sold:

App iCloud Eligible for sale
Barcodes Yes Only with account

New account:

App iCloud Eligible for sale
Mixtapes No Yes
Word Game Hero No Yes

What if I added iCloud to Mixtapes? For example, to enable users to sync their mixes between devices or share them with other users.

More than one app with iCloud entitlement:

App iCloud Eligible for sale
Barcodes Yes Only with account
Mixtapes Yes Only with account
Word Game Hero No Yes

Now, to sell Barcodes, the buyer needs to also want Mixtapes. These are pretty different apps; that seems like it may be a harder sell! Not impossible; maybe a particular fruit company decides to make these default apps. This problem of finding a buyer for multiple apps continues to expand the more apps you have in your developer account that use iCloud.

Right there is the rub. It is possible to get around this, and it isn't too tricky. If you created a separate Apple Developer account for each app, you would never have this issue. If you ever want to sell an app, you simply transfer ownership of the Developer Account as a whole. This is costly, though, at 99 USD per year per account.

So before you first implement iCloud, you need to decide whether you want to add another 99USD yearly cost before knowing whether adding iCloud functionality will justify that cost. Maybe it will. Maybe that is just the cost of putting an app out there. However, the developer account may cost an indie developer hundreds of dollars before making a profit.

So now, an aspiring indie developer has choices to make when considering implementing iCloud features. The most future proof is to have an account for each app that would benefit from iCloud functionality, but this is the most costly. The developer could also choose to just have one account and not implement iCloud functionality to the potential detriment of users.

Why should iCloud entitlements have this impact? Are there technical reasons, privacy reasons, or anything else that I am missing or unaware of?

Surely Apple wants more developers to use iCloud for their apps. For a lot of use cases, it is a great solution. This limitation disincentivises indie developers from using iCloud.

Summary

iCloud entitlements making apps ineligible for transfer is a brake applied to indie developers. Apple should work to remove it to improve the ecosystem for both developers and users.


  1. There are alternatives to iCloud for user data. However, all of them have their own pros and cons, not least of which is that most require your users to have an account on a third party or your own service. iCloud, when functioning smoothly, lets this all happen invisibly to your users without the appearance of a separate service which I consider a huge benefit. ↩︎