iOS 开发如何获取UDID(用safari浏览器获取设备的UDID)

最近有个项目要用到设备的UDID来确定用户的唯一性,所以借此与大家共勉,有不足之处请多多指教!

因为Apple从2013年05月01日起拒绝接受使用UDID的应用,但是苹果公司允许开发者通过IOS设备和Web服务器之间的某个操作,来获得IOS设备的UDID(包括其他的一些参数)。这里的一个概述:

1、在你的Web服务器上创建一个.mobileconfig的XML格式的描述文件;

2、用户在所有操作之前必须通过某个点击操作完成.mobileconfig描述文件的安装;

3、服务器需要的数据,比如:UDID,需要在.mobileconfig描述文件中配置好,以及服务器接收数据的URL地址;

4、当用户设备完成数据的手机后,返回提示给客户端用户;


首先生成一个.mobileconfig的XML文件:生成地址在此 ,具体参数在里面修改

iOS 开发如何获取UDID(用safari浏览器获取设备的UDID)_第1张图片

这样生成的xml文件在safair浏览器中打开后没有有红色提示,显示未签名

下面看一下如何对上面生成的文件进行签名

因为签名是要钱的,所以咱们找一下不要钱的网站:https://www.startssl.com/,可以免费申请一个证书使用一年

不过对于咱们来说已经够了


选择右边的免费的


iOS 开发如何获取UDID(用safari浏览器获取设备的UDID)_第2张图片

继续右边的,进去填个邮箱,然后收到验证码,激活一下。就可以登录进去了(中间会需要公司的域名与对应的邮箱)


iOS 开发如何获取UDID(用safari浏览器获取设备的UDID)_第3张图片

 当然也可以使用终端获取这个CSR文件:

打开mac 终端:req -newkey rsa:2048 -keyout yourname.key -out yourname.csr

然后会让你输入密码,这个密码之后会用到。输入之后接下来会让你填写公司信息与你的名字,邮箱号等,结束后找到生成的yourname.key ,yourname.csr 文件,之后会用到。

然后把生成的csr文件拖到上面的框里面,会生成一串字符,复制后放到上面的框里面。

很快就可以配置好一个域名的证书了。它会提示下载证书,也可以一会回到证书列表里自己下载。下载回来的证书文件为一个压缩包,压缩包里有四个包分别为:


iOS 开发如何获取UDID(用safari浏览器获取设备的UDID)_第4张图片

我们要用到的东西有:yourname.key 、ApacheServer中的两个文件(1_root_bundle.crt和2_aaa.com.crt)、  刚开始生成的2.mobileconfig


然后把这四个文件放到同一个文件夹中,打开终端进入这个文件夹执行  openssl smime -sign -in 2.mobileconfig -out 2signed.mobileconfig -signer 2_aaa.com.crt -inkey yourname.key -certfile 1_root_bundle.pem -outform der -nodetach

最后生成的2signed.mobileconfig 就是签名后的mobileconfig文件,可以放到模拟器safari浏览器看一下效果。


服务器端的可以参考http://blog.csdn.net/zkdemon/article/details/50057515 ,里面有详细的介绍与问题!

你可能感兴趣的:(iOS 开发如何获取UDID(用safari浏览器获取设备的UDID))