我的目标和研究:我已经发布了可在英国下载的iOS应用程序,但我希望为美国发布一个(略有不同)的应用程序版本目前我假设我需要为新版本的应用程序执行以下操作...
将“Bundle identifier”值更改为其他值。
确保在App Store中只有美国可以下载该应用。
额外明细:我的应用包含网站的网址。美国用户总是希望它去美国网站。英国用户总是希望它去英国网站。这需要确保,否则应用程序将无法运行。
我的问题:还有什么我尚未发现我需要做的,还是我尚未考虑的任何其他问题?
注意:我也在为我的应用程序的Android版本讨论这个问题。这个讨论提出了维护一个应用程序并对其进行本地化的可能性。 然而,目前我怀疑这是否足以满足我的需求。是否维持1个app或2的决定可能会影响android和iOS。 Click here for this discussion
答案 0 :(得分:3)
无需在不同地区创建不同的应用即可销售。如你所说。您可以创建一个应用程序并使用本地化来动态更改或替换应用程序中的内容,具体取决于本地化。这也适用于iOS。
本地化非常可靠。它基本上只是询问设备设置的默认语言,并相应地进行更改。
以下是Ray Wenderlich网站上关于iOS本地化的精彩教程。
http://www.raywenderlich.com/2876/how-to-localize-an-iphone-app-tutorial
但是,如果您想制作单独的应用,这也是可以接受的。你是正确的,你需要创建单独的捆绑ID。然后,您需要做的就是在iTunes Connect中的“权利和定价”下手动指定您希望销售该应用的国家/地区。
关于你的主要问题是否还有其他问题需要考虑,实际上并没有。这个过程非常简单,你不必担心遇到任何非常糟糕的障碍。
编辑:此背景下的不同本地化选项。
答案 1 :(得分:2)
最佳做法是使用Android版本中建议的本地化。我知道用户可以轻松更改他/她的偏好,但您也可以通过位置和IP位置检查来增强您的解决方案。
请记住,同时发布两个版本并不能保证。世界各地的许多人使用美国iTunes帐户。因此,很有可能使用您的美国版应用程序看到来自英国的人。
答案 2 :(得分:2)
我的最终决定是首先使用CTTelephonyNetworkInfo来获取网络国家......
CTTelephonyNetworkInfo *networkInfo = [[[CTTelephonyNetworkInfo alloc] init] autorelease];
CTCarrier *carrier = [networkInfo subscriberCellularProvider];
NSString *isoCountryCode = [carrier isoCountryCode];
如果失败,请获取区域设置国家/地区......
NSLocale *locale = [NSLocale currentLocale];
NSString *countryCode = [locale objectForKey: NSLocaleCountryCode];
然后我保存结果,因此只需要完成一次,但是可以在“设置”屏幕中更改它。