首页 > 编程知识 正文

苹果开发者网站,苹果开发者

时间:2023-05-06 15:53:19 阅读:201402 作者:2308

最近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 rel="external nofollow" 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?? 0Z10UUS10U

前后部分都是乱码   只要截取中间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 已处理完成

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。