专栏首页大话swift2020年iOS开发如何获取设备的序列号与UDID

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

一 为何不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

本文分享自微信公众号 - 大话swift(gh_ca2266b7cab0),作者:YuLongLi

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • go 编译执行文件分发

    今天咱们不说go的语法知识,为什么不说语法了呢?因为咱们做了这么就的go东西全是在编辑器中运行的,大家是不是很想知道怎么在编辑器之外去执行go程序呢?(win的...

    大话swift
  • 2020 iOS 开发必看的新规

    在App开发日趋完备的今天无论是android的apk还是iOS的IPA中都充斥这大量的跨平台,H5来满足日常变化的功能,然鹅在这个IOS平台上却要随时可能被下...

    大话swift
  • 怎么将golang部署到docker

    我们都知道go能够这么火是因为他是docker官方标准语言,当然了docker也将go的性能发挥到了极致,可谓是相辅相成,交相辉映。而最近学洗go的过程中很多项...

    大话swift
  • 干货|前端同构渲染的思考与实践

    开篇 前端同构渲染的相关架构,给我最直观的感受,这是前端渲染最为复杂的一种方案,也是为了追求极致的用户体验不得不去做的一种尝试,虽然 Node.js 的引入赋...

    腾讯NEXT学位
  • 北漂你后悔了吗?“失败”的北漂十年经历,真的尽力了...

    在我离开北京的时候,我还依稀记得,十年前我对朋友说过的那句话:我一定要留在北京,因为那里有梦想。

    纯洁的微笑
  • 跨界设计 | 沉浸式新媒体

    ? 腾讯ISUX isux.tencent.com 社交用户体验设计 ? ? 在传统行业打滚数年后的设计师,总是难以回避灵气和匠气的博弈,日常创作逐渐走入某...

    腾讯ISUX
  • Kettle之“获取文件名”

    收到的需求是这样的:有几百个文本文件,每个文件内容的格式相同,都是有固定分隔符的两列,每个文件有几千行记录。现在需要把这些文件的内容导入一个表,除了文件中...

    用户1148526
  • Goland 中配置 go-lint 代码检查

    go-lint 是由go官方提供的一个代码审查及问题提示的工具.在vscode 中,如果安装了go-lint 则会在终端的问题中显示所有的代码不规范的地方及优化...

    caoayu
  • 自己动手实现4大免费聊天机器人:小冰、图灵、腾讯、青云客

    聊天机器人(Chatterbot)是经由对话或文字进行交谈的计算机程序。能够模拟人类对话,通过图灵测试,如Siri、小爱同学、微软小冰等。

    小锋学长
  • java里的native方法的使用正解

    forrestlin

扫码关注云+社区

领取腾讯云代金券