积分墙(通过safari浏览器获取ios设备udid) -j9九游会真人游戏第一品牌

本文基于在线安装profile来实现获取udid

演示:用safari浏览器打开

演示链接: 获取ios设备udid

通过苹果safari浏览器获取ios设备udid步骤

1、在你的web服务器上创建一个.mobileconfig的xml格式的描述文件;
2、用户在所有操作之前必须通过某个点击操作完成.mobileconfig描述文件的安装;
3、服务器需要的数据,比如:udid,需要在.mobileconfig描述文件中配置好,以及服务器接收数据的url地址(此地址必须为https);
4、当用户设备完成数据的手机后,返回提示给客户端用户;

.mobileconfig



    
        payloadcontent
        
            url
            https://ex.eyunzhu.com/jfq/getudid/receive.php
            deviceattributes
            
                udid
                imei
                iccid
                version
                product
            
        
        payloadorganization
        eyunzhu.com
        payloaddisplayname
        查询设备udid
        payloadversion
        1
        payloaduuid
        3c4dc7d2-e475-3375-489c-0bb8d737a653
        payloadidentifier
        dev.skyfox.profile-service
        payloaddescription
        本文件仅用来获取设备id
        payloadtype
        profile service
    

你需要填写回调数据的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增加如下配置

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

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

header('content-type: application/x-apple-aspen-config; chatset=utf-8');
header('content-disposition: attachment; filename="company.mobileconfig"');
echo $mobileconfig;

ios设备安装.mobileconfig描述文件

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



 
 
获取您的udid






获取udid

udid 是一种 ios 设备的特殊识别码。除序号之外,每台 ios 装置都另有一组独一无二的号码,我们就称之为识别码( unique device identifier, udid )。就像我们的身份证一样。开发者需要知道你的 udid,才可以让你的手机安装访问测试中的应用,就像需要你的身份证才可以让你登机一样 :)


服务器接收返回数据并显示

使用xml等解析库解析数据后,直接把需要的udid等设备信息传到显示页面即可

';
$pos1 = strpos($data, $plistbegin);
$pos2 = strpos($data, $plistend);
$data2 = substr($data, $pos1, $pos2 - $pos1);
$xml = xml_parser_create();
xml_parse_into_struct($xml, $data2, $vs);
xml_parser_free($xml);
$udid = "";
$challenge = "";
$device_name = "";
$device_product = "";
$device_version = "";
$iterator = 0;
$arraycleaned = array();
foreach ($vs as $v) {
    if ($v['level'] == 3 && $v['type'] == 'complete') {
        $arraycleaned[] = $v;
    }
    $iterator  ;
}
$data = "";
$iterator = 0;
foreach ($arraycleaned as $elem) {
    $data.= "\n==" . $elem['tag'] . " -> " . $elem['value'] . "
"; switch ($elem['value']) { case "challenge": $challenge = $arraycleaned[$iterator 1]['value']; break; case "device_name": $device_name = $arraycleaned[$iterator 1]['value']; break; case "product": $device_product = $arraycleaned[$iterator 1]['value']; break; case "udid": $udid = $arraycleaned[$iterator 1]['value']; break; case "version": $device_version = $arraycleaned[$iterator 1]['value']; break; } $iterator ; } $params = "udid=" . $udid . "&challenge=" . $challenge . "&device_name=" . $device_name . "&device_pr oduct=" . $device_product . "&device_version=" . $device_version; //header("location: http://dev.skyfox.org/udid?data=".rawurlencode($params)); header('http/1.1 301 moved permanently'); header("location: https://ex.eyunzhu.com/jfq/getudid/?" . $params); ?>

此时访问index.php页面即可

对mobileconfig文件进行签名

安装描述文件时,会提醒描述文件未签名,mobileconfig 签名有几种方法,这里使用ssl证书对ios描述文件mobileconfig的签名认证

重命名证书密钥文件名(apache ssl证书文件)如下:

  • server.crt (证书)
  • ca.crt(root_bundle证书)
  • server.key (密钥)

命令行进行签名

openssl smime -sign -in uuid.mobileconfig -out signed.mobileconfig -signer server.crt -inkey server.key  -certfile ca.crt -outform der -nodetach

源代码下载:


发表评论 登录

目前评论:1

  • avatar yz7z 2022-12-31 13:11:30

    udid