玩iOS签名机制快六年了,从最早帮创业团队做内测应用分发,到后来帮不少商家做H5封装签名,我踩过的坑比见过的稳定证书还多,今天就以我自己的经验,把大家关心的核心问题都说清楚。
先从最基础的设备签名逻辑说起吧,iOS本身是封闭生态,苹果从系统内核层面就做了限制,任何没有经过合法签名的应用,都无法启动安装。很多刚接触这行的朋友以为签名就是给IPA改个后缀就能用,其实完全不是这么回事。设备签名的核心逻辑,本质是获取苹果官方给开发者的授权,把目标设备的UDID(设备唯一识别码)或者企业开发者的分发权限,写入到描述文件里,让iOS系统验证通过之后,认可这个应用是合法可运行的。如果是个人开发者的Ad-Hoc签名,就需要提前把每一台要安装应用的设备UDID加到开发者后台,绑定到描述文件里,超出100台的限额就没法再加了;如果是企业签名,就不需要绑定单个UDID,只要证书有效,所有iOS设备都可以安装,这也是企业签名为什么会成为主流的原因。
接下来讲证书分发原理,苹果的开发者证书本身分两种类型,一种是给上架AppStore用的发布证书,一种是给内测用的开发证书,而我们做IPA签名常用的,主要是99美元/年的个人开发者证书,和299美元/年的企业开发者证书。个人开发者证书最多只能绑定100台测试设备,适合小范围内测,分发范围有限;企业开发者证书不需要上架AppStore,也没有设备数量限制,可以直接对内分发应用,这就是现在所有企业签名的核心基础。证书分发的核心是“证书+描述文件”的组合,证书是苹果给开发者身份的凭证,证明你有分发应用的权限,描述文件则绑定了你要签名的应用Bundle ID、可用设备信息,只有两个信息同时匹配iOS系统的验证规则,签名才会生效,应用才能正常安装打开。
说完成基础原理,就得说我踩过最大的坑:Apple ID风控。苹果现在的风控机制比十年前严太多了,我最早刚入行的时候,为了省成本,买那种几块钱一个的共享Apple ID来申请证书,结果不到半个月,整个账号直接被封,所有签好的应用全部掉签,那时候我手里有二十多个客户的H5封装应用,一夜之间全部打不开,我挨个道歉还赔了小几千块,才把这个事摆平。苹果现在的风控是多维度判断的,不是说你只要不做违规应用就没事,如果你一个Apple ID短时间内从多个不同IP登录,一天之内签几十个不同的IPA,绑定几百个不同地区的UDID,都会直接触发风控;如果同一个账号里有其他人签了违规应用,被用户举报或者苹果检测到,整个账号的所有证书都会被牵连,直接掉签甚至封账号。这么多年我总结出来,Apple ID风控根本没有百分百能躲过的办法,只能从操作层面降低概率:固定IP登录、控制签名频率、同一个账号不签太多不同类型的应用,才能最大程度避免触发风控。
再说说大家最关心的独享证书和共享证书的区别,我做过这么久,最大的感受就是这两者完全是两个东西。共享证书就是很多个开发者、很多个客户共用同一个企业开发者账号的证书,所有人都可以往里面签自己的应用,不管是什么类型的都能签。共享证书的优势就是价格特别便宜,我见过淘宝上9.9元就能签一个IPA,包月的共享签名也才几十块到一百多块,但稳定性差到离谱,因为你根本不知道同账号里其他人签了什么违规应用,说不定哪天别人的应用被举报,你签的正常应用也跟着掉签,我之前用共享证书的时候,最多一个月掉过八次签,每次掉签用户都要重新下载安装,最少流失15%以上的用户,对做推广的客户来说,损失远比省的那点证书钱多。
而独享证书就是一个企业开发者账号只给一个客户或者一个开发者用,整个账号里只有你自己签的应用,不会有其他人的应用牵连,操作规范也能自己控制,触发风控的概率低很多。当然独享证书的价格比共享贵很多,我自己现在用的独享企业证书,一年下来三千多,平均每个月才三百块,比很多平台的包月共享签名还划算,但稳定性天差地别。我去年专门做了三个月的稳定性实测,找了三个同类型的H5封装电商IPA,分别用共享证书、独享证书、TF签名做测试,放给1000个种子用户安装使用,记录掉签次数和用户流失率:共享组第一个月掉了8次,第二个月掉了6次,第三个月证书直接被封,整个测试终止,三个月下来用户流失率超过60%;独享组三个月只掉了1次,还是我那段时间赶项目,一次性加了200多个UDID触发了临时风控,重新补签之后就一直正常,三个月下来用户流失率不到5%;TF签名组从测试开始到结束,一次都没掉过,用户流失率只有不到2%,稳定性确实是最好的。
说到不同渠道的价格感受,这个行业的水真的太深了,不同渠道的价格差能差出十倍都不止。我最早找过大平台的签名服务,他们给我报共享签名一个月199,独享签名一个月1200,说保证三个月不掉,结果我拿了共享的,半个月掉三次,找客服只会说免费补签,补来补去用户都走光了;后来找一个圈内做技术的朋友拿的一手独享证书,一年才3600,比大平台一个月的价格还便宜,用到现在快两年了,只掉过两次,一次是苹果那次大规模清理企业证书,全行业都掉,一次是我自己操作失误,真的稳得不行。还有那种几块钱单次签名的,基本都是拿已经被风控多次的共享证书给你签,大概率当天或者第二天就掉,完全就是骗钱的。TF签名现在一般是按下载量收费,一个下载2到5块钱,或者包年几千块,适合用户量不超过一万的内测应用,价格不算贵,稳定性也高。
这里也把大家常接触的几个概念说清楚,我们常说的IPA签名,就是把没有上架的IPA包,通过证书重新签名,让它能正常安装到iOS设备上,很多应用不符合AppStore的审核规则,比如企业内部OA、定制化的行业工具,或者是商家自己做的同城应用,都需要做IPA签名才能分发。H5封装就是把移动端H5网页打包成IPA包,很多商家不想做原生开发,也不想受微信小程序的限制,就会把自己的网页封装成APP,然后做签名分发,这个需求现在特别大,我手里一半以上的客户都是做H5封装签名的。而正规的应用肯定还是上架AppStore最好,AppStore是苹果官方的应用商店,用户下载方便,也不会有掉签的问题,只要你的应用符合苹果的审核规则,能上架尽量还是上架,但是很多应用确实过不了审,或者不需要公开上架,就只能走签名这条路。
TF签名其实就是苹果官方认可的内测签名方式,把应用上传到TestFlight,用户通过TestFlight下载安装,因为是苹果官方的渠道,所以稳定性几乎和上架AppStore一样,基本不会掉签,审核也比AppStore宽松很多,但是TF签名有个限制,就是一个应用最多只能有10000个测试用户,如果你的用户量超过一万,就没法用TF了,只能用企业签名,而且TF也需要审核,如果应用违规还是会被拒。
我这么多年做下来,最深的感受就是签名这行,稳定才是硬道理,便宜是便宜,掉一次签损失的用户和口碑,远比省的那点成本多。我之前有个客户,之前在别的地方做共享签名,一个月150,三个月掉了十次,推广花了几万块,用户都掉光了,后来来找我做独享签名,用了快半年了一次都没掉,现在已经给我介绍了五个新客户,这就是稳定带来的口碑。如果你只是做两三天的临时内测,那可以用个便宜的共享签名凑合用,如果是长期运营的应用,一定要选独享证书或者TF签名,不要图便宜吃大亏。至于ios签名证书申请,如果你自己有正规的企业资质,可以自己去苹果开发者平台申请,就是审核比较严,要等一两个月,要是申请不下来,找靠谱的渠道拿一手证书也可以,只要认准真独享、稳运营,就不会出大问题。