苹果个人开发者自动发包(超级签)教程(1)-UDID获取

最近ios15上新,企业签升级导致被封  想起了苹果的个人开发账号的100个绑定名额,由于一些app性质原因,用不了第三方的超级签功能所以东找西找拼凑出来这么一套。

总结出流程 :

        准备材料:开发者账号续费,开发者账号证书创建(Certificates),身份认证创建(Identifiers),其中证书创建和身份认证创建都是可以在接口中实现,这边为了省力就在后台创建了 Sign In - Apple

        一、获取用户设备信息 

        二、用户设备信息上传到苹果开发者后台.

        三、新建描述文件信息并下载

        四、对ipa包重新签名并重新发布新包

不足之处大家多多指导。

获取用户设备信息

首先获取UDID的需要苹果用户安装 描述文件  来获取用户的设备信息

操作步骤 1、用户下载描述文件    2、设置通用中安装描述文件    3、安装好后会通过描述文件中的通知地址 发送需要的信息到服务端  4、服务端接收消息处理   

获取udid的流程就是这样,下面是具体方式

1、描述文件准备

下面是描述文件的内容,根据自己的情况修改

<?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://XXXXXXXXX.com/test.apsx</string>  <!--通知地址-->
    <key>DeviceAttributes</key>
    <array>
        <string>UDID</string>			<!--需要获得的参数往里加-->
        <string>DEVICE_NAME</string>
        <string>VERSION</string>
        <string>PRODUCT</string>
        <string>MAC_ADDRESS_EN0</string>
        <string>IMEI</string>
        <string>ICCID</string>
    </array>
</dict>
<key>PayloadOrganization</key>
<string>简介</string>
<key>PayloadDisplayName</key>
<string>名称</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadUUID</key>
<string>B5F0BB7E-4E7E-CAD8-BFB5-492F32FB831B</string>
<key>PayloadIdentifier</key>
<string>xxx</string>
<key>PayloadDescription</key>
<string>简介</string>
<key>PayloadType</key>
<string>Profile Service</string>
</dict>
</plist>

以上代码复制到本地  以demo.mobileconfig 后缀名保存,然后放到服务器端 

在服务器中配置MIME

扩展名: .mobileconfig

类型:application/x-apple-aspen-config

新建一个html   里面放个链接 指向刚刚的描述文件下载

<a href="./demo.mobileconfig">点我</a>

在苹果默认浏览器中打开后点击 会提示  是否安装  点击允许即可

在设置通用描述文件中  可点击对应的描述文件查看配置的详细信息

2、服务端

用户安装完描述文件后 苹果会发送用户设备信息到文件中配置的地址

<string>https://XXXXXXXXX.com/test.apsx</string>  <!--通知地址-->

发送内容如下:

0?	*?H??
??0?10	  0?	*?H??
??$???<?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>IMEI</key>
	<string>35 ***** ******* 2</string>
	<key>PRODUCT</key>
	<string>iPhone10,3</string>
	<key>UDID</key>
	<string>3931e******************032b2bd</string>
	<key>VERSION</key>
	<string>1****</string>
</dict>
</plist>
      ??
[0??0?\?
?????b?0
	*?H??
 0Z10	UUS10U

前后部分都是乱码   只要截取中间xml部分内容即可

.net为例

 int start = curTxt.IndexOf("<!DOCTYPE plist");        //获取xml开始的索引
 int end = curTxt.IndexOf("</plist>");                //获取xml结束的索引
 string xml = curTxt.Substring(start, end - start + "</plist>".Length);        //获取xml内容

获取到的xml内容中 我们只用到了  dict节点的模块  里面的数据 是一行key  一行value 所以这里可以循环节点对象获取udid

string udid = string.Empty;
int index = 0;
foreach (XmlElement item in q.ChildNodes)
{
      switch (item.InnerText.ToUpper())
        {
            case "UDID":                
                udid = q.ChildNodes[index + 1].InnerText;            //获取到对应的key之后 索引加1  获取值
                break;
            default:
                break;
         }
        index++;
}

到此  用户UDID已经获取到手

最后 这里还需要做一个301重定向不然苹果会认为描述文件安装失败

string url = "https://*********/test.html?UDID=123*************23;

Response.StatusCode = 301;
Response.Status = "301 Moved Permanently";
Response.AppendHeader("Location", url);
Response.AppendHeader("Cache-Control", "no-cache");  
Response.End();

到此  获取用户UDID 已处理完成

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值