我玩iOS签名机制快六年了,从最早帮创业团队做APP内测,到现在帮很多中小开发者、本地商家做分发封装,踩过的坑比我调试过的代码还多。最近总有新朋友找我问,签名到底该怎么选,为什么自己签的名三天两头掉,索性把这些年摸透的逻辑、踩过的坑、实测的结果都整理出来,给想要做IPA分发的朋友做个参考。
首先得把基础逻辑说清楚,什么是设备签名逻辑?iOS本身是闭源系统,出于安全管控的要求,任何安装到手机上的安装包,都必须拿到苹果官方的签名授权,不然系统根本不会允许安装,就算侥幸装上也会秒退打不开。我最早踩的第一个坑就是这个:那时候我给本地餐饮商家做H5封装,封装完IPA包,直接拖到手机上想测试,结果弹出“无法验证应用”直接打不开,折腾了半天才搞明白,H5封装只是把网页打包成了IPA格式,没有签名根本绕不过iOS的验证机制。简单来说,设备签名的核心,就是把允许安装这个应用的设备信息,绑定到苹果颁发的证书里,iOS安装前会核对IPA包里的签名信息,确认是苹果授权过的证书签名,才会允许安装运行。
接下来讲证书分发原理,所有签名的证书都来自苹果开发者平台,不同类型的证书对应不同的分发渠道。我们最熟悉的就是AppStore渠道,开发者申请生产证书,给IPA签名后提交苹果审核,过审后上架AppStore,所有用户都可以直接下载,苹果官方负责全程验证签名,这种是最稳定的,但门槛也最高,审核规则极严,很多H5封装的本地服务APP、内测版本应用、不符合苹果规则的应用,根本过不了审,所以才催生了企业签名、TF签名这些第三方分发方式。而企业签名用的是苹果给企业开发者颁发的企业证书,本来是给企业做内部员工应用分发用的,允许不经过AppStore直接安装,只要用户手动信任开发者证书就能用,这也是现在最常用的非上架分发方式。
说到这里就不得不提大家最关心的Apple ID风控,最近这几年苹果的风控机制越来越严,不管是申请证书还是做TF签名,都离不开Apple ID,一旦触发风控,轻则证书被吊销,掉签无法使用,重则所有关联的ID和证书都会被封。我之前踩过一个超大的坑:19年做TF签名的时候,为了省钱,在网上买了一批几块钱一个的批量注册Apple ID,结果刚上传完三个IPA,不到24小时十个ID八个被封,连带我已经做好的TF链接直接失效,几百个已经下载的用户全都打不开,赔了客户不少违约金。后来我才搞明白,苹果风控的判断维度很多,短时间同一IP注册登录多个ID、同一设备登录多个ID、ID签名的IPA涉及违规内容,都会被标记风控,现在正规的ios企业签名自助签名平台,都是一机一号一IP养号,每个ID控制签名频率,就是为了规避苹果风控,这点小平台根本做不到。
再说说大家问得最多的独享证书和共享证书怎么选,我这些年的血泪教训告诉我,长期做项目绝对不能选共享证书。共享证书就是几十上百个开发者的IPA都签在同一个企业证书上,好处就是便宜,市面上一般二三十块钱就能签一个月,看起来性价比很高,实际上隐患极大:只要这个证书里有一个开发者的APP是违规的,被用户举报或者被苹果查到,整个证书就会被苹果直接吊销,所有签过这个证书的APP都会掉签,所有人跟着遭殃。我最早贪便宜找过个人卖的共享签名,十块钱一个月,给骑手做的外卖APP签完第三天就掉签,一百多个骑手全都没法接单,我找那个签名商已经拉黑跑路了,最后我自己掏钱给客户补了签名,还赔了误工补偿,亏了小一千,从那以后我再也不碰共享证书了。而独享证书就是整个证书只给你一个人用,所有签入的APP都是你自己的,只要你的APP不违规,不碰灰产,苹果根本不会查到头上,稳定性要比共享证书高太多。价格方面我也给大家捋捋不同渠道的差异:找个人私下签,独享证书一般要两三百一个月,淘宝店更是敢喊到四五百,还不保证掉签补签,而我现在用的ios企业签名自助签名平台,独享证书也就一百多一个月,掉签还自动补,性价比高很多。
为了弄清楚不同签名的实际稳定性,我去年专门花了一个月做了稳定性实测,同一个我做的H5封装同城服务IPA,我分别在不同渠道做了IPA签名,挂了三十台测试机,每天固定打开十次,记录掉签情况,结果差异真的很大:共享证书那个,第七天就第一次掉签,补完签不到半个月,证书直接被苹果吊销,彻底用不了,整个月下来掉了四次,可用时间不到一周,稳定性不到30%;我在自助平台签的独享证书,整个三十天只掉过一次,还是因为我修改了IPA内容重新上传触发了审核,调整之后一直稳定,可用性超过95%;再说说TF签名,TF是苹果官方的TestFlight内测渠道,我也做了测试,整个月确实没掉过签,稳定性也很高,但缺点很明显,一个TF链接最多只能有一万次下载,超过就没法再让新用户下载了,而且TF的审核也比以前严很多,我这个H5封装的APP第一次提交就被拒了,改了三次才过,价格也比独享企业签贵,一次就要三百多;最后说AppStore,我这个APP前前后后提交了八次都被拒,原因是涉及线下支付没有走苹果内购,根本上不了架,所以如果过不了审,再稳定也没用。
其实这么多年用下来,我最大的感受就是,签名这个东西,稳定永远比价格重要,很多人一开始贪便宜选便宜的共享签名,掉一次签损失的用户,都比一年的签名钱贵多了。我认识一个做知识付费的朋友,一开始找了十块钱的共享签名,攒了两千多用户,结果不到一个星期证书掉了,签名商跑路,用户全都打不开APP,最后花了三个月才重新把用户拉回来,损失了几十万的流水,这个教训真的太深刻了。
现在做H5封装的朋友越来越多,主要就是因为H5网页在微信里很容易被封,封装成IPA做成APP,安装到手机上就能长期使用,不会被封禁,但封装完必须签名才能用,选对签名真的决定了项目能不能做下去。我自己现在手里五个H5封装的项目,全都用的是ios企业签名自助签名平台的独享证书,稳定运行快一年了,掉签次数不到三次,平台都是自动补签,原来的分发链接不用改,用户重新安装一次就能用,根本不影响使用,每个月五个项目的签名费也就几百块,比之前天天找签名商补签省了太多时间精力。
当然,不同的需求要选不同的签名,如果你的应用符合AppStore的规则,能过审,那肯定优先上AppStore,毕竟永久稳定,没有下载限制,用户的信任度也最高;如果你的应用过不了AppStore审核,用户体量不大,不到一万人,那可以选TF签名,毕竟是苹果官方渠道,不用用户手动信任证书,使用体验更好;如果用户体量超过一万,或者TF审核过不了,那就选正规平台的独享企业签名,性价比最高,稳定性也足够用,绝对不要为了省几十块钱选共享证书,不然掉签的时候哭都来不及。我玩了这么多年iOS签名,见过太多项目因为一次掉签就做不下去的,也见过很多项目因为签名稳定慢慢做大的,说白了签名就是项目的地基,地基稳了,房子才能建得高。