我接触苹果签名重签名技术快六年了,最早做独立iOS开发,帮周边朋友做定制应用和内测产品,因为很多应用不符合App Store官方上架要求,只能靠签名分发,这么多年踩过坑也用过长期稳定的服务,今天就把我实际使用的经验和底层逻辑说清楚,给需要的朋友做参考。

先说说签名技术的核心原理,其实苹果整个生态都是靠签名机制管控的,所有能在iOS设备上正常安装启动的应用,都必须经过苹果授权的开发者证书签名,苹果会在应用启动时校验证书的合法性,如果校验不通过,应用就会弹出“无法验证开发者”提示无法打开,也就是我们常说的掉签。IPA签名重签名的本质,就是把我们开发好但没有经过苹果授权签名的IPA包,或者是之前已经签过名但已经失效的IPA包,移除原有的无效签名信息,再用持有合法权限的开发者证书,重新按照苹果的签名规则计算哈希值,写入证书授权信息,生成一个新的符合苹果校验规则的IPA包,让设备可以正常验证安装。说白了就是在符合苹果规则的前提下,绕开官方上架的审核,拿到合法的安装权限,这也是重签名技术能长期存在的核心原因。

接下来聊聊大家听得很多但很少有人说透的证书池机制,我最早用企业签名的时候,服务商就跟我提过证书池,那时候以为只是个营销噱头,后来自己玩多了踩过坑才知道,证书池是保证签名稳定的核心机制。简单来说,正规服务商会提前申请储备大量不同的企业开发者证书或者个人开发者证书,把这些证书放到一个资源池里做统一调度管理,给用户做签名的时候,会根据应用类型、预期安装量做分流,一个证书上不会放过多的应用,也不会把违规应用和正规应用混放,一旦某一个证书被苹果吊销或者封禁,池子里还有大量备用证书可以直接顶上来,不会出现所有用户都用不了的情况。我之前碰过一个小服务商,总共就两三个企业证书,什么违规应用都往上面放,一个证书塞了上千个应用,不到半个月就被苹果封了,我连补签都找不到人,后来换了正规服务商,人家证书池有上百个分类管理的证书,正规IPA、H5封装应用都单独分区存放,每个证书控制安装量不超过200,用到现在快四年,也就掉过两次签,补签都在两小时内完成,完全不影响正常使用。

然后说UDID绑定,这个是超级签名和TF签名绕不开的知识点,UDID是每一台iOS设备独有的40位识别码,相当于设备的身份证,苹果规则里,个人开发者账号的测试安装和TF内测都需要提前绑定授权设备的UDID,只有绑定了UDID的设备,才能安装对应签名的应用。超级签名本质就是利用个人开发者账号的测试设备权限做的签名,每个个人开发者账号最多只能绑定100个UDID,所以超级签名都是按UDID计算费用。我刚做超级签名的时候,经常遇到用户填错UDID导致安装不了的情况,后来教用户用描述文件获取UDID,就很少出问题了,绑定正确UDID之后,只要账号不被封,应用可以一直用,稳定性很好。

聊完基础逻辑,再说说实际的重签流程,这么多年我从手动用命令行重签,到现在平台自动化重签,流程本质一直没变,只是操作越来越方便。现在主流的平台自动化重签流程很简单,就算不懂技术也能操作:第一步,开发者把需要重签的IPA包上传,不管是原生开发的IPA还是H5封装生成的IPA,都可以正常上传识别;第二步,选择需要的签名类型,是企业签名、超级签名还是TF签名,根据自己的用户量和需求选就行;第三步,如果选的是超级签名或者TF签名,需要把收集好的用户UDID批量上传完成绑定,企业签名不需要UDID,直接可以签名;第四步,平台自动调用证书池里对应的合规证书,清除IPA原有签名信息,按照苹果规则重新生成签名,产出新的IPA安装包;第五步,生成分发链接或者二维码,用户直接点击就可以下载安装,整个过程一般几分钟就能完成,非常省心。

接下来聊聊大家最关心的,超级签名与企业签名的真实稳定性对比,还有不同渠道的价格,我这么多年用下来,只要选对正规渠道,80%以上的时间都是稳定好用的,掉签补签都是小概率事件,很多人说签名不稳定,其实都是贪便宜踩了小商家的坑。先讲超级签名,超级签名是绑定UDID的,每个应用对应个人开发者账号的权限,只要账号不违规被封,基本不会无故掉签。价格上不同渠道差很多,小渠道为了抢客户,会做到几毛钱一个UDID,用的都是黑号或者共享号,没几天就被封,掉签了也不给补,我之前贪便宜试过,100个UDID不到一个月全掉了,钱也打了水漂。正规稳定渠道的超级签名一般是1.5到3元一个UDID,大部分掉签还能免费补签,我现在用的超级签名放了一个小型的工具应用,总共87个用户,一年下来才掉过一次,还是因为那个个人账号被苹果误封,商家当天就给补签好了,没有额外收费,稳定性非常好,适合用户量不大的内测应用或者小型工具,成本很低。

然后说企业签名,企业签名是用苹果企业开发者账号签发的,不需要绑定UDID,用户点击链接就能安装,适合用户量比较大,不想一个个收集UDID的应用。企业签名分共享版和独立稳定版,价格差很多:共享版就是很多用户共用一个企业证书,小渠道一般只要50到150元一个月,看起来很便宜,但是稳定性极差,一个证书塞了几百上千个应用,什么违规的都有,基本一两周就会掉一次,掉了补签也很慢,甚至很多小商家补签几次就跑路了,我之前买过一个99元一个月的共享版,12天掉了三次,最后商家直接失联,非常坑。正规渠道的独立稳定版企业签名,都是一个证书只放对应数量的正规应用,不接违规产品,价格一般是300到1000元一个月,根据安装量调整,限制安装量的会更便宜,我现在用的两个稳定版企业签名,放的是企业内部OA和H5封装的客户定制应用,每个证书只放不到150个安装,半年才掉过一次,掉签之后服务商1小时就给补签好了,重新发个链接用户就能用,几乎不影响使用,稳定性比很多人想象的好太多。

除了这两种最常用的,还有TF签名和官方上架,TF签名是苹果官方TestFlight的内测签名,属于官方认可的分发方式,稳定性是所有签名里最高的,只要应用不违规被苹果下架,基本不会掉签,价格一般是按包或者按安装量算,1万安装大概是2000到3000元,整包过审的话大概1000到5000元不等,我之前有一个社区类应用放TF,整整两年都没掉过,非常稳,唯一的缺点是每个应用最多只能有1万个测试名额,而且需要过苹果的审核,正规应用基本都能过,违规的过不了。而官方上架当然是最稳定的,用户直接在App Store下载,不会有任何掉签问题,但是审核非常严格,很多企业内部应用、内测应用、定制化应用不符合上架要求,根本上不了,所以才会用各种签名方案。

这么多年我用下来,只要选正规靠谱的渠道,不贪小便宜,苹果签名重签名的稳定性完全够用,大部分时间都可以稳定运行,就算遇到掉签,正规服务商也能快速补签解决问题,对于没法官方上架的应用来说,是性价比最高的分发方案。