2

我需要开发一个应用程序,该应用程序的行为会因用户所在的国家/地区而异。比方说,如果用户在法国,一些功能将可用。但是,如果用户来自印度,他将能够访问一组不同的功能。

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

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

4

2 回答 2

1

第三方应用程序无权访问有关设备用户的任何信息或访问 iTunes 帐户。没有办法知道用户的真实国家。在任何给定时间,该设备甚至可能不与任何一个人相关联。例如,iPod touch 可能没有用户登录任何 iTunes 帐户。同一设备最终可以登录到几个不同帐户之一。

您只能访问用户当前的 GPS 位置(如果用户允许您的应用访问该信息)或他们当前的区域设置。

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

于 2012-10-20T23:07:13.513 回答
1

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

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

于 2012-10-23T11:02:33.460 回答