前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2020年iOS开发如何获取设备的序列号与UDID

2020年iOS开发如何获取设备的序列号与UDID

作者头像
大话swift
发布2020-02-26 13:34:07
6.2K1
发布2020-02-26 13:34:07
举报
文章被收录于专栏:大话swift大话swift

一 为何不App内部获取?

目前iOS系统对于设备的硬件信息UDID MAC地址等采用屏蔽策略,无法通过iOS设备安装App获取

二 如何获取设备的UDID

1连接电脑获取借助三方软件获取UDID MEI 序列号等

2 通过搭建服务安装授权证书类文件获取

三 授权文件

1 什么是授权文件

此授权文件是一iOS平台特有的以mobileconfig后缀的类似xml结构的文件,内部包含量大主要部分:连接服务端接收数据的url 和需要获取哪些设备信息声明字段

mobileconfig文件格式

2 文件格式字段简易说明(关键点,其余不用关注)

1.2.1 url

当用户安装mobileconfig文件后系统会采用POST方式向此url发送类似xml格式数据,服务端根据此数据解析获取到需要的UDID信息

1.2.2 PayloadUUID

此字段需要生成文件的时候采用随机生成

3 文件生成

文件是类似xml且大部分格式固定,只需设置url以及随机生成PayloadUUID字段

四 安装mobileconfig文件

1 App通过Safari打开文件下载连接系统即可自动是被此文件

2 打开iOS设备设置=>通过=>设备管理=>选择对应的mobileconfig文件点击安装即可

五 服务端数据接收

服务端接收数据格式大致如下接收后可解析出UDID 设备型等硬件信息

六 注意事项

1 服务端接收数据后需要通过301重定向,iOS设备会打开Safari,否则设备端验证报错

2 Content Type为:application/x-apple-aspen-config

七 关于重定向页面

重定向页面可以传递解析出的数据展示,亦可提供用户其他操作,根据实际情况处理

八 简易示例

1 需要通过mobileconfig绑定App参数(mobileconfig中无法声明参数,可将参数隐藏至url中)

① App发送数据请求获取对应mobileconfig的文件地址使用Safari打来即可

② 服务端将App数据请求参数写入mobileconfig对应的url中同时生成文件将文件地址发挥App使用

③ 使用参照说明第四步骤进行即可

④ 服务端通过拦截mobileconfig文件的url解析出App信息,将UDID与设备绑定

⑤ 假如需要App获取UDID需要根据参数中的App传递的token发送推送服务

2 只需要获取设备的UDID

此时无需做特殊处理只需提供一url用于设备POST数据即可

九 示例代码

url说明 :token 为App内部的token

:name 对应App内操作请求的人员姓名

:id 同:name说明

流程说明

1 App 发送请求包含 token username userId

2 服务端接收参数经 token username userid编辑进mobileconfig文件中的url项中,然后响应App的HTTP请求将文件地址url包含进去

3 App根据文件地址url调用Safari安装mobileconfig文件

4 具有管理权限人员完成mobilecofig操作安装

5 mobileconfig验证发送UDID+SERIAL等信息至服务端,服务端解析url+POST的数据完成数据整体接收

6 服务端结合业务存储数据和重定向操作(同时向发送请求生成mobilecofig文件的App发送推送通知【可选操作,根据需要处理】)

iOS 通过Safari下载mobileconfig进行安装

[[UIApplication sharedApplication] openURL:[NSURLURLWithString:@"http://192.168.1.100:8080/more_static/text.mobileconfig"]];

参考文件

https://developer.apple.com/business/documentation/Configuration-Profile-Reference.pdf

GitHub服务端例子与参考解释

https://github.com/shaojiankui/iOS-UDID-Safari

CSDN博主文档

https://blog.csdn.net/huxinguang_ios/article/details/89841982

说明:

1 获取方法没找到官方文档,经测试可满足需求获取设备 UDID和 SERIAL

2 接受数据没找到对应官方文档具体说明,可转换为String采用正则匹配等方式获取需要数据(此处根据实现具体自由发挥处理)

3 流程参考文中时序图以及后文CSDN链接,服务端实现可参照下文参考文献中的demo

4 mobileconfig文件格式参考CSDN链接以及demo中的文档说明

5 mobileconfig文中字段含义可参考文末PDF官方文档链接

6 接收服务接收采用HTTP协议POST

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大话swift 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档