我研究iOS签名机制快八年了,因为常年接iOS外包开发,很多客户的应用不符合AppStore上架要求,或是企业内部工具、内测版本,不需要公开上架,所以这些年踩过的坑、试过的方案不计其数,今天就以第一人称给大家做个实打实的使用分享。

先从最基础的设备签名逻辑说起,iOS是出了名的封闭系统,任何应用想要安装在苹果设备上,都必须经过合法的IPA签名,没有签名的IPA包根本无法安装,这是iOS的安全机制决定的。而我们常说的设备签名,核心逻辑就是利用苹果开发者账号的设备授权权限,把用户设备的唯一识别码UDID添加到开发者后台的授权设备列表中,打包签名的时候把授权信息写入安装包,这样苹果系统就会认可这个应用,允许用户安装,不管是企业签名、超级签名还是我们今天要说的TF签名,本质上都属于设备签名的范畴。

接下来讲证书分发原理,苹果的开发者证书分为开发证书和生产证书,我们做第三方分发用的都是生产证书,简单来说就是用合法的生产证书对打包好的IPA重新签名,再分发出去让用户安装。如果是上架AppStore的应用,签名是苹果官方统一完成的,分发也是苹果负责,稳定性当然是最高的,但AppStore审核严格,门槛高,很多应用根本没法上架,比如我之前接过一个本地生鲜加盟平台的订单,客户做的是面向加盟商的H5封装订货系统,需要每周更新商品数据,不想每次更新都等AppStore审核,所以只能走第三方签名分发的路子,这里也就刚好对应大家常说的H5封装——很多轻应用都是先做H5,再封装成IPA包,然后签名就能当成原生APP安装在苹果手机上,非常灵活。

做签名这么多年,我最深的感受就是苹果的Apple ID风控越来越严,早年随便买个企业证书就能用大半年,现在动不动就吊销证书,苹果的风控系统现在是机器学习模型,会监测很多维度:比如证书的签名数量、下载量、账号绑定设备的频率、签名应用有没有违规内容,只要触发异常,直接就会吊销证书,封号。我刚入行的时候踩过一个大坑,那时候不懂,给客户找了个一百块钱一个月的共享签名,结果刚签完第五天,证书就被苹果吊销了,客户几百个加盟商的应用全打不开,连夜找我解决,我去找渠道,渠道直接跑路了,最后我自己掏钱给客户换了方案,亏了小几千,从那之后我就再也不敢碰不靠谱的渠道了。

说到这里就不得不提独享证书和共享证书的区别,这也是很多新手最容易搞混的地方。共享证书就是很多个不同用户、不同应用共用同一个开发者证书,价格非常便宜,一般几十块到一百多块钱一个月就能签一个应用,便宜是便宜,但风险极高,因为你根本不知道和你共用证书的人签了什么应用,只要有一个人签了违规应用,被苹果查到吊销证书,所有共用这个证书的应用都会一起掉签,全部打不开,就像我之前遇到的那个情况,纯粹是无妄之灾。而独享证书就是整个证书只给你一个人用,只签你自己的应用,不会有其他用户的违规应用牵连,价格自然贵很多,一般独享企业签名一个月要三百到八百块,稳定性比共享证书好很多,但也不是百分百稳定,因为企业证书本身就是苹果重点风控的对象,企业证书本来是给企业内部员工分发内部应用用的,很多人拿来做对外大规模分发,哪怕你的应用是正规的,只要下载量过大,也很容易触发风控被吊销,我之前有个客户自己花两千多块买了个企业开发者账号,做独享签名,结果不到三个月就被封了,两千多块直接打了水漂。

这么多年我试过各种方案,也做了长期的稳定性实测,从我的实测结果来看,目前最稳定靠谱的就是多设备TF签名。很多人都知道TF签名也就是TestFlight签名,是苹果官方认可的内测分发渠道,本质上就是把你的应用上传到苹果的TestFlight测试平台,用户通过TestFlight下载安装,签名是苹果官方做的,根本不会轻易掉签。传统的TF签名受规则限制,一个开发者账号只能绑定100台设备,所以只能做小范围内测,而多设备TF签名就是通过多个正规的个人开发者账号组合,实现了数百上千台设备的同时授权,解决了传统TF设备数量不足的问题,刚好满足大部分中小团队、线下加盟、内部办公这类多设备的使用需求。

我做过一个长达三年的对比测试,把同一个H5封装好的IPA包,分别做了共享企业签名、独享企业签名和多设备TF签名,放在那边正常使用,结果一个月不到共享签名就掉了,第二个月独享企业签名也因为账号被风控吊销掉了,而多设备TF签名到现在快三年了,还能正常打开使用,这个对比结果太能说明问题了。我之前那个生鲜加盟的客户,原来用共享签名半个月掉一次,每次掉签都要运营一个个给加盟商重新发安装包,加盟商怨声载道,换成多设备TF签名之后,两年多了一次问题都没出过,用户直接在TestFlight就能更新,根本不用找运营重新安装,省了超多精力。

聊聊不同渠道的价格感受吧,这些年我接触过各种各样的报价,共享企业签名一般是30到150元每月每个应用,确实便宜,但只适合两三天的临时测试,长期用绝对不行,掉掉签的成本远比省下的签名费高;独享企业签名现在一般是300到800元每月,一年下来大几千,还是有掉签风险,性价比很低;普通TF签名一般限100台设备,一年要300到500元,超过设备数量就用不了;而多设备TF签名一般是按设备数量收费,100台设备一年大概800到1200元,500台设备一年大概3000到4000元,平均下来每台设备一年才几块钱,比独享企业签名便宜多了,稳定性却高好几个档次。我也遇到过网上那种99块钱包终身的多设备TF签名,贪便宜试过一次,不到一个月账号就被全封了,应用直接打不开,商家也找不到了,所以还是一分钱一分货,正规渠道的多设备TF都是用正规注册的个人开发者账号,每个账号只加不超过80台设备,留足余量,分散风险,完全符合苹果的规则,根本不会轻易触发风控。

当然我也遇到过多设备TF签名的问题,比如早前有传言说TF应用90天就会过期,其实那是很早之前的旧规则,现在只要你不主动下架应用,就能一直用,就算真的到期,重新上传一下也就几个小时的事,非常方便;还有人说TF审核会拒,其实TF的审核比AppStore松太多了,只要不是明显的违规内容,基本一次就能过,我做过十多个H5封装的内部OA系统,没有一个被拒的,审核速度一般也就两三个小时,比AppStore审核三五天快太多了,非常适合需要频繁更新的应用。

这么多年玩下来,我最大的总结就是,对于没法上架AppStore的iOS应用,目前性价比最高、最稳定的方案就是多设备TF签名,它从根源上符合苹果的规则,避开了Apple ID风控的问题,也没有共享证书牵连掉签的风险,价格也比独享企业签名亲民,不管是H5封装的轻应用、企业内部工具还是内测版本,多设备TF都能满足需求,只要找正规渠道操作,几乎不会出问题,比早年那些乱七八糟的签名方案靠谱太多了。