通过Safari与mobileconfig获取iOS设备UDID(设备唯一标识符)

本文基于在线安装Profile来实现获取UDID。

先看下效果,真机打开

科普

UDID

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

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

由于近期项目需求是设备授权的形式使用软件,使用钥匙串等方法不完全能解决问题,因为重置或重做系统都会清除uuid然后重新存入,所以想到了用safari的方式获取设备真实的UDID

MDM

iOS支持企业级的MDM(Mobile Device Managment),也就是所谓的移动设备管理,目的就是让企业能够方便的管理 iPhone、Pad等移动设备。具体的做法是通过在系统中安装配置文件(Profiles)的方式实现各种功能,设备管理,设备安全,获取设备信息,设备配置,备份和恢复等几类功能,可以根据不同应用场景实现很多具体小功能。

Over-the-Air Profile Delivery and Configuration

一个配置的profile描述文件允许你基于iOS设备发布配置信息,如果你需要配置大量设备的邮件设置,网络设置,或者设备的证书,配置文件可以轻松完成。

iOS配置描述文件包含选多可以指定的设置,包括:

Passcode policies 密码策略

Restrictions on device features (disabling the camera, for example) 设备特性限制(例如摄像头)

Wi-Fi settings WIFI设置

VPN settings VPN设置

Email server settings 邮件服务器设置

Exchange settings Exchange设置

LDAP directory service settings LDAP目录服务设置

CalDAV calendar service settings CalDAV日历服务设置

Web clips 桌面快捷方式

Credentials and keys 凭证和密钥

Advanced cellular network settings 高级蜂窝网络设置

一、通过苹果Safari浏览器获取iOS设备UDID步骤

苹果公司允许开发者通过iOS设备和Web服务器之间的某个操作(其实就是MDM的获取设备信息功能),来获得IOS设备的UDID(包括其他的一些参数)。以下为简要概述:

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

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

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

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

ota开发流程图

二、.mobileconifg

在这篇文章中,主要讲如何获得标识符。其实还可以获取更多信息,以下是一个获得UDID示例.mobileconfig配置

Objective-C

PayloadContent

URL

https://dev.skyfox.org/udid/receive.php

DeviceAttributes

UDID

IMEI

ICCID

VERSION

PRODUCT

PayloadOrganization

dev.skyfox.org

PayloadDisplayName

查询设备UDID

PayloadVersion

1

PayloadUUID

3C4DC7D2-E475-3375-489C-0BB8D737A653

PayloadIdentifier

dev.skyfox.profile-service

PayloadDescription

本文件仅用来获取设备ID

PayloadType

Profile Service

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

-//Apple//DTD PLIST 1.0//EN""http://www.apple.com/DTDs/PropertyList-1.0.dtd">

PayloadContent

URL

https://dev.skyfox.org/udid/receive.php

DeviceAttributes

UDID

IMEI

ICCID

VERSION

PRODUCT

PayloadOrganization

dev.skyfox.org

PayloadDisplayName

查询设备UDID

PayloadVersion

1

PayloadUUID

3C4DC7D2-E475-3375-489C-0BB8D737A653

PayloadIdentifier

dev.skyfox.profile-service

PayloadDescription

本文件仅用来获取设备ID

PayloadType

ProfileService

你需要填写回调数据的URL和PayloadUUID。该PayloadUUID仅仅是随机生成的唯一字符串,类似bundleid,一般是域名倒置,用来标识唯一。

