超级签名是什么样的

简单来说,就是把添加苹果设备udid然后申请iOS证书然后打包进行真机测试的过程(如下面真机测试教程),实现了自动化!

申请ad hoc证书打包iOS真机测试教程

 

优点:

非常稳定,不会像企业证书签名容易掉签问题,而且不用信任,安装后直接可以启动!

 

缺点:

超级签名需要用到个人或者公司账号,年费688,只能加100个苹果手机udid,合计安装一台成本6.88,所以成本会比较高!

用户需要操作安装2次,需要安装先一个描述文件,再安装应用!

 

签名原理运行图

 

 

 

超级签名系统搭建技术细节

 

1,获得用户UDID

 

苹果允许用户通过浏览器安装配置文件,来上传UDID到服务器。

服务器需返回301重定向到特定网站

.mobileConfig 文件实例:

获得udid 服务端接受UDID需要返回301,示例代码:

 

 

2,解析苹果给出的XML文件,并取得对应数据 

 

 

解析XML并返回 在这个时候,服务器就已经有了用户的udid了。

 

3,开发者中心更新UDID。

 

这里用到的框架是fastlane。框架使用起来简单易用。

 

调用实例代码:

 

 

更新UDID 更新完成UDID后,从苹果商店下载相关证书,并准备重签名。

 

4,重签名

 

看了很多文章,都是使用Isign来完成应用重签名。但是这种机制只能运行在mac电脑上。 mac服务器成本昂贵。要支持高并发成本非常高。

在这里,使用开心命令行签名工具,利用p12证书来实现在linux服务器上也能重签名。

首先我们要先将cer文件和csr文件转换为p12文件。

实例代码:

 

 

转换P12文件 转换完P12文件后,可以通过重签名脚本完成应用重签名。

实例代码:

 

 

重签名 到此时,我们的重签名流程就已经完成了。

然后将ipa包上传到OSS服务上,并配置itms-service服务来做分发。

itms-service服务代码实例:

 

 

itms-service服务文件

 

相关工具分享

 

交流搭建456941696

 

获取设备UDID的第三方库:https://github.com/shaojiankui/iOS-UDID-Safari

 

Apple Developer Center 自动化工具:https://github.com/fastlane/fastlane/tree/master/spaceship

 

自动命令行重签名ipa工具:https://github.com/chaoji365/–udid

 

OTA 分发应用工具:https://github.com/atelierdumobile/appdeploy

 

Over-the-Air Profile Delivery Concepts(获取设备UDID官方文档):

https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/iPhoneOTAConfiguration/OTASecurity/OTASecurity.html