我研究iOS签名机制快八年了,从最早企业签名泛滥的年代,到现在超级签名、TF签名成为主流分发方式,我帮大大小小几百个客户做过IPA签名、H5封装的分发服务,踩过的坑比见过的稳定签名还多,其中最多人踩、也最容易吃大亏的,就是超级签名证书共享的坑。很多新手只看价格不看证书性质,觉得能装上应用就行,便宜点没差,最后掉签掉得怀疑人生,甚至砸了自己的产品口碑,今天我就从底层逻辑到实测经验,把这里面的门道说清楚。
先从最基础的设备签名逻辑说起,我早年翻遍苹果开发者文档拆解这个机制,其实说穿了并不复杂:iOS是闭源系统,所有能安装的应用都必须经过苹果的授权认证,这个认证过程就是我们常说的IPA签名,简单来说就是开发者用苹果官方颁发的证书,给应用包加上一道合法的信任凭证,iOS手机检测到凭证有效,才会允许用户安装打开应用。不同签名方式的设备逻辑不一样,我们常用的超级签名,用的就是个人开发者账号的设备绑定规则:苹果给每个个人开发者账号的权限,就是最多绑定100台测试设备,只要你要安装应用的设备UDID在这个账号的绑定列表里,签名后的IPA就能通过系统验证,正常安装使用,这也是超级签名能绕开AppStore审核直接分发的核心逻辑。而企业签名用的是企业开发者账号的内部测试权限,苹果允许企业给内部员工分发应用,不需要单独绑定设备UDID,理论上可以无限安装,这就是企业签名的底层逻辑。至于TF签名,本质是基于苹果官方TestFlight内测平台的分发方式,所有流程都符合苹果规则,所以天生稳定性就比第三方签名高很多。
再说说证书分发原理,苹果给每个开发者账号都会颁发对应的签名证书,签名服务商拿到证书后,就可以给用户的IPA包做签名,之后就能分发给用户安装,这里就衍生出了两种完全不同的模式:共享证书和独享证书。共享证书就是服务商把同一个证书,拆分卖给多个不同的用户,多个用户的不同IPA都用同一个证书签名,服务商只需要出一份买账号的成本,就能收多份钱,所以价格可以压得非常低。而独享证书就是一个证书只给一个用户使用,所有签名操作只服务于用户自己的应用,成本自然更高,价格也就比共享证书贵不少。
接下来说说大家都关心的Apple ID风控,我摸爬滚打这么多年,能明显感觉到苹果的风控规则越来越严,苹果根本不会放任开发者随便乱用账号,现在苹果会从十多个维度监控账号状态:比如登录IP的变化频率、单日添加设备的数量、签名的应用总数量、应用内是否包含违规内容,只要有两三个维度触发风控阈值,直接就会封号封证书,所有签过的应用会全部掉签,连挽回的余地都没有。而共享证书恰恰是踩中了所有风控的雷点,你想想,一个证书被十几个不同的服务商共用,今天这个服务商在北京登录,明天那个服务商在广州登录,后天还有人拿着账号在海外登录,IP地址跳得这么夸张,苹果的风控系统第一时间就会标记这个账号有异常,用不了多久就会封禁。再加上个人开发者账号本来就只有100台设备的限额,共享证书的服务商为了多赚钱,一个账号恨不得加两三百台设备,早就超出了苹果给的权限,不封你封谁?最坑的是,只要有一个用这个证书的用户签了违规应用,比如赌博、色情、盗版这类苹果严令禁止的内容,苹果查到之后整个证书直接废掉,哪怕你是做正规H5封装的企业内部OA,也会跟着无妄遭殃,我自己刚入行的时候就吃过这个亏,早年图便宜拿了共享企业证书给自己做的工具应用签名,结果不到半个月,证书因为其他人签的博彩应用被苹果封了,我的应用也全掉签,当时辛辛苦苦积累的几百个种子用户,一下子走了快一半,这个教训我到现在都记得清清楚楚。
说到共享证书和独享证书的区别,我去年专门做了一次为期三个月的稳定性实测,给客户选方案的时候也更有说服力,当时我找了五个不同渠道的不同签名,分别是:某二手平台收的低价共享证书超级签名,合1.2元一个设备安装量;某宝199元一个月的共享企业证书签名;正规渠道的独享证书超级签名,6元一个设备安装量;同渠道的独享企业证书签名,899元一个月;还有苹果官方的TF签名,合5元一个下载量。我给每个签名都准备了10台不同型号、不同iOS版本的测试机,每天固定打开三次应用,连续记录三个月的掉签情况,最终的结果差得超出很多人的想象。第一个月结束的时候,共享证书超级签名的10台设备已经掉了9台,剩下那台是一直没打开过的,第二个月开头也掉了,最后整个证书对应的账号直接被苹果封了,我找当时卖签名的商家,发现人家早就把我拉黑消失了。共享企业签名的10台设备,第一个月掉了8台,月底整个证书也被封,商家说要补签得再交一半的钱,相当于之前的钱白花了。反观独享证书这边,独享超级签名三个月下来只掉了1台,还是因为那台测试机抹除了所有内容,重新绑定UDID签名之后就正常了,掉签率不到10%。独享企业签名掉了2台,还是当月苹果更新风控规则导致的,服务商当天就给补签完成,几乎没影响使用。最稳定的当然是TF签名,三个月10台设备一台都没掉,毕竟是苹果官方认可的内测渠道,只要应用不违规,基本不会出问题。
说到价格感受,其实我特别理解很多人一开始选低价共享签名的心态,我刚入行的时候也一样,觉得不就是给IPA签个名吗?能装上就行,便宜点能省不少成本,但是算一笔细账就知道,共享签名看起来省钱,实际上亏得更多。共享证书平均不到一个月就会掉一次签,每次掉签你都要重新做签名、发新的下载链接,还要一个个给用户解释,让用户重新安装,这个过程中流失的用户、损耗的口碑,远远不止那点省下来的签名钱。我前年遇到过一个做社区团购的客户,当时赶在端午节前上线H5封装的团购应用,图便宜选了199一个月的共享企业签名,比我给的独享签名便宜了快七百块,结果上线第三天也就是端午节当天,全掉签了,两千多个用户买了菜打不开应用,差点集体投诉到监管部门,最后没办法找到我,我连夜给他做了独享证书超级签名,重新发了下载链接,折腾到凌晨两点才搞定,最后客户赔了几万块的优惠券才安抚住用户,省了不到一千块签名钱,亏了几万块,怎么算都不划算。
其实这么多年下来,我最深的感受就是,做iOS分发稳定才是核心,再好的产品,用户天天打不开也没用。如果你的应用符合要求,最好还是上架AppStore,官方渠道,永远不会掉签,用户信任度也最高。如果是内部应用、内测应用,或者暂时不符合上架要求,优先选TF签名,官方渠道稳定性拉满,只要用户量不超过一万,完全够用。如果用户量超过一万,或者需要紧急上线来不及等TF审核,那就一定要选独享证书的超级签名或者企业签名,千万不要贪便宜碰共享证书,超级签名证书共享的风险,远比你想象的大,很多低价共享证书甚至是盗用别人的开发者账号,哪天原主人找回账号,你直接就全掉签,连说理的地方都没有。这么多年我见过太多因为贪便宜用共享证书,最后把做了很久的产品做死的例子,真的不值得。