我接触研究iOS签名机制快六年了,从最早企业签名遍地走的时代就开始折腾,自己做小工具开发,也帮身边不少创业者处理未上架App的签名分发,这么多年踩过的坑能攒满满一整理箱,也摸透了整个体系的底层逻辑和行业猫腻,今天就结合我的实际经验,从各个维度聊聊iOS签名的那些事。
先从我理解的设备签名逻辑说起,iOS的封闭生态决定了,任何能安装到用户设备上的IPA包,都必须经过苹果官方的签名校验才能正常启动,这是铁规则。很多新手刚接触的时候以为,只要把安装包放到网上就能下载安装,实际上根本不是这么回事,设备签名的本质,就是用苹果官方签发的合法证书,对IPA的二进制文件做哈希校验,打包的时候把合法的签名数据嵌入安装包,用户设备启动App的时候,会自动联网核对签名数据和苹果服务器记录的信息是否匹配,还要确认安装包有没有被篡改,只要任何一步不通过,App直接会闪退或者打不开。我们常见的IPA签名分很多种,对应不同的证书权限和使用场景,没法上架AppStore的App,大多用企业签名或者TF签名来分发,满足用户直接安装的需求。
再聊聊证书分发原理,其实这个逻辑并不复杂,苹果给不同身份的开发者开放了不同权限的证书,个人开发者账号一年收费688元,可以申请上架AppStore,也能申请最多100台设备的Ad Hoc测试证书;企业开发者账号一年299美元,不能把App上架到AppStore,但是可以申请In-House权限的证书,签出来的IPA可以安装到任意iOS设备上,不需要苹果审核就能实时分发,所以才成了很多未上架App的首选。所谓证书分发,就是苹果给每个证书绑定了对应的权限和设备数量限制,分发签名IPA的时候,把对应证书和配置文件打包进安装包,用户安装时设备向苹果服务器发起校验,通过就能正常运行。
这些年我踩过最大的坑,都和Apple ID风控有关,苹果现在的风控体系比十年前严太多了,不管是个人号还是企业号,都有非常严格的风控规则。我最早刚玩签名的时候,不懂风控,拿自己的个人开发者账号随便签名,短时间内频繁撤销添加设备,半个月就触发风控,证书直接被撤销,号也差点被封,后来才慢慢摸透规则:如果是用来做TF签名的个人账号,短时间内上传太多IPA包、绑定设备数量超过限额、频繁操作证书,都会触发风控;如果是企业账号,签违规App、短时间安装量暴增、被用户举报,都会触发风控,轻一点掉签,重一点直接封号,找都找不回来。我前年就遇到过一次大事故,帮一个做本地生活服务的朋友做H5封装App,当时贪便宜选了某平台的共享企业签,刚上线三天攒了一万多安装量,结果同证书下有别人签的违规App被举报,整个证书直接被封,我们的App也全部掉签,所有用户都打不开,三天就流失了快四千个活跃用户,损失了好几万的推广费,那个坑我至今都记得清清楚楚。
接下来聊聊大家最关心的独享证书与共享证书,这也是很多新手最容易搞混的地方。共享证书就是一个证书分给几十上百个开发者用,大家把不同的IPA都签在同一个证书下面,优点就是价格特别便宜,我见过网上9块9包年的共享签名,几十块钱一个月的都算贵的,但是稳定性差到离谱,只要其中任何一个IPA违规被查,整个证书都会被苹果封掉,所有签过的App全部掉签,相当于所有人都被牵连。而独享证书就是整个证书只给你一个人用,所有IPA都是你自己的,完全不会被别的开发者牵连,稳定性自然高很多,价格当然也更贵,我现在用的独享企业签,一个月大概三百多,独享TF签名一年一千多,平均下来一个月不到一百,价格差我真的感受太深了:早年贪便宜用共享签,一个月掉三四次是常事,每次掉签都要重新发安装包,一个个通知用户,折腾不说还大量流失用户,后来换了独享证书,虽然贵了点,但是省下来的精力和留住的用户,远不止那点差价。
为了弄清楚不同签名的真实稳定性,去年我专门做了长达三个月的稳定性实测,我把自己做的同一个H5封装工具类IPA,分别用四种不同的签名渠道打包,放在服务器上供用户下载,我自己每天打开十次,记录掉签和无法打开的情况:第一种是共享企业签,三个月下来一共掉了7次,平均每个月掉两次多,其中三次是同证书下别的App违规被牵连,两次是证书触发风控被苹果撤销,还有一次是平台跑路直接找不到人售后;第二种是共享TF签名,三个月掉了两次,一次是共享的开发者账号被封,一次是多个开发者共用设备名额,很快就满了,新用户没法下载;第三种是独享企业签,三个月只掉了一次,还是那段时间我推活动,安装量突然涨到五万多,触发了苹果风控,补签之后就一直稳定运行;第四种是独享TF签名,整整三个月一次问题都没有,不管是新用户下载还是老用户打开,从来没有出现过无法使用的情况,这个结果当时真的超出我的预期,毕竟TF苹果签名用于公开测试本身就是苹果官方认可的方式,天生就比第三方企业签稳定。
说完了实测,再聊聊我这些年接触不同渠道的价格感受,现在签名市场真的鱼龙混杂,价格差也特别大:某宝上很多几块钱一年的共享签名,看起来性价比极高,实际上大部分用不了半个月就掉,很多店家收了钱就跑路,我去年就买过一个9块9的年卡,第十天掉签之后店家已经关店,血本无归;某鱼上的个人卖家,价格大概几十块钱一个月,大部分还是共享签名,偶尔能遇到出独享的,但是个人卖家没有保障,说不定哪天不做了,你的签名就没人维护;正规的第三方签名平台,共享签一般几十块钱一个月,独享企业签大概两百到四百一个月,TF签名按年或者按设备收费,独享TF一般几百到一千多一年,价格透明,有售后,掉签了能免费补,我现在一直用的就是正规平台的独享TF,一年一千二,100个设备名额,对我这种小开发者完全够用,平均下来一个月一百块,换大半年的稳定,真的太值了。
很多人问我,H5封装的IPA是不是更容易掉签?其实我实际用下来发现,掉签和封装本身没有关系,都是证书的问题,只要你用的是稳定的独享签名,H5封装的App和原生开发的IPA签名稳定性没有任何区别,我那个本地生活的H5封装App,换了独享TF之后,大半年没出过任何问题,用户点了链接直接跳转到App Store下载,和下载正式App的体验一模一样,根本不需要像企业签那样,还要手动去设置里信任开发者,很多不会操作的中老年用户也能顺利安装,留存率比之前用企业签的时候高了快30%。
这些年我也总结出不少经验,对于没法上架AppStore的App来说,现在最好的选择就是独享TF签名,一来它是苹果官方的公开测试渠道,不会被苹果系统拦截,也不需要用户做额外的操作,体验好;二来只要你内容合规,用独享证书不被牵连,做好Apple ID风控,控制单个账号的安装量,不要频繁操作,几乎可以长期稳定运行,比共享企业签稳定太多了。如果你只是自己测试用,偶尔用一下,那共享签凑合用没问题,但是如果是做商业用途,要给大量用户用,真的不要贪便宜,稳定才是最核心的,我见过太多开发者,为了省一个月一两百的签名费,掉一次签就流失几千个付费用户,亏得血本无归,真的不值当。
我自己现在几个对外分发的App,不管是原生开发的还是H5封装的,全部转到了独享TF签名,用了快两年,从来没有出过大规模掉签的问题,之前用企业签的时候每天都要担心掉签,现在完全不用操心,省出来的精力都能用来做产品优化。说白了,iOS签名发展到现在,已经越来越规范,苹果的风控也越来越严,靠低价共享证书赚快钱的时代已经过去了,对于我们开发者来说,选对稳定的签名方式,才能长久的把产品做下去。