我接触苹果各类签名技术快十年了,最早帮本地创业团队做内部分发的时候就开始捣鼓,现在自己也接一些小团队的H5封装、IPA签名需求,也帮不少开发者做官方上架、TF签名的辅助服务,对这行的门道摸得一清二楚,踩过坑也拿到过足够稳定的方案,今天就把我这么多年的深度使用经验整理出来。
首先说说最核心的签名技术原理,苹果本身的iOS系统安装应用有一套严格的代码签名校验机制,说白了就是只有经过苹果官方信任签名的应用,才能通过系统校验正常安装,否则就会提示“未受信任的企业级开发者”,根本打不开。整个签名机制基于非对称加密逻辑:苹果持有根私钥,给合法的开发者颁发开发或发布证书,相当于用苹果的私钥给开发者的公钥做了背书;开发者拿到证书后,用自己的私钥给打好包的IPA文件签名,用户手机下载应用后,会先用苹果预设的根公钥校验开发者证书是否合法,再用证书里的开发者公钥校验应用签名是否完整,全部通过才会允许安装运行。不管是超级签名、企业签名还是TF签名,本质都是IPA签名,都是利用苹果给合法开发者的授权证书绕开官方App Store上架,实现直接分发安装,核心逻辑从来没有变过。
接下来聊聊现在稳定签名必备的证书池机制,我最早做签名的时候,行业里都是单张证书用,一个服务商也就十几张几十张证书,所有的分发量都堆在几张证书上,稍微出点问题就全挂。现在正规的大服务商都做了证书池机制,说白了就是把几百上千张不同的开发者证书统一管理存在服务器里,做签名的时候自动调度分配:哪张证书还有剩余配额就用哪张,每张证书只分配额定数量的安装量,不会超额,一旦某张证书被苹果封禁失效,系统会自动把这张证书上的业务分配给其他正常证书,直接完成补签,把掉签的影响降到最低。我现在合作的头部平台,证书池里有小两千张个人开发者证书,每张证书最多只放60个设备,哪怕一张证书被封,影响的也只有几十个人,补签只需要几个小时,对大部分用户来说几乎没感知,这也是现在签名稳定性大幅提升的核心原因。
再说说大家都关心的UDID绑定,正好点题:ios超级签名需要提供UDID,这不是服务商故意设置的门槛,是苹果规则定死的。超级签名用的是苹果个人开发者账号的测试设备配额,苹果规则明确规定,个人开发者账号一年最多只能绑定100台测试设备,每一台设备都需要通过UDID也就是设备唯一标识符来识别报备,你要让这个设备安装用超级签名分发的应用,必须先把UDID添加到对应开发者账号的设备列表里,才能生成匹配的描述文件完成签名,所以必须要提供UDID才能做绑定。现在很多做H5封装的中小开发者,大部分都是把做好的H5页面封装成IPA包,用超级签名分发,整个流程里第一步就是自动获取用户UDID,不需要用户手动复制,点一下授权就能完成,其实非常方便,很多新手担心UDID泄露隐私,其实UDID只是设备的唯一标识,本身不包含任何用户隐私信息,完全不用担心安全问题。
说完基础逻辑,我再说说我实操这么久的重签流程,不管是超级签名还是企业签名,掉签之后的补签本质就是重新走一遍重签流程,标准流程其实非常清晰:第一步拿到客户需要签名的IPA安装包,如果是H5封装的需求,会先把H5链接打包生成未签名的干净IPA包;第二步如果做超级签名,先获取对应设备的UDID,系统自动从证书池里筛选出还有剩余配额的有效个人证书和匹配的描述文件,清除IPA包原有的签名信息,用新证书重新给IPA签名;第三步签名完成后生成下载链接和二维码,用户点击就能直接下载安装。如果是企业签名,流程基本一致,只是用企业开发者证书签名,不需要UDID绑定,签完就能直接分发。掉签之后的补签,就是换一张有效证书重新走一遍上面的流程,正规渠道都是免费补签,不需要额外付费。
接下来聊聊大家最关心的,超级签名与企业签名的真实稳定性对比,我做了这么多年,九成以上的需求我都会推荐用户选超级签名,只要找对正规渠道,稳定性真的比企业签名好太多。超级签名本身走的是苹果官方的测试设备配额,绑定UDID之后,只要证书不被封,应用不删除,可以一直用,我三年前给一个本地生鲜平台做的内部分拣工具,用超级签名分发,一直用到现在都没掉过签,二十多个分拣员天天用,从来没出问题。当然我也遇到过掉签的情况,前年苹果春季更新开发者规则,一次性封了一批违规的个人账号,我那个合作平台也有一百多张证书被封,但是因为有证书池分散风险,当天下午就完成了所有受影响用户的补签,大部分用户都没耽误使用,只有几个刚好那天要装新设备的,晚了几个小时用上,也都理解。
而企业签名呢,本身企业开发者账号是给企业做内部员工应用分发用的,本来不需要绑定UDID,理论上可以无限安装,但就是因为这个特性,滥用的太多,苹果查得越来越严,只要应用被举报或者触发苹果的安全审核,整个证书直接被封,所有签过的应用全掉。我早年刚入行的时候贪便宜给客户做过共享证书的企业签名,八十块钱一个月,结果不到一周掉了三次,补签补到服务商直接跑路,客户那边几十个人没法用系统,急得团团转,最后转成超级签名两个小时就弄好,用到现在都没掉。当然也有稳定的企业签名,就是独占证书的,一个证书只给一个客户用,不共享,这种稳定性比共享的好很多,但还是不如超级签名,毕竟只要是企业证书,苹果就查得严,我见过最贵的独占企业签名一个月八千,还是会偶尔掉签,只是频率低很多。
然后说说目前市面上的真实价格,给大家做个参考,避免被黑中介坑:超级签名一般都是按安装配额收费,正常市场价是1-3元一个安装量,一千个安装量以上量大从优,大概1-1.5元一个,千量以下一般是2元左右,也有包月不限量的超级签名,小流量应用每月大概200-400元,大流量应用每月大概800-1500元,那种报价五六块一个安装量的,都是中介加价,完全没必要。企业签名的价格差异就很大了,共享证书的企业签名一般是50-200元一个月,看起来便宜,但是稳定性极差,不推荐;独占证书的企业签名,根据应用类型不同,一般是800-5000元一个月,敏感应用价格更高,稳定性比共享好,但还是不如超级签名。TF签名也就是TestFlight签名,是苹果官方的测试分发渠道,一般是按次收费,签一次大概300-800元,有效期三个月,最多支持一万个测试名额,稳定性也很高,适合中小流量的应用,审核比超级签名严一点,违规应用过不了。官方上架App Store当然是最稳定的,但是审核门槛高,很多不符合规则的应用比如内部工具、未取得资质的垂直应用都没法上,所以才会需要第三方签名。
这么多年用下来我最大的感受就是,现在行业技术已经很成熟了,只要找正规有证书池的服务商,80%以上的签名需求都能保持长期稳定,我现在九成的客户用超级签名,平均下来一年都不一定掉一次,只有少数掉签的情况,也能很快补签解决,完全不影响使用。我也帮不少客户做H5封装成IPA之后做签名,很多做私域、做本地服务的客户,用了两三年都没出问题,体验和官方上架的应用没区别。当然也不是说完全没有问题,我也遇到过证书被封、大规模掉签的情况,那都是早年找小平台踩的坑,现在找正规平台之后,几乎就没遇到过大问题,补签也都是免费的,很省心。
总的来说,如果你的应用没法官方上架,中小体量优先选超级签名,性价比高稳定性好,如果你是流量不大的应用,也可以选TF签名,官方渠道更稳,如果是大企业内部应用,不需要UDID绑定,预算充足,可以选独占企业签名,一定要避开便宜的共享证书,不然掉签掉得你怀疑人生。