超级签名原理
简单来说,就是把添加苹果设备udid然后打包进行真机测试的过程(如下面真机测试教程),实现了自动化!
优点:
非常稳定,不会像企业证书签名容易掉签问题,而且不用信任,安装后直接可以启动!
缺点:
超级签名需要用到个人或者公司账号,年费688,只能加100个苹果手机udid,合计安装一台成本6.88,所以成本会比较高!
用户需要操作安装2次,需要安装先一个描述文件,再安装应用!
整体运行流程
1.用户手机安装预留的描述文件,获取本机udid后,向服务器返回用户的udid
2.服务器收到UDID后,将UDID添加到开发者账号下。
3.然后生成此udid签名用的证书描述文件,把预留的ipa重签。
4.重签后的iPA上传分发服务器,通过分发链接让用户下载。
使用配置文件获取UDID过程
苹果公司允许开发者通过IOS设备和Web服务器之间的某个操作,来获得IOS设备的UDID!
1.制作获取设备udid的描述文件.mobileconfig
2.用户安装.mobileconfig描述文件!
3.返回接收用户的udid数据,比如:UDID,需要在.mobileconfig描述文件中配置好,以及服务器接收数据的URL地址;
获取设备udid的描述文件.mobileconifg写法例子
<?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>http://dev.skyfox.org/udid/receive.php</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>dev.skyfox.org</string> <!--组织名称-->
<key>PayloadDisplayName</key>
<string>查询设备UDID</string> <!--安装时显示的标题-->
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadUUID</key>
<string>3C4DC7D2-E475-3375-489C-0BB8D737A653</string> <!--自己随机填写的唯一字符串-->
<key>PayloadIdentifier</key>
<string>dev.skyfox.profile-service</string>
<key>PayloadDescription</key>
<string>本文件仅用来获取设备ID</string> <!--描述-->
<key>PayloadType</key>
<string>Profile Service</string>
</dict>
</plist>
相关工具分享
获取设备UDID的第三方库:https://github.com/shaojiankui/iOS-UDID-Safari
Apple Developer Center 自动化工具:https://github.com/fastlane/fastlane/tree/master/spaceship
自动重签名工具:https://github.com/chaoji365/--udid/wiki
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