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 ...
我的目标和研究:我已经发布了可在英国下载的iOS应用程序,但我希望为美国发布一个(非常略微不同)的应用程序版本目前我假设我需要为新版本的版本执行以下操作应用......
-
Change the 'Bundle identifier' value to something different.
将“Bundle identifier”值更改为不同的值。
-
Ensure that in the App Store only the US can download the app.
确保在App Store中只有美国可以下载该应用程序。
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.
额外细节:我的应用程序包含网站的URL。美国用户总是希望它去美国网站。英国用户总是希望它去英国网站。这需要确保,否则应用程序将无法运行。
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.
注意:我也在为我的应用程序的Android版本讨论这个问题。这个讨论提出了维护一个应用程序并进行本地化的可能性。但是,目前我怀疑这是否足以满足我的需求。是否维持1个app或2的决定可能会影响android和iOS。点击此处进行讨论。
3 个解决方案
#1
3
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.
无需创建不同的应用即可在不同地区销售。如你所说。您可以创建一个应用程序并使用本地化来动态更改或替换应用程序中的内容,具体取决于本地化。这也适用于iOS。
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.
以下是Ray Wenderlich网站上关于iOS本地化的精彩教程。
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.
但是,如果您想制作单独的应用程序,这也是可以接受的。你是正确的,你需要创建单独的捆绑ID。然后,您需要做的就是在iTunes Connect中的“权利和定价”下手动指定您希望销售该应用的国家/地区。
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.
编辑:在此上下文中的不同本地化选项。
- Using built in iOS localizations
- Uploading different binaries and localizing in iTunes Connect
- Using Geolocation services
- Prompting the user
- Server-Side location detection and redirection
使用内置的iOS本地化
上传不同的二进制文件并在iTunes Connect中进行本地化
使用地理定位服务
提示用户
服务器端位置检测和重定向
#2
2
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.
最佳做法是使用Android版本中建议的本地化。我知道用户可以轻松更改他/她的偏好,但您也可以通过位置和IP位置检查来增强您的解决方案。
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.
请记住,同时发布两个版本并不能保证。世界各地的许多人使用美国iTunes帐户。因此,有机会看到来自英国的人使用您的美国版应用程序。
#3
2
My final decision was to firstly use CTTelephonyNetworkInfo to get the network country ...
我最后的决定是首先使用CTTelephonyNetworkInfo获取网络国家......
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.
然后我保存结果,所以它只需要完成一次,但是可以在“设置”屏幕中更改它。
#1
3
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.
无需创建不同的应用即可在不同地区销售。如你所说。您可以创建一个应用程序并使用本地化来动态更改或替换应用程序中的内容,具体取决于本地化。这也适用于iOS。
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.
以下是Ray Wenderlich网站上关于iOS本地化的精彩教程。
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.
但是,如果您想制作单独的应用程序,这也是可以接受的。你是正确的,你需要创建单独的捆绑ID。然后,您需要做的就是在iTunes Connect中的“权利和定价”下手动指定您希望销售该应用的国家/地区。
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.
编辑:在此上下文中的不同本地化选项。
- Using built in iOS localizations
- Uploading different binaries and localizing in iTunes Connect
- Using Geolocation services
- Prompting the user
- Server-Side location detection and redirection
使用内置的iOS本地化
上传不同的二进制文件并在iTunes Connect中进行本地化
使用地理定位服务
提示用户
服务器端位置检测和重定向
#2
2
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.
最佳做法是使用Android版本中建议的本地化。我知道用户可以轻松更改他/她的偏好,但您也可以通过位置和IP位置检查来增强您的解决方案。
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.
请记住,同时发布两个版本并不能保证。世界各地的许多人使用美国iTunes帐户。因此,有机会看到来自英国的人使用您的美国版应用程序。
#3
2
My final decision was to firstly use CTTelephonyNetworkInfo to get the network country ...
我最后的决定是首先使用CTTelephonyNetworkInfo获取网络国家......
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.
然后我保存结果,所以它只需要完成一次,但是可以在“设置”屏幕中更改它。