Reputation: 4301
My aim and research : I have released an iOS app downloadable in the UK, but I wish to release a (very slightly different) version of the app for the U.S. Currently I am assuming I need to do the following for the new version of the app ...
Change the 'Bundle identifier' value to something different.
Ensure that in the App Store only the US can download the app.
Extra detail : My app includes a URL to a website. US users always want it to go to the US website. UK users always want it to go to the UK website. This needs to be ensured or the app will not work.
My question : Is there anything else I am yet to discover I need to do, or any other problems I am yet to consider?
Note : I am also discussing this issue for the android version of my app. This discussion has raised the possibility of maintaining just one app and localising it. However, at present I'm doubting whether this is reliable enough for my needs. The decision of whether to maintain 1 app or 2 is likely to affect both android and iOS. Click here for this discussion.
Upvotes: 1
Views: 460
Reputation: 4301
My final decision was to firstly use CTTelephonyNetworkInfo to get the network country ...
CTTelephonyNetworkInfo *networkInfo = [[[CTTelephonyNetworkInfo alloc] init] autorelease];
CTCarrier *carrier = [networkInfo subscriberCellularProvider];
NSString *isoCountryCode = [carrier isoCountryCode];
and if that fails, get the locale country ...
NSLocale *locale = [NSLocale currentLocale];
NSString *countryCode = [locale objectForKey: NSLocaleCountryCode];
Then I save the results so it only need to be done once, but enable it to be changed in the Settings screen.
Upvotes: 2
Reputation: 910
Best practice is to use localization like you got suggested in Android version. I know the user can easily change his/her preferences but also you can strengthen your solution with location and IP-location checks.
And remember, also publishing two versions is not a guarantee. Many people around the world using US iTunes accounts. So it's a great chance to see someone from UK using your US version app.
Upvotes: 2
Reputation: 130212
There is no need to create different apps to sell in different territories. As you stated about. you can create one application and use localization to dynamically change or replace content within the app depending on the localization. This is possible with iOS as well.
Localization is perfectly reliable. It basically just asks the device what default language it is set to, and makes changes accordingly.
Here is a great tutorial on iOS localization from Ray Wenderlich's site.
http://www.raywenderlich.com/2876/how-to-localize-an-iphone-app-tutorial
However, if you would like to make separate apps, this is acceptable too. You are correct that you would need to create separate bundle ID's. Then, all you need to do is under "Rights and Pricing" in iTunes Connect manually specify what countries you would like the app to be sold in.
As for your primary question of wether or not there is anything else to consider, there really isn't. This process has been made to be very simple, and there aren't any really bad road blocks that you need to worry about running into.
EDIT: Different localization options in this context.
Upvotes: 3