相信2019年最火的应该就是这个东西了,我也是摸着石头过河,勉强混进了这个行业!

超级签这个东西吧,说白了就是用个人账号分发应用,大致分成以下几个步骤吧

一、使用配置文件获取UDID

苹果公司允许开发者通过IOS设备和Web服务器之间的某个操作,来获得IOS设备的UDID(包括其他的一些参数)。这里的一个概述:

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

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

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

4.当用户设备安装描述文件后,设备会回调你设置的URL,如果你的URL返回302跳转的话,Safari浏览器会跳转到你所给的地址;服务器做一些301跳转,存储UDID等操作

XML代码如下:

<?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>一个接收UDID的网址</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>GuangdongQi</string><!--组织名称-->
        <key>PayloadDisplayName</key>
        <string>AppFree</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
        <key>PayloadUUID</key>
        <string>9CF421B3-9853-4454-BC8A-982CBD3C907C</string><!--自己随机填写的唯一字符串,http://www.guidgen.com/ 可以生成-->
        <key>PayloadIdentifier</key>
        <string>com.gpon.profile-service</string>
        <key>PayloadDescription</key>
        <string>This temporary profile will be used to find and display your current device's UDID.</string>
        <key>PayloadType</key>
        <string>Profile Service</string>
    </dict>
</plist>

注意

①、接收网址的地址需要SSL签名,自签名的不行,这也是苹果强制https的一种方式吧

②、mobileconfig下载时设置文件内容类型Content Type为:application/x-apple-aspen-config(遇到问题的都是因为这个),或者像这里用一个简单页面做好下载mobileconfig文件,引导用户安装

二、注册包名,添加UDID到账号,生成描述文件

这个东西网上有很多教程,具体可以根据自己的喜好来执行

我们自己这边使用的是apple 的接口文档实现的,通过jwt生成 Authorization token链接api创建包,添加udid生成描述文件,api请求地址api.appstoreconnect.apple.com需要使用这种方式的可以看看官方给出的文档

三、IPA包重新签名

mac这边相信很多看的都是Fastlane这个工具,这里呢我就不说mac的环境了,毕竟物理机贵!说下linux的吧,现在linux这边的工具还是比较多的,例如开心签收费的。当然教程里面我们不会说这个,这里推荐我们自己使用的isign这个脚本吧,先说下这个脚本有坑,直接使用可能会显示签名成功,然后安装的时候无法安装!需要自己修改下使用。当然还有其他的脚本,其他的我就不推了,因为不完美,不能签带Frameworks的包

四、把签名后的包分发

<?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>items</key>        <array>            <dict>                <key>assets</key>                <array>                    <dict>                        <key>kind</key>                        <string>software-package</string>                        <key>url</key>                        <string>' . $result["url"] . '</string>                    </dict>                </array>                <key>metadata</key>                <dict>                    <key>bundle-identifier</key>                    <string>' . $result["bundle"] . '</string>                    <key>bundle-version</key>                    <string>' . $result["version"] . '</string>                    <key>kind</key>                    <string>software</string>                    <key>title</key>                    <string>' . $result["name"] . '</string>                </dict>            </dict>        </array>    </dict></plist>创建一个plist文件,然后用网页链接进行分发!

我相信市场上现在绝大多数的超级签系统都来源于闪签,有能力的就更新了好几代,没能力的就还是之前的,我们之前做的时候也是参考了闪签的部分源码!做超级签相关技术交流可以加QQ群1084918361 现在还不清楚推送这个东西怎么弄的,还没开始研究,有兴趣的朋友加个群大家一起交流交流!码字不易,转载请注明出处!

