您的位置:首页 > 移动开发 > IOS开发

如何获取ios设备的唯一标识

2014-10-29 18:49 926 查看
很多地方都会需要用到唯一标志。

比如:

1. 我们相用一个设备的唯一标志当作用户id,特别是网络游戏,这样就可以省去注册的麻烦。

2. 想把app相关的文件加密,密钥哪里来的?有些人可能会说hard code,但是hard code的key比较容易被破解。而去hard code密钥加密的文件可以copy到其他设备。比如游戏的本地文件保存了一些游戏相关的数据,那么只要有一台机器购买100个金币,然后就可以把本地文件copy给其他设备,其他设备也可以有100金币了,因为所有的设备用的是同一个hard code密钥。

如果我们可以获取设备唯一的标识比如一个id,那么我们就可以用这个id当作用户名,或者直接用这个id当作密钥。这样就会好很多。比如游戏本地文件就具有唯一性了,就算copy到其他设备,别人也用不了,因为密钥不一样。

以前的iphone是可以获取设备的udid的,很简单:

[UIDevice currentDevice] uniqueIdentifier] 但是后来苹果公司禁止了。(如果没有记错的话,应该是从ios5开始就不能用了)
反正现在是用不了了。

在网上查了一下,在github上找到一个办法,
https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5
基本原理就是读取wifi芯片的mac地址,然后转换成一个hash值。

实验了一下,可行,我用的是ios skd 8



不知道苹果会不会把mac地址也禁止了。

所以最好的办法还是先使用上面的办法去获取,如果失败了,就加个错误处理,比如再采用hard code获取其他产生id的方式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: