mobileconfig文件

通过Safari与mobileconfig获取iOS设备UDID

UDID (Unique Device Identifier),唯一标示符,是iOS设备的一个唯一识别码,每台iOS设备都有一个独一无二的编码,UDID其实也是在设备量产的时候,生成随机的UUID写入到iOS设备硬件或者某一块存储器中,所以变成了固定的完全不会改变的一个标识,用来区别每一个唯一的iOS设备。

随着苹果对程序内获取UDID封杀的越来越严格,私有api已经获取不到UDID,Mac地址等信息,继而出现了使用钥匙串配合uuid等等方法变相实现

制作mobileconfig需要的文件:

(1)mbaike.crt(https服务器端使用证书文件)
(2)mbaike.key(https服务器端使用证书对应的密钥,其实就是一个txt文件)
(3)ca-bundle.pem(startssl官网下载的跟证书文件,具体的在哪里下载,请在startssl控制面板中查找)
(4)unsigned.mobilecofig文件(IOS端生成的未签名的配置描述文件) 

2、在mac上通过openssl命令生成签名后的signed.mobileconfig文件:

openssl smime -sign -in unsigned.mobileconfig -out signed.mobileconfig -signer mbaike.crt -inkey mbaike.key -certfile ca-bundle.pem -outform der -nodetach

 

也可以把key文件的密码写入到key文件中

openssl rsa -in mbaike.key -out mbaikenopass.key

 

第二步的命令就应该是

openssl smime -sign -in unsigned.mobileconfig -out signed.mobileconfig -signer mbaike.crt -inkey mbaikenopass.key -certfile ca-bundle.pem -outform der -nodetach

 

这样就完成了对mobileconfig的签名工作了

pfx生成pem

openssl pkcs12 -in test.pfx -clcerts -nokeys -out cert.pem  可能需要密码

pfx生成key

openssl pkcs12 -in test.pfx -nocerts -out cert.key

ca文件就是crt文件

 

使用原理:

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

 

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

 

3.用户在客户端通过某个点击操作完成.mobileconfig描述文件的安装;

 

4.手机在安装描述文件时,会向描述文件中配置好的URL发送UDID,IMEI等设备信息数据;

 

5.服务端收到设备信息数据后,通过scheme打开客户端的app将设备信息作为参数传给客户端;

 

6.客户端在appDelegate里面将 这个参数存到本地 ,并且存到钥匙串,这样即时app被卸载重装,也无需再次安装;

 

配置文件的信息:



    
        PayloadContent
        
            URL
            http://127.0.0.1:6699/receive.do
            DeviceAttributes
            
                SERIAL
                MAC_ADDRESS_EN0
                UDID
                IMEI
                ICCID
                VERSION
                PRODUCT
            
        
        PayloadOrganization
        dev.skyfox.org
        PayloadDisplayName
        查询设备UDID
        PayloadVersion
        1
        PayloadUUID
        3C4DC7D2-E475-3375-489C-0BB8D737A653
        PayloadIdentifier
        cn.com.aaaa
        PayloadDescription
        本文件仅用来获取设备ID
        PayloadType
        Profile Service
    

 

其中,DeviceAttributes对应的key是你想要的信息,还可以添加其他信息,操作系统(iOS)安装完描述文件,获取完这些信息,会将这些信息进行编码,传值给你描述文件中的URL地址,这里需要修改URL就好。

 

苹果官方文档介绍

 

转载于:https://www.cnblogs.com/hualuoshuijia/p/11474725.html

你可能感兴趣的:(mobileconfig文件)