在运行时检测哪个国家/地区的App Store是从我的iPhone应用程序下载的?

时间:2009-07-10 21:21:11

标签: iphone localization internationalization app-store

我的iPhone应用程序中有一项功能,出于商业原因,我们只能向美国客户展示/提供该功能。如果我想将此应用程序发布到美国以外的App Stores,那么在不依赖用户定义的设置(如语言和区域设置)的情况下,找出我所在的国家/地区的最佳方法是什么?

在我看来,理想的解决方案是有一些运行时属性可以告诉我应用程序从哪个App Store国家/地区下载,我可以采取相应的措施。浏览文档并搜索网页,我不会在这个部门找到任何东西。

我不认为解决方案是100%万无一失的,只要用户不在他们所说的国家,但尽可能接近会很好。

我认为一个解决方案是在App Store上为新产品单独构建并有两个版本,一个用于美国,另一个用于其他版本,但这似乎并不理想。我希望它可以是App Store上的同一产品,以防止用户评论碎片化等事情。

提前致谢!

3 个答案:

答案 0 :(得分:4)

我还认为使用NSLocale是确定用户所在国家/地区的最佳解决方案。

以下是如何做到的:

// Get user's country code based on currentLocale
NSLocale *locale = [NSLocale currentLocale];
NSString *countryCode = [locale objectForKey: NSLocaleCountryCode];

if ([countryCode isEqualToString:@"US"]){
    // US Only
}

但是,由于无法保证用户不会更改其国际设置,因此您可能别无选择,只能发布单独的应用,一个针对美国用户,另一个针对国际用户。

答案 1 :(得分:1)

它可以是Locale,也可以是不同商店的不同版本。

对我来说,Locale选项似乎是最少量的工作,95%的时间可能是正确的...

答案 2 :(得分:1)

这个问题已经很老了,但是由于其他人可能有相同的查询,我正在切入:)鉴于除了通过本地检索之外它不是“合理”可能的,一种机制是通过客户注册。在注册表格中,您可以询问他们所在的国家/地区,并从那里取出......