【问题标题】:Get IMEI for iOS7 programmatically以编程方式获取 iOS7 的 IMEI
【发布时间】:2013-09-26 11:45:02
【问题描述】:

在XCode 4.6、iOS 6.1中,我们使用CoreTelephony获取IMEI,和get IMEI on iPhone with CoreTelephony?问题中提到的方法一样,但是切换到iOS7和XCode 5之后就不行了。 我的系统认为 IMEI 是一种牢不可破的方式来识别手机并保证它与特定用户相关联,其他安全问题也取决于此标识符。 使用新的 iOS,代码无法正常工作,我们还没有找到获取它的方法。

我的核心问题是:在 iOS7 / XCode 5 中我有哪些选择来获取 IMEI?

变化是: - 我怎么能保证手机属于特定的人?身份在我的系统中非常重要,并且设备的所有权是必需的。 - 我们还有哪些其他选项可以确保系统安全而不需要进行太多重写?

【问题讨论】:

  • 您说IMEI“保证它链接到特定用户”,这是错误的。多个用户可以使用同一设备。
  • 不是这个应用程序,我们提供的是,如果手机被克隆,这个应用程序将无法工作。我可能认为苹果安全策略有助于保护设备不被复制和使用所有者的身份,但我没有找到有关此的具体信息。此外,我已经有一张苹果支持的票。问题的重点是进行多条调查。
  • 你完全误解了我的评论。我不是在谈论假设的电话复制或 IMEI 克隆——只是一个简单的事实,我可以在手机上登录 Facebook,然后将其传递给一个朋友,他以自己的身份退出并重新登录——两个用户在同一个设备。因此,手机的 IMEI 并不能保证链接到特定用户。

标签: ios xcode ios7 xcode5 imei


【解决方案1】:

除非找到私有 API 解决方案 - 我们的组织正在向前推进,将 IMEI 和电话号码作为受保护的应用程序设置放入我们的企业应用程序中。

借助 iOS7 新的基于摄像头的条码识别功能 - IMEI 甚至可以在初始配置和部署期间从电话盒中扫描,而不是手动输入。

我们还考虑在数据库中跟踪 identifierForVendor UUID 等链接到 IMEI/Phone#,但由于它可以更改,而且我们的历史数据都是基于 IMEI 的 - 将这一层跟踪复杂性添加到半无用的标识符,不能追溯到电话/IMEI 等通用有意义的跟踪机制。

【讨论】:

  • 感谢您的回答,我喜欢它。这将是一个企业应用程序,但我们希望将其提供给公众使用。当然,它专注于特定领域:不共享设备的人。我们决定跟踪可用数据的列表,特别是 identifierForVendor 和 cloudId,我们还会在特定情况下要求提供密码。目前,我们相信克隆的设备不会具有与原始设备相同的标识符 ForVendor,并且 APN 也可以区分这一点,但我们正在检查。
【解决方案2】:

您不应该首先获得 IMEI,因为您使用的是私有 API,这违反了 Apple 规则。

要获得设备的唯一标识符,您应该使用 identifierForVendor 方法。这将始终在同一部手机上运行的所有应用程序中返回相同的 ID。有关详细信息,请参阅 Apple 文档。

【讨论】:

  • 我不同意我无法访问设备固件信息,但这不是重点。 identifierForVendor 的问题是在删除应用程序时它会发生变化(我只有一个应用程序)。固件值是静态的。如果应用程序被删除并重新安装,IdentifierForVendor 不能用于保证设备是相同的。
  • @indiekiduk 虽然这可能是真的,但如果您希望应用在应用商店中没有任何被拒绝的风险,那么您必须遵守规则。
  • @CarlosAguirreTradeco 这不是技术可能性的问题。这是关于用户隐私和 Apple 对该隐私的承诺。用户不希望他们的设备被随机的应用程序开发人员唯一跟踪。如果与手机服务提供商的数据库交叉引用,IMEI 可以识别真实的人、全名、地址等。这是一个安全风险和隐私问题,Apple 不允许开发人员获取此信息,从而保护用户免受此影响。
  • 这就是重点,确保安全性不仅可以保护用户免受应用开发者的侵害,还可以保护其他用户的侵害。
【解决方案3】:

使用identifierForVendor 获取“一个字母数字字符串,用于向应用的供应商唯一标识设备。(只读)”。

UIDevice 类参考中描述了该方法。

【讨论】:

  • 但由于卸载应用后会发生变化,因此对识别设备无用
【解决方案4】:

我不太确定 IMEI 号码。在 iOS7 中,Apple 改变了他们提供唯一标识符的方式。他们还停止提供 wifi 卡的 MAC 地址。现在,他们为每个设备和应用程序供应商提供了一个唯一标识符。请参阅 iOS 7 发行说明。您可能想要使用该唯一标识符。

【讨论】:

    【解决方案5】:

    您可以使用每个设备独有的advertisingIdentifier。 见:Apple documentation.

    据我所知,advertisingIdentifieridentifierForVendor 是您可以使用的仅有的两个唯一标识符。

    【讨论】:

      猜你喜欢
      • 2012-05-16
      • 2019-07-21
      • 2011-04-06
      • 1970-01-01
      • 2013-01-13
      • 2014-05-28
      • 2014-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多