我的iPhone应用程序中有一项功能,出于商业原因,我们只能向美国客户展示/提供该功能。如果我想将此应用程序发布到美国以外的App Stores,那么在不依赖用户定义的设置(如语言和区域设置)的情况下,找出我所在的国家/地区的最佳方法是什么?
在我看来,理想的解决方案是有一些运行时属性可以告诉我应用程序从哪个App Store国家/地区下载,我可以采取相应的措施。浏览文档并搜索网页,我不会在这个部门找到任何东西。
我不认为解决方案是100%万无一失的,只要用户不在他们所说的国家,但尽可能接近会很好。
我认为一个解决方案是在App Store上为新产品单独构建并有两个版本,一个用于美国,另一个用于其他版本,但这似乎并不理想。我希望它可以是App Store上的同一产品,以防止用户评论碎片化等事情。
提前致谢!
答案 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)
这个问题已经很老了,但是由于其他人可能有相同的查询,我正在切入:)鉴于除了通过本地检索之外它不是“合理”可能的,一种机制是通过客户注册。在注册表格中,您可以询问他们所在的国家/地区,并从那里取出......