掉签掉多了,我才慢慢搞懂苹果签名到底是怎么一回事。原来苹果对iOS设备上安装的第三方应用,本来就要求必须有经过苹果认可的证书签名,不然系统根本不让你打开,甚至连安装流程都走不完,我们常说的掉签,其实就是签名用到的证书被苹果给封禁了,应用自然就没法正常打开了。而现在市面上绝大多数第三方签名服务用到的,都是通用签名证书,和那种单独给单个应用绑定的专属证书不一样,通用签名证书是用正规开发者账号向苹果申请出来的,可以给多个不同的应用做签名,也是整个第三方签名行业里最常用的核心证书类型,证书本身的质量和来源,直接就决定了签名稳不稳定。

最开始我试的是企业签名,那时候刚入门,听人说企业签名便宜,就随便找了个服务商做了。企业签名用的是苹果企业开发者账号生成的通用签名证书,本来这个证书是给企业开发内部应用用的,拿来给外部第三方应用签名本来就是擦边,所以苹果查得一直很严。我最开始做的是共享证书的企业签名,价格确实低,服务商也承诺掉了免费补,结果没想到装上没几天,某天打开应用直接变灰,提示不受信任,妥妥掉签了。我去找服务商补签,对方倒是爽快,很快给了新的安装包,可那时候已经有不少朋友在用了,我一个个通知卸载重装,折腾了大半天,好不容易弄完,没几天又掉了,来来回回补了好几次,我折腾不动了,就想着换更贵的独立证书企业签名。独立证书确实比共享的稳很多,不会动不动就掉,但也不是完全不出问题,赶上苹果大范围封禁企业证书的时候,一样逃不掉,价格却翻了好多倍,用了一段时间,还是遇到了掉签,我就想着换别的签名方式试试。

后来听人说超级签名稳定,我就去找了超级签名。超级签名用的是个人或者公司开发者账号申请出来的通用签名证书,走的是绑定设备UDID的路子,每个账号能绑定的设备数量有限,所以一般都是按设备数量收费。最开始用的时候体验真的不错,装完挺久没出问题,我那时候还以为终于找到靠谱的方案了,结果没想到服务商手里的账号突然被苹果封了,所有签过的应用全掉了,又要重新收集UDID重新签重新装。那次掉签真的把我折腾坏了,那时候用户已经不少了,一个个收UDID一个个发安装链接,整整弄了好几天,好多用户嫌麻烦直接不用了,白瞎了我攒了那么久的用户。而且超级签名长期用下来,只要用户慢慢变多,累计起来的费用比独立企业签名还要贵,算下来很不划算,就算是大服务商的超级签名,只要账号出问题一样掉,也不是百分百稳定,用了一段时间我还是放弃了。

之后我又试了TF签名,也就是把应用放到苹果官方的TestFlight测试平台,用户从平台下载安装,本质上用的是苹果官方的测试签名。TF签名的稳定性确实比前面两个好很多,毕竟是官方的平台,只要应用不违规,苹果很少会封,我那次做的TF用了好久都没掉过,唯一的问题就是麻烦,首先要过苹果的审核,我的应用第一次提交就被拒了,改了好多次才通过,其次用户下载必须先装TestFlight才能再装我的应用,好多普通用户根本嫌麻烦,不愿意多装一个App,而且TF本身有测试有效期,到期之后必须重新提交重新发,还有人数限制,用户多了之后根本不够用,我用了一段时间,用户慢慢涨上来之后,就没法再用了,只能再换方案。

走投无路的时候我连H5封装都试过,就是把网页打包成App的壳,签完名就能装,听起来更新方便,不用每次更都重新签名,实际体验真的差到离谱,打开速度慢,很多原生功能调用不了,闪退更是家常便饭,我那个工具需要调用不少本地功能,H5封装根本实现不了,而且本质上还是需要签名,该掉签还是掉签,根本解决不了问题,用了没两天我就直接弃用了。

踩了这么多坑之后,我也动过走官方上架的心思,官方上架当然稳,签完名放在App Store,用户直接下载,根本不会有掉签的问题,只要应用不被下架,就能一直用,这是最稳定的路子没错,可官方上架的审核要求太严了,我的应用很多内容不符合公开上架的要求,改了好多次,找了好几个帮忙上架的渠道,都没能通过,而且上架的费用不低,就算过了,哪天查到不合规一样会被下架,对于我们这种只给小范围熟人用的工具来说,成本太高,也没必要,所以最后还是放弃了官方上架的路子。

这些年试下来,各个渠道各个签名方式的价格差真的很大,那种朋友圈随便找的个人服务商,共享企业签名便宜得离谱,但是掉得也快,说是免费补签,可天天掉天天补,谁也扛不住。小工作室的报价比个人高一点,但是很多证书都是倒了好几手的,质量根本没法保证,说不准哪天服务商就跑了,掉签了都找不到人补,我之前就遇到过一次,交了钱掉签之后直接被拉黑,钱打了水漂。大一点的第三方签名平台,价格肯定更高,但是服务有保障,补签重签都有人对接,至少不会出现找不到人的情况。不同签名方式的价格也差很多,共享企业签名最便宜,然后是TF签名,然后是独立证书企业签名,超级签名看人多人少,人多了比独立企业签名还贵,H5封装打包费不高,可体验太差,官方上架就算一次过,费用也远高于第三方签名,过不了的话钱也不退,风险很高。

说到重签补签,印象最深的一次是节前掉签,那时候大部分服务商都放假了,我找对接的人,根本找不到回复,整整好几天所有用户都用不了,好多朋友找我抱怨,我那时候真的想干脆把工具停了算了。还有一次超级签名掉签,我要一个个收集UDID,好多人不会弄,我还要一步步教,熬了好几个晚上才全部弄完,累得不想碰手机。后来用TF的时候,忘了提前赶在有效期前重新提交,到期之后所有人都用不了,又折腾了好几天才恢复正常,那段时间我真的是手机不敢离身,一听到消息提示就紧张,就怕又是用户说应用打不开了。

后来还是圈里一个已经稳了好久的朋友给我介绍了现在用的服务商,他们家的通用签名证书都是自己用正规开发者账号直接申请的,不是那种倒了好几手的共享烂证书,会根据我的应用情况和用户量做专属的签名方案,装上之后一直用到现在,从来没出过掉签的问题,安装也方便,不用用户折腾UDID,不用额外装别的App,扫个码就能直接安装,太省心了。现在我再也不用天天盯着掉签的事,再也不用一收到消息就紧张,补签重签那些糟心事,已经好久没经历过了。原来找对了稳定的方案,能省这么多精力,之前我总想找便宜的凑活,算下来折腾花的精力,还有掉签流失的用户,反而比找个稳定方案花的钱亏多了。

现在服务商那边会自己维护证书,有什么问题提前就处理好了,根本不会等到掉签了才让我去通知用户重签,用户完全感知不到任何变动,用着一直很顺畅,用户慢慢增长也完全没问题,不用怕人数够不上,也不用怕到期重发。我现在所有的精力都能放在优化工具上面,不用天天跟签名掉签较劲,这种感觉真的太舒服了。身边好多做小工具做内测应用的朋友来找我问签名的事,我都会给他们说,别贪便宜,找稳定的比什么都重要,我踩过的坑,能让别人少踩一点是一点。现在偶尔也会听到身边朋友吐槽掉签掉得崩溃,我都庆幸自己终于找到了合适的稳定方案,不用再受那个罪了。