1

我的目标和研究:我已经发布了一个可在英国下载的 iOS 应用程序,但我希望为美国发布一个(非常不同的)应用程序版本目前我假设我需要为新版本的应用程序 ...

  1. 将“捆绑标识符”值更改为不同的值。

  2. 确保在 App Store 中只有美国可以下载该应用程序。

额外细节:我的应用程序包含一个网站的 URL。美国用户总是希望它访问美国网站。英国用户总是希望它访问英国网站。这需要确保,否则应用程序将无法运行。

我的问题:还有什么我还没有发现我需要做的事情,或者我还没有考虑任何其他问题吗?

注意:我也在为我的应用程序的 android 版本讨论这个问题。该讨论提出了仅维护一个应用程序并将其本地化的可能性。但是,目前我怀疑这是否足以满足我的需求。是维护 1 个应用程序还是 2 个应用程序的决定可能会同时影响 android 和 iOS。单击此处进行讨论

4

3 回答 3

3

无需创建不同的应用程序即可在不同地区销售。正如你所说。您可以创建一个应用程序并使用本地化来根据本地化动态更改或替换应用程序中的内容。这在 iOS 上也是可能的。

本地化非常可靠。它基本上只是询问设备设置的默认语言,并相应地进行更改。

这是 Ray Wenderlich 网站上关于 iOS 本地化的精彩教程。

http://www.raywenderlich.com/2876/how-to-localize-an-iphone-app-tutorial

但是,如果您想制作单独的应用程序,这也是可以接受的。您是正确的,您需要创建单独的捆绑包 ID。然后,您需要做的就是在 iTunes Connect 中的“权利和定价”下手动指定您希望在哪些国家/地区销售该应用程序。

至于您的主要问题是否还有其他要考虑的问题,实际上没有。此过程非常简单,您无需担心遇到任何非常糟糕的路障。

编辑:在这种情况下不同的本地化选项。

  1. 使用内置的 iOS 本地化
  2. 在 iTunes Connect 中上传不同的二进制文件并进行本地化
  3. 使用地理位置服务
  4. 提示用户
  5. 服务器端位置检测和重定向
于 2012-07-18T10:03:39.333 回答
2

最佳做法是使用您在 Android 版本中建议的本地化。我知道用户可以轻松更改他/她的偏好,但您也可以通过位置和 IP 位置检查来加强您的解决方案。

请记住,同时发布两个版本并不能保证。世界各地的许多人使用美国 iTunes 帐户。所以这是一个很好的机会看到来自英国的人使用你的美国版应用程序。

于 2012-07-18T11:04:28.353 回答
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];

然后我保存结果,因此只需要完成一次,但可以在“设置”屏幕中更改它。

于 2012-08-01T15:25:36.390 回答