获取苹果设备的UDID
苹果开发中,经常会添加测试设备UDID
,通常在fir、蒲公英等平台获取,除了此类平台我们自己也可以实现UDID
的获取,下面就通过已有苹果开发证书和模板来获取苹果设备的UDID
。
先体验一下:获取UDID
1、准备描述文件模板,并设置模板信息。
描述文件模板p_udid.mobileconfig
文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">;
<plist version="1.0"><dict><key>PayloadContent</key><dict><key>URL</key><!--接收数据的接口地址--><string>https://download.onapp.top/udid/udid.php</string>;<key>DeviceAttributes</key><array><string>UDID</string><string>IMEI</string><string>ICCID</string><string>VERSION</string><string>PRODUCT</string></array></dict><key>PayloadOrganization</key><string>com.onapp.org</string> <!--组织名称--><key>PayloadDisplayName</key><string>onapp.top</string> <!--安装时显示的标题--><key>PayloadVersion</key><integer>1</integer> <!--版本号--><key>PayloadUUID</key><string>60c078ae-6ab1-4e4a-935b-a328e9de8242</string> <!--自己随机填写的唯一字符串--><key>PayloadIdentifier</key><string>dev.onapp.profile-service</string><key>PayloadDescription</key><string>本文件将帮助您获取当前设备的UDID,不会安装到当前设备上</string> <!--描述--><key>PayloadType</key><string>Profile Service</string></dict>
</plist>
URL
:为用户授权后,将设备信息返回的地址
DeviceAttributes
:设备属性列表,需要获取哪些属性:
UDID、IMEI、ICCID、VERSION、PRODUCT
用户授权后,会重定向URL
,并将以上属性带在URL
上。可以直接在URL
页面获取显示。
2、获取Mac已安装证书。命令如下:
security find-identity -p codesigning -v
如果没有你应该不是做iOS开发的?。
3、用已有证书对模板签名。命令如下:
security cms -S -N "iPhone Distribution: tianpeng ye (YN782HM755)" -i p_udid.mobileconfig -o udid.mobileconfig
签名后的文件是加密文件,不能直接打开查看,查看需要使用security
命令查看。命令如下:
security cms -D -I udid.mobileconfig
4、创建html页面用户触发获取配置描述文件。代码如下:
<?phpinclude '../common.php';$UDID = $_GET['UDID'];
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0,user-scalable=no" name="viewport" id="viewport" />
<title>获取您的UDID</title>
<script src="../js/jquery.js"></script>
<script src="../js/clipboard.min.js"></script><style type="text/css">.button-class{height: 40px;text-align: center;border-radius: 2px;font-size: 18px;background-color: rgb(78,164,154);border:none;color: white;}.copy-class{margin-top: 30px;display: flex;flex-direction: column;justify-content: space-around;text-align: center;color: red;}.btn{font-size: 16px;}img{width: 100%;}
</style>
<body><div id="content"><div style="text-align: center;margin-top: 50px;"><?php$device = getDeviceType();$agent = strtolower($_SERVER['HTTP_USER_AGENT']);if(strpos($agent, 'safari')){?><button class="button-class" onclick="getUdid()">点击获取当前设备的UDID</button><?php }else{ ?><button class="button-class" onclick="">请在Safari浏览器中打开获取UDID</button><?php }?></div><?phpif(strlen($UDID)>0){?><div class="copy-class"><?php echo 'UDID:'.$UDID;?></div><div style="text-align: center;margin-top: 30px;"><button class="btn button-class" data-clipboard-action="copy" data-clipboard-text="<?php echo $UDID;?>" onclick="">复制UDID</button></div><?php }?><img style="margin-top: 30px;" src="../images/udid_1.png"><img src="../images/udid_2.png"><img src="../images/udid_3.png"></div><script type="text/javascript">function getUdid(){var data = "$data['name']";location.href = "udid.mobileconfig";}var clipboard = new ClipboardJS('.btn');clipboard.on('success', function(e) {var string = e.text;alert('已复制到粘贴板');});clipboard.on('error', function(e) {console.log(e);});</script>
</body>
</html>
测试需要在Safari浏览器下,其他应用会屏蔽这种获取权限。点击获取当前设备的UDID按钮,执行页面跳转location.href = "udid.mobileconfig"
。下载udid.mobileconfig
配置文件,去设置页-通用-描述文件,可以安装授权。
5、用户主动安装后会将以上描述文件中设置的属性放置到重定向的URL中,即在udid.php文件中可以获取。如下:
<?php
include '../common.php';
$deviceInfo = file_get_contents('php://input');
file_put_contents("../log/log.txt", "log:".$deviceInfo,FILE_APPEND);
// $deviceInfo = urlencode($deviceInfo);
$PRODUCT = getInfoForKey('PRODUCT',$deviceInfo);
$ICCID = getInfoForKey('ICCID',$deviceInfo);
$VERSION = getInfoForKey('VERSION',$deviceInfo);
$UDID = getInfoForKey('UDID',$deviceInfo);
$IMEI = getInfoForKey('IMEI',$deviceInfo);$time = date("Y-m-d h:i:s",time());
$string = $time." PRODUCT:$PRODUCT "." ICCID:$ICCID "."VERSION:$VERSION "." UDID:$IMEI \n";
file_put_contents("../log/dev_info_log.txt",$string,FILE_APPEND);//这里一定要301跳转,否则设备安装会提示"无效的描述文件"
header('HTTP/1.1 301 Moved Permanently');
header("Location: https://download.onapp.top/udid/index.php?UDID=$UDID&IMEI=$IMEI";);
?>
属性值返回到该文件后,立即重定向到起始也index.php
展示,将所需要的参数通过地址待到展示页。
注意:必须配置安全证书,https访问,阿里购买免费证书配置即可。
展示如下
允许下载
根据提示去设置看看
[外链图片转存失败(img-vNjAzUI2-1562593103566)(https://upload-images.jianshu.io/upload_images/1609369-091733b313c4c2f9.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
设置-通用-描述文件
安装后重定向到首页
获取苹果设备的UDID相关推荐
- php 获取手机设备的ID,获取苹果设备的UDID
苹果开发中,经常会添加测试设备UDID,通常在fir.蒲公英等平台获取,除了此类平台我们自己也可以实现UDID的获取,下面就通过已有苹果开发证书和模板来获取苹果设备的UDID. 先体验一下:获取UDI ...
- 如何获取苹果设备的UDID(iPhone/iPad UDID查询方法)
方法一.通过电脑连接苹果手机后查询 1.在电脑上下载并安装爱思助手,安装完成后将电脑和苹果手机使用苹果数据线连接起来: 编辑切换为居中 添加图片注释,不超过 140 字(可选) 然后启动爱思助手这 ...
- 如何获取iOS 设备的 UDID
如何获取iOS 设备的 UDID UDID,是 iOS 设备的一个唯一识别码,每台 iOS 设备都有一个独一无二的编码,这个编码,我们称之为识别码,也叫做UDID( Unique Device Ide ...
- 三种获取苹果设备UID的方式
第一种方式.请在IOS设备的Safari中输入https://www.pgyer.com/tools/udid( 或http://fir.im/udid)安装证书获取UID. 第二种方式:通过苹果电脑 ...
- 如何获取苹果设备UDID?
步骤一.微信扫码下方二维码,选择用手机自带Safari浏览器打开 图1 图2 步骤二.第一次安装获取UDID 步骤三.跳转安装界面后,点击"安装" 步骤四.选择安装后,输入密码,安 ...
- 获取苹果设备和系统信息(更新至iPhone X)
1.获得设备型号 #import <sys/utsname.h>+ (NSString *)getCurrentDeviceModel{struct utsname systemInfo; ...
- 查看苹果设备UDID方式
在运行iOS自动化测试时有的时候需要使用到苹果设备的UDID,为方便查看苹果设备的UDID,总结查看苹果设备UDID的几种方式: 一.通过XCode查看 1.设备连接上Max电脑 2.打开XCode, ...
- iOS杂谈14—iOS设备的UDID是什么?苹果为什么拒绝获取iOS设备UDID的应用?如何替代UDID?
转载于:dApps开发者 本文讲诉的主要是为什么苹果2011年8月发布iOS 5后就开始拒绝App获取设备的UDID以及UDID替补方案,特别提醒开发者苹果App Store禁止访问UDID的应用上架 ...
- 【转】iOS设备的UDID是什么?苹果为什么拒绝获取iOS设备UDID的应用?如何替代UDID?...
本文讲诉的主要是为什么苹果2011年8月发布iOS 5后就开始拒绝App获取设备的UDID以及UDID替补方案,特别提醒开发者苹果App Store禁止访问UDID的应用上架(相关推荐:APP被苹果A ...
- iOS设备的UDID是什么?苹果为什么拒绝获取iOS设备UDID的应用?如何替代UDID?
本文讲诉的主要是为什么苹果2011年8月发布iOS 5后就开始拒绝App获取设备的UDID以及UDID替补方案,特别提醒开发者苹果App Store禁止访问UDID的应用上架(相关推荐:APP被苹果A ...
最新文章
- [知识库分享系列] 三、Web(高性能Web站点建设)
- 《统计学习方法》资源
- 《Pokemon Go》开发商明年将推出「哈利波特」题材AR游戏
- mysql 分区表详解
- 为什么Angular的路由执行离不开router-outlet标签
- go java性能_服务端I/O性能大比拼:Node、PHP、Java和Go
- Leetcode--130. 被围绕的区域(java)
- 通过反射创建新类示例的两种方式及比较
- android开关控件Switch和ToggleButton
- 免费CSDN积分获取
- “舱驾融合”技术发展趋势分析
- linux系统安装花生壳
- Captin for mac(大小写切换悬浮窗提示)
- matlab动刚度仿真,基于ANSYS的转子支承动刚度计算分析.doc
- centos 6.5安装杀毒软件clamav
- 用混淆矩阵计算kappa系数
- 洛谷 P3604 美好的每一天
- python文件重命名加日期_Python文件创建日期和Critiqu的重命名请求
- 制作Android程序的应用图标并应用
- uniapp 打包app后,选择文件上传时,编辑上传文件
热门文章
- Alien Skin Exposure X7图片调色教程
- 2020年最酷的十个无人机项目(下)
- 下载文件时报错:无法复制文件,无法读源文件或磁的解决方法
- adb 命令行导出Android APP数据库.db文件
- 如何清除服务器错误文档,如何删除Windows错误报告文件
- mysql存储过程成绩等级_MySQL使用存储过程创建百万级别测试数据
- 【我的OpenGL学习进阶之旅】学习OpenGL ES 3.0 的实战 Awsome Demo (下)之 图片转场和轮播特效专场
- 苹果cms vod.html,苹果cms
- 【GISer必备】150+地图数据免费下载
- vue 阻止输入框冒泡