iOS 企业签名与超级签名

不上架苹果商店,目前用户下载大约有两种

1、苹果企业证书签名
2、苹果超级签名

苹果企业证书签名(企业签)

特点总结

1、随时可分发APP

2、可接受Apple不可接受的APP

缺点总结

1、苹果开发者账号难求,据说最近炒到了50万左右

2、市场上证书混乱,烂大街的证书不少

3、掉签风险极高

4、掉签后重新获取用户,运营成本加大

重签名方法

工具

1、iOS APP Signer

2、iReSign

等的(有很多第三方提供的,据说会盗证书)

使用方法

上面两种见Git

终端签名

1、准备IPA后缀文件(Ad Hoc Deployment 打包)xx.mobileprovision文件(企业)

2、获取证书里面的信息(xx.plist)

security cms -D -i xx.mobileprovision > xx.plist

3、导出xx.plist

/usr/libexec/PlistBuddy -x -c ‘Print:xx项目名’ xx.plist > xx.plist

4、解压ipa包

unzip xx.ipa

5、删除旧签名

rm -rf Payload/xx.app/_CodeSignature/

6、删除动态库签名(所有framework都有需要执行此步骤)

①、删除签名rm -rf Payload/xx.app/Frameworks/xx.framework/_CodeSignature②、重新签名codesign -f -s “证书的名称” Payload/xx.app/Frameworks/xx.framework/

7、替换配置文件

cp xx.mobileprovision Payload/xx.app/

8、签名

codesign -f -s “证书的名称” --entitlements xx.plist Payload/xx.app

9、打包成ipa

zip-r new_xx.ipaPayload/

最终 new_xx.ipa就是重新签名的文件

苹果超级签名

原理

说的明白一些,开发者可以在开发者后台添加手机的UDID,然后重新打包一个IPA文件,分发平台,然后被添加的UDID就可以下载

整体架构图
在这里插入图片描述
q : 16993043 .jpg

特点总结

1、直接分发,安装即可运行,不需要用户做企业证书的信任操作

2、目前稳定,不会有证书吊销导致的业务风险

缺点总结

1、单开发者账号的iPhone设备数量只有100个,导致分发成本非常高(99美元/1年/100个设备)

XML制作细节

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

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"><plistversion="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文件,引导用户安装

2、服务器做一些301跳转,存储UDID等操作

自动化

注册新的开发者设备+更新Provisioning Profile

接下来的关键点就是如何在获取到用户的UDID之后,秒级完成注册新的开发者设备+更新Provisioning Profile的。 这里我们需要借助开源工具(spaceship):
在这里插入图片描述
q : 16993043 .jpg

Spaceship公开了Apple Developer Center的API,而且执行速度比解析开发者Web页面快两个数量级,从而在非常短的时间内搞定Provisioning Profile。 这个框架解决了整套机制的关键问题,成为整个工具链的基石。其实某平台早就完成了UDID获取和应用签名分发的技术储备,只差这套API。

下面是解析开发者Web页面和直接访问API的速度对比图:
在这里插入图片描述
q : 16993043 .jpg

自动签名封包

此处其实应该有一万个解决方案,通过命令行脚本/Python脚本/或者其他第三方都能实现。

这里推荐使用Sigh这个框架来解决这个问题。
在这里插入图片描述
q : 16993043 .jpg

Sigh的用法和配置都非常简单,一个纯命令工具,丰富的配置选项(自行查阅文档),活跃的社区,完全够用了。

直接上演示图:
在这里插入图片描述
q : 16993043 .jpg

分发

不多说了,什么蒲公英,fir,各种小平台等等

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值