以编程方式获取iOS7设备的IMEI

4
在XCode 4.6、iOS 6.1中,我们使用CoreTelephony获取IMEI的方式与在iPhone上使用CoreTelephony获取IMEI问题中提到的方式相同。但是,在切换到iOS7和XCode 5后,它不再起作用了。我的系统认为IMEI是识别手机并确保其与特定用户相关联的不可破解的方法,其他安全问题也依赖于此标识符。由于新的iOS代码无法工作,我们还没有找到获得它的方法。
我的核心问题是:我在iOS7 / XCode 5中有哪些选项可以获得IMEI? 变化包括: - 我如何保证手机属于特定人?身份在我的系统中非常重要,设备所有权是必要的。 - 我们还有哪些其他选项可以在不需要重写太多内容的情况下保持系统的安全性?

你说IMEI“保证它与特定用户相关联”,这是错误的。多个用户可以使用同一设备。 - Jasarien
1
不是这个应用程序的问题,我们提供的是如果手机被克隆,该应用程序将无法正常工作。我认为苹果的安全政策有助于保护设备不被复制并防止所有者身份被使用,但我还没有找到具体信息。此外,我已经提交了苹果支持的工单。提出这个问题的目的是为了进行多条调查线索。 - Carlos Aguirre Tradeco
你完全误解了我的评论。我不是在谈论假设的手机复制或IMEI克隆 - 只是一个简单的事实,我可以在我的手机上登录Facebook,然后将其传递给朋友,他以自己的身份退出并重新登录 - 两个用户在同一设备上。因此,手机的IMEI不能保证与特定用户的链接。 - Jasarien
5个回答

2
除非找到私有 API 解决方案,否则我们的组织将继续将 IMEI 和电话号码放入我们的企业应用程序作为受保护的应用程序设置。
有了 iOS7 的新基于相机的条形码识别技术,即使在初始配件和部署期间也可以从手机盒子中扫描 IMEI,而不必手动输入。
我们还考虑在数据库等中跟踪 identifierForVendor UUID,并链接到 IMEI/Phone#,但由于它可能会改变,而且我们的历史数据都是基于 IMEI 的,所以向半无用的标识符添加这种追踪复杂性就没有意义了,因为它不能追溯到像 Phone/IMEI 这样的通用有意义的追踪机制。

谢谢你的回答,我很喜欢。这将是一个企业应用程序,但我们想提供给公众使用。当然,它专注于特定领域:不共享设备的人群。我们决定跟踪一系列可用数据,特别是identifierForVendor和cloudId,同时在特定情况下我们将要求输入密码。目前我们相信,克隆设备将不会具有与原始设备相同的identifierForVendor,并且APNs也可以区分,但我们正在进行检查。 - Carlos Aguirre Tradeco

2

首先,由于您使用的是私有API,这违反了苹果的规定,因此您不应该获取IMEI。

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


2
我不同意无法访问设备固件信息的说法,但这不是重点。identifierForVendor的问题在于当应用程序被删除时它会发生变化(我只有一个应用程序)。固件值是静态的。如果应用程序被删除并重新安装,则无法使用identifierForVendor来保证设备相同。 - Carlos Aguirre Tradeco
@indiekiduk 虽然这可能是真的,但如果你想让应用程序在应用商店中没有任何被拒绝的风险,那么你必须遵守规则。 - Jasarien
这不是技术上的问题,而是涉及到用户的隐私和苹果对隐私的承诺。用户不希望他们的设备被随意的应用程序开发者唯一追踪。 IMEI可以识别真实的个人身份、全名、地址等信息,如果与移动服务提供商的数据库交叉引用,就会存在安全风险和隐私问题。苹果不允许开发者获取此信息,从而保护用户的隐私。 - Jasarien
这就是关键,确保安全性不仅可以保护用户免受应用程序开发人员的侵害,还可以保护用户免受其他用户的侵害。 - Carlos Aguirre Tradeco

2

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

该方法在UIDevice类参考中有描述。


4
但是,由于应用程序卸载后会发生变化,因此它无法用于识别设备。 - Carlos Aguirre Tradeco

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

0

您可以使用每个设备唯一的advertisingIdentifier。请参阅:Apple文档

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接