具有基于用户所在国家/地区的不同功能的应用程序

时间:2012-10-20 22:12:27

标签: iphone ios ipad cocoa internationalization

我需要根据用户的国家/地区开发一个行为不同的应用程序。假设用户在法国,可以使用某些功能。但是,如果用户来自印度,他将能够访问一组不同的功能。

如果它只是基于语言的限制,我可以使用NSLocale类方法切换功能。但由于许可和法律原因,我的功能实际上取决于用户的国家。

处理这种情况的最佳做法是什么?

2 个答案:

答案 0 :(得分:1)

第三方应用无法访问有关设备用户或访问iTunes帐户的任何信息。无法了解用户的真实国家/地区。在任何给定时间,该设备甚至可能不与任何一个人相关联。例如,iPod touch可能没有用户登录任何iTunes帐户。最终可以将同一设备登录到多个不同帐户中的一个。

您有权访问的是用户当前的GPS位置(如果用户允许您的应用访问该信息)或其当前的区域设置。

基本上,没有办法做你需要的。当然,您可以提示用户,但显然无法验证此信息。

答案 1 :(得分:0)

对于因市场特定许可或法律问题而有特定要求的每个市场,您可以在iTunes Connect中创建单独的应用程序,并使其仅在相关市场下载。如果您需要,这也允许您提供特定市场的EULA。这是一个很大的维护负担,但它将确保只有给定市场中的用户才能访问该应用程序。

请注意,在XCode中,您可以相当轻松地构建,部署和发布从不同配置构建的项目的多个版本(XCode称为“目标”),因此您仍然可以通过简单地添加一些预处理器定义在单个代码库中实现此目的在相关的目标定义中,将#ifdef放在您想要区分逻辑的代码中。