最近有个项目要用到设备的UDID来确定用户的唯一性,所以借此与大家共勉,有不足之处请多多指教!
因为Apple从2013年05月01日起拒绝接受使用UDID的应用,但是苹果公司允许开发者通过IOS设备和Web服务器之间的某个操作,来获得IOS设备的UDID(包括其他的一些参数)。这里的一个概述:
1、在你的Web服务器上创建一个.mobileconfig的XML格式的描述文件;
2、用户在所有操作之前必须通过某个点击操作完成.mobileconfig描述文件的安装;
3、服务器需要的数据,比如:UDID,需要在.mobileconfig描述文件中配置好,以及服务器接收数据的URL地址;
4、当用户设备完成数据的手机后,返回提示给客户端用户;
首先生成一个.mobileconfig的XML文件:生成地址在此 ,具体参数在里面修改
这样生成的xml文件在safair浏览器中打开后没有有红色提示,显示未签名
下面看一下如何对上面生成的文件进行签名
因为签名是要钱的,所以咱们找一下不要钱的网站:https://www.startssl.com/,可以免费申请一个证书使用一年
不过对于咱们来说已经够了
选择右边的免费的
继续右边的,进去填个邮箱,然后收到验证码,激活一下。就可以登录进去了(中间会需要公司的域名与对应的邮箱)
当然也可以使用终端获取这个CSR文件:
打开mac 终端:req -newkey rsa:2048 -keyout yourname.key -out yourname.csr
然后会让你输入密码,这个密码之后会用到。输入之后接下来会让你填写公司信息与你的名字,邮箱号等,结束后找到生成的yourname.key ,yourname.csr 文件,之后会用到。
然后把生成的csr文件拖到上面的框里面,会生成一串字符,复制后放到上面的框里面。
很快就可以配置好一个域名的证书了。它会提示下载证书,也可以一会回到证书列表里自己下载。下载回来的证书文件为一个压缩包,压缩包里有四个包分别为:
我们要用到的东西有: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 ,里面有详细的介绍与问题!