2020年IOS超级签最新实现原理详解的更多相关文章

  1. iOS中Category和Extension 原理详解

    (一)Category .什么是Category? category是Objective-C .0之后添加的语言特性,别人口中的分类.类别其实都是指的category.category的主要作用是为已 ...

  2. 李洪强iOS经典面试题156 - Runtime详解(面试必备)

    李洪强iOS经典面试题156 - Runtime详解(面试必备)   一.runtime简介 RunTime简称运行时.OC就是运行时机制,也就是在运行时候的一些机制,其中最主要的是消息机制. 对于C ...

  3. 节点地址的函数list_entry()原理详解

    本节中,我们继续讲解,在linux2.4内核下,如果通过一些列函数从路径名找到目标节点. 3.3.1)接下来查看chached_lookup()的代码(namei.c) [path_walk()> ...

  4. WebActivator的实现原理详解

    WebActivator的实现原理详解 文章内容 上篇文章,我们分析如何动态注册HttpModule的实现,本篇我们来分析一下通过上篇代码原理实现的WebActivator类库,WebActivato ...

  5. LVS原理详解(3种工作模式及8种调度算法)

    2017年1月12日, 星期四 LVS原理详解(3种工作模式及8种调度算法)   LVS原理详解及部署之二:LVS原理详解(3种工作方式8种调度算法) 作者:woshiliwentong  发布日期: ...

  6. Namenode HA原理详解(脑裂)

    转自:http://blog.csdn.net/tantexian/article/details/40109331 Namenode HA原理详解 社区hadoop2.2.0 release版本开始 ...

  7. JSPatch实现原理详解<二>

    本文转载至 http://blog.cnbang.net/tech/2855/ 距离上次写的<JSPatch实现原理详解>有一个月的时间,在这段时间里 JSPatch 在不断地完善和改进, ...

  8. (转)MySQL备份原理详解

    MySQL备份原理详解 原文:http://www.cnblogs.com/cchust/p/5452557.html 备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之 ...

  9. NFS原理详解

    NFS原理详解 摘自:http://atong.blog.51cto.com/2393905/1343950 2013-12-23 12:17:31 标签:linux NFS nfs原理详解 nfs搭 ...

随机推荐

  1. 吴裕雄--天生自然Android开发学习:android开发知识学习思维导图

  2. RabbitMQ(1)——基础入门

    本文章写在了CSDN :https://blog.csdn.net/qq_30348181/article/details/87911398

  3. Java IO: Reader And Writer

    原文链接 作者: Jakob Jenkov  译者: 李璟(jlee381344197@gmail.com) Java IO的Reader和Writer除了基于字符之外,其他方面都与InputStre ...

  4. 吴裕雄--天生自然python学习笔记:Python3 数据结构

    列表 Python中列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和元组不能. list.append(x) 把一个元素添加到列表的结尾,相当于 a[len ...

  5. estt

    1.路由控制的定义 1.1.IP地址与路由控制 互联网是由路由器连接的网络组合而成的.为了能让数据包正确地到达目标主机,路由器必须在途中进行正确地转发.这种向"正确的方法"转发数据 ...

  6. manacher算法 详解+模板

    manacher算法可以解决字符串的回文子串长度问题. 个人感觉szy学长讲的非常好,讲过之后基本上就理解了. 那就讲一下个人的理解.(参考了szy学长的ppt) 如果一个回文子串的长度是偶数,对称轴 ...

  7. 吴裕雄--天生自然 R语言开发学习:基本数据管理(续二)

    #---------------------------------------------------------# # R in Action (2nd ed): Chapter 4 # # Ba ...

  8. 红杉资本的Dropbox上市,国内哪些产品会跟着受益?

    ​ ​每一个估值达到10亿美元以上的互联网.科技独角兽企业,都将上市当做"终极荣光".但事实上,上市只是这些独角兽企业开启全新时代的开端而已.很多气势汹汹且看似前景一片光明的独角兽 ...

  9. form组件及cookie和session

    多对多关系表的三种创建方式 1.全自动创建 优势:不需要你手动创建第三张表 不足:由于第三张表不是你手动创建的,也就意味着,第三张表字段是固定的无法更改 class Book(models.Model ...

  10. Dungeon Master (三维BFS)

    题目: You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is composed o ...