It all seems like a good idea from the beginning. You’re making a local shopping app for your grocery store that you just opened down the road. Since you’re in London, you develop your app in English only and make sure the app only runs in the United Kingdom. When Apple or Google asks where you would like to publish your app, you hit the checkmark next to “UK” and be done with it. Pretty smart, right?

Wrong.

The problem with geo-restriction

We all know that people move around a lot. We know that people sometimes moves across borders, across countries, to search for that perfect place to settle down. And sometimes, that means that they become a digital nomad, hopping across the location dropdown when signing up for services.

This becomes a huge problem when you’re in, say, China, for example, and have your iCloud account set to South Korea, or your Google account set to the United States. Again, examples, examples, examples. You could be an Italian living in Egypt. You could be a Mexican living in India. Who knows? The example I showed above greatly inconveniences these types of people - they literally cannot download your app because their accounts are not allowing them to, even if they are in the correct country.

“Then just change the region!” You say. Apple and Google both allow users to change regions. Sure, but there are a lot of caveats. In some cases, past purchases do not transfer to your new-region account. If you have an Apple/Google developer account - bleugh. That’s a whole can of worms we’re not going to open here, with new tax filings and what not if you’re a paid developer - look, the point is, sometimes people are locked into a region not necessarily because they want to, but because they have to.

For me, there are more reasons. If anybody remembers 2016/2017, you’ll know that Apple moved all iCloud users with their regions set to China to a new datacenter location operated by a Chinese company. Sure, Apple claims to keep their data safe and encrypted, but if you have a backdoor to these servers then you’re pretty much operating in uncharted waters. No amount of encryption and safeguarding will beat a backdoor built into servers.

This means I’ll never set my region to China, even though I live in China. As a result, many apps are not available for download in the App Store. Recently I tried downloading Taobao, and realized that it was not available in the international App Store! Why? Why restrict it to Chinese people only? What if foreigners decide to take a vacation to China and spend some money on Taobao? I didn’t even realize because I had created a temporary account with a fake alias to download Chinese apps, which is not allowed under Apple ToS. I talked to a Genius after finding the term and she helped me shut down the account, but that means I cannot download apps that are on sale in China only.

For now, I continue to find workarounds. I’ve also considered switching back to Android for a couple months (mostly because they allow sideloading) but I like my iDevices too much. Maybe someday.

Again, if you’re a developer reading this, before you blindly publish with the region restriction set, PLEASE stop yourself and ask yourself if your app is going to be accessible for all relevant users.

Anecdote

I’m actually creating an app for a school here located in China. Because the school is international, many students from different regions come here to finish their K12 education. This means that if I set the publishing region to China only, those students cannot download the app, since their accounts will probably be set to anywhere but China. Reminds you how geo-restriction is a double-edged sword.

Goddammit I just wanted a figurine on Taobao why am I writing this blog post?