iOS12 mobileconfig中的URL要用https地址(例如 https://dev.skyfox.org/udid/receive.php)。否者会报ATS错误。

注意:mobileconfig下载时设置文件内容类型Content Type为:application/x-apple-aspen-config

服务器上的文件

当访问mobileconfig文件不能直接下载时,可能就需要设置mime content type了,application/x-apple-aspen-config,

设置content type大体上两种方法

1.服务器容器设置

.htaccess增加如下配置

Shell

AddType application/x-apple-aspen-config .mobileconfig

1

2

3

AddTypeapplication/x-apple-aspen-config.mobileconfig

2.php等动态语言直接设置

PHP

header('Content-type: application/x-apple-aspen-config; chatset=utf-8');

header('Content-Disposition: attachment; filename="company.mobileconfig"');

echo $mobileconfig;

1

2

3

header('Content-type: application/x-apple-aspen-config; chatset=utf-8');

header('Content-Disposition: attachment; filename="company.mobileconfig"');

echo$mobileconfig;

三、iOS设备安装.mobileconfig描述文件

新建一个用于下载mobileconfig的网页,这里我命名为udid.php

Objective-C

获取您的UDID

UUDI:

1.点击获取您的UDID

2.验证ipa

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

获取您的UDID

UUDI:

1.点击获取您的UDID

2.验证ipa

ios 设备获取idfa_通过Safari浏览器获取iOS设备UDID(设备唯一标识符)相关推荐

  1. 通过Safari浏览器获取iOS设备UDID(设备唯一标识符)

    通过Safari与mobileconfig获取iOS设备UDID(设备唯一标识符) 科普:U D I D (Unique Device Identifier),唯一标示符,是iOS设备的一个唯一识别码 ...

  2. 用mac的safari浏览器调试ios手机的网页

    iOS 6给Safari带来了远程的Web检查器工具. 一.参考链接 ios开发者文档 safari开发者工具 remote debugging safari 二.设置iphone 设置 -> ...

  3. 在mac电脑上,用Safari浏览器调试ios手机移动端页面

    打开iphone手机的开发者模式,流程是:[设置]->[Safari]->[高级]->开启[Web检查器], 具体如下图所示 打开Mac上Safari的开发者模式,流程是[Safar ...

  4. ios 用浏览器打开html,iOS开发:调起Safari浏览器打开Url(对中文等特殊字符进行处理)...

    开发语言:Swift 开发生态:iOS 本人Android 小白一枚~ 这里以调起百度网页为例. 先对中文等特殊字符进行处理 let urlString = "https://www.bai ...

  5. 复制链接到safari浏览器打开,如何从Safari浏览器获取网址

    How can I access the Safari browser from C# to get the current URL? 解决方案 It's not exactly the best a ...

  6. 通过Safari与mobileconfig获取iOS设备UDID(设备唯一标识符)

    本文基于在线安装Profile来实现获取UDID. 先看下效果,真机打开 获取设备UDID 科普 UDID UDID (Unique Device Identifier),唯一标示符,是iOS设备的一 ...

  7. window 使用 Edge/Chrome 调试手机 iOS 的 Safari 浏览器

    先上效果图 真机 PC Edge window 使用 Edge/Chrome 调试手机 iOS 的 Safari 浏览器 Safari 是 苹果配套的浏览器,正常来说如果使用的是 macOS 直接一条 ...

  8. ios运行html游戏,Html游戏 - IOS的​​Safari浏览器崩溃

    我正在运行一个HTML应用程序开发使用打字稿,pixi.js webgl,网络音频.Html游戏 - IOS的​​Safari浏览器崩溃 游戏在各种设备和浏览器上的windows和android上运行 ...

  9. 关于手机端ios手机自带safari浏览器网页缩放问题

    ** 前几天我做了一个bs的项目,在安卓的手机上面用户是可以禁止缩放的.但是在ios手机自带的safari浏览器上是可以缩放的,怎么解决的呢 通过我的各种搜索 终于找到了解决办法 ** window. ...

  10. iOS设备唯一标识符解决方案

    iOS设备唯一标识符解决方案 最近在公司的项目中有记录设备唯一标识符的需求,通过唯一标识符去识别设备的注册类别从而进行角色的切换,在这个过程中查找了一些资料,在此稍作总结,留下一些痕迹,当然能给有同类 ...

最新文章

  1. Mac homebrew类似apt-get命令安装包
  2. android edittext限制字节_android EditText输入限制
  3. ComboBox的数据联动
  4. java中的IO详解(上)
  5. JAVA学习篇--JSP实现原理
  6. [Python学习笔记]h5py入门讲解
  7. 小甲鱼python课件源代码_[Python基础] 小甲鱼零基础入门Python学习视频+全套源码课件 Python视频教程 96讲...
  8. Oracle 查看 对象 持有锁的情况
  9. Sping Cloud Eureka
  10. PDF 补丁丁 (修改PDF书签;拆分、合并、制作PDF;提取图片) 0.3.0.8 正式版
  11. 终极JPA查询和技巧列表–第3部分
  12. docker nginx tomcat mysql_使用docker部署nginx+tomcat架构(2):访问mysql数据库
  13. xboxones手柄驱动_微软Xbox One S全数字版再次发售,1043元
  14. 安全小测试:介绍一个简单web安全知识测试的网站
  15. Go设计模式之Factory
  16. 如何在家免费使用知网?
  17. Flutter TextField 去掉下滑线和底部字符数计数
  18. 牛客多校第十场 Han Xin and His Troops(扩展中国剩余)
  19. 与 Hadoop 对比,如何看待 Spark 技术
  20. Auto.js 意图跳转系统大全

热门文章

  1. 书单 | 7月畅销新书情报,看谁是最大黑马
  2. PL3376C-ASEMI电源管理芯片PL3376C
  3. 3376.成绩排序2
  4. jdk 7 下载地址(全新)
  5. 透镜成像原理,眼球成像原理,小孔成像原理
  6. word中的方括号怎么删_word中怎么快速删除所有的括号及内容
  7. oracle的number类型
  8. Unity优化百科(UWA 博客目录)
  9. ArcGIS js api中关于比例尺单位改为中文的方式
  10. 十大模拟炒黄金白银的软件