我接触iOS签名机制快八年了,从最早企业签名刚兴起的时候就开始捣鼓,帮身边不少没法上架AppStore的开发者做过签名,踩过的坑没有一百也有八十,索性把这些年摸出来的经验整理出来,把大家问得最多的问题都说清楚。
先从最基础的设备签名逻辑说起吧,iOS是出了名的闭源生态,苹果对所有安装进系统的应用都有严格的签名校验规则,没有经过合法签名的IPA包,手机内核直接会拒载,根本没法安装。所谓设备签名,本质上就是利用苹果给开发者开放的授权权限,把允许安装应用的设备UDID信息写入签名描述文件,再结合开发者证书完成对IPA包的签名,用户安装的时候,苹果服务器会验证证书和描述文件的有效性,验证通过才能正常打开应用。现在市面上常见的H5封装应用,本质就是把网页内容打包成标准IPA包格式,再做IPA签名,才能让用户不用越狱直接安装,这也是很多没法过AppStore审核的中小开发者最常用的分发方式。
接下来讲证书分发原理,苹果的信任链逻辑其实很清晰:苹果自身的根证书是所有信任的起点,开发者向苹果支付年费注册开发者账户后,苹果会用根证书给开发者签发属于你的开发者证书,拿到证书之后,开发者才能给自己的应用签名,不同类型的开发者账户对应不同的分发权限:注册个人开发者账户,可以申请上架AppStore,也可以做最多100台设备的UDID测试签名,或者把包放到TestFlight做测试分发,也就是我们常说的TF签名;注册企业开发者账户,苹果给的权限是企业内部员工应用分发,不需要上架AppStore,也没有公开的设备数量限制,所以业内就把企业证书拿来做外部应用分发,这也是现在市面上主流的侧签方式。而AppStore作为苹果官方的公分发渠道,审核标准最严,很多工具类、行业定制类、H5封装的应用因为功能简单、同质化或者不符合苹果的规范,根本过不了审核,所以才会选择走签名侧分发的路子。
做签名这么多年,我最深刻的感受就是苹果的Apple ID风控越来越严,早五六年前,一张企业证书随便签几十个包,几十万安装量都没事,现在只要触发风控规则,苹果分分钟就会吊销你的证书,所有安装过的应用直接掉签打不开。我总结了几个常见的风控触发点:第一个就是短时间内安装量突增,一张证书一天之内突然新增几万安装,苹果直接会判定为异常使用,立马吊销;第二个是一张证书签名了多个违规应用,比如棋牌、VPN这类苹果明确禁止的应用,只要被用户举报或者苹果爬虫检测到,直接封证书封ID;第三个就是Apple ID本身的异常操作,比如短时间内跨区域登录、多个IP同时登录、频繁更新证书描述文件,都会触发风控。我早年就吃过一次大亏,那时候刚做这行,帮一个客户签工具包,客户说应用完全合规,结果我签完半个月,才发现应用里藏了暗链跳博彩,没几天苹果直接吊销了我名下三张证书,那三张都是给别的客户做的独享证书,害得我给三个客户赔了两千多块钱,还丢了好几个长期客户,从那之后我签名之前一定会自己先测一遍应用内容,再也不敢大意。
很多新手问得最多的就是独享证书和共享证书的区别,我也用过两种,给大家说说实际感受。共享证书就是很多个商家、很多个开发者共用同一张证书,你签一个我签一个,价格压得极低,我见过最便宜的共享IPA签名,一个月才29块钱,包年也就99块钱,某宝上随便一搜一大堆,十几块钱一个月的都有。我刚开始做的时候图便宜用过两个多月,那段时间掉签掉得我心态爆炸,平均一周掉两三次,有时候一天掉两次,用户天天来找我投诉,为什么会这样?就是因为共享证书里只要有一个人签的应用违规,整张证书被封,所有人的应用都掉签,而且共享证书的安装量一般都很大,很容易触发苹果的风控,掉签是必然的。那独享证书呢,就是一张证书只给你一个人用,只放你自己的应用,不会给其他开发者共用,稳定性自然高很多。价格方面不同渠道差得还挺多,个人散户的独享企业签一般一个月200到400不等,正规第三方签名平台的独享签大概一个月300到600,看起来贵很多,但实际上省了很多后续的麻烦。我也对比过TF签名的价格,一般一个H5封装的IPA包做TF签名,包上线也就500到800块,能用很久,平均下来比独享企业签还便宜。
去年我专门花了三个月做稳定性实测,用同一个合规的H5封装本地生活工具IPA包,分别在四个不同渠道做了四种签名,每个签名放100台测试设备,连续跑90天记录掉签情况,结果挺有参考性的。第一个是某宝买的30块钱一个月的共享企业签,90天一共掉了11次,其中两次是整张证书被封,需要重新换证书重新安装,用户流失率超过40%,稳定性根本没法用在正式业务上。第二个是个人卖家买的300块钱一个月的独享企业签,90天只掉了一次,还是因为卖家的Apple ID异地登录触发临时风控,补签之后就恢复了,直到现在快一年了,这个包还能正常打开,一次都没掉过。第三个是正规平台做的TF签名,90天测试期一次都没掉过,毕竟是苹果官方的测试分发渠道,只要审核通过,基本不会掉签,但是TF也有自己的问题,首先一个TF测试版本最多只能有10000个测试设备,用户量超过一万就得重新提包做新的TF,比较麻烦,其次TF也有审核,虽然比AppStore松很多,但也会拒审,我这个包第一次提交TF就因为“测试内容不充分”被拒了,改了三次描述和功能说明才过,而且如果是违规应用,TF审核也过不了。第四个就是我们尝试上架AppStore,前后改了四次,两次被拒,理由都是“H5封装应用功能过于简单,缺乏原生功能,不符合AppStore上架规范”,这也是很多中小开发者的痛点,明明是有用的工具,就是过不了审,只能走侧签。
这么多年用下来,我最大的感受就是,做iOS分发,稳定才是第一位的,贪便宜吃大亏的例子我见得太多了。之前有个做社区团购的小团队找我,说他们之前图便宜用了99块包年的共享签,做了一个月推广,攒了八千多用户,结果某天证书被封,全掉签,找不到原来的商家,半个月之内用户流失了七千多,项目直接黄了。现在我自己做业务,用户量一万以内就选TF签名,官方稳定,价格也不高,一万以上就用正规平台的独享企业证书IPA签名,虽然每个月多花两三百块钱,但是一年掉不了一次签,用户体验好,推广的钱不会白花。
当然也有一些常见问题我顺便给大家提醒,很多新手刚接触都会踩这些坑:第一,不要签违规应用,不管是独享还是共享,只要应用违规,迟早会被苹果查到,证书被封是小事,连累自己其他业务就麻烦了;第二,H5封装一定要找正规渠道,不少便宜的封装服务会在IPA包里插广告、留后门,不仅用户体验差,还可能偷用户信息,我之前就碰到过一次,找个人花200块钱做封装,结果封装完的包天天给用户弹垃圾广告,查了半个月才发现是封装的时候加的恶意代码,最后赔了用户不少钱才摆平;第三,苹果签名没有绝对不掉签的,哪怕是最稳定的独享证书,也可能因为苹果政策调整掉签,所以一定要找有售后的正规渠道,掉签能快速补签,不要找找不到人的个人散户,出了问题连人都联系不上;第四,很多人问共享签名能不能用,其实如果只是做内部测试,几个人用,没问题,毕竟便宜,但是要做正式对外的业务,绝对不要用,掉签的风险太高,得不偿失。
总的来说,苹果的签名机制这些年一直在变,风控越来越严,但只要选对适合自己的证书类型,找正规渠道,不碰违规内容,稳定运行还是完全可以做到的,比起几百块的差价,稳定才是能把业务做下去的基础,这是我玩了八年iOS签名最大的心得。