我研究iOS签名机制快六年了,从最早企业签名刚兴起的时候帮朋友做内测分发,到后来自己接各类中小项目的封装签名服务,踩过的坑没有一百也有八十,见过太多人因为贪便宜选了不稳定的签名,最后把好好的项目做黄了,也摸透了苹果从签名逻辑到风控规则的各种门道,今天就以我自己的实际经历,把这些干货说透,帮想做iOS分发的朋友少踩坑。
首先说最基础的设备签名逻辑,iOS作为闭源系统,本身有一套严格的应用安装校验规则,任何没有经过苹果合法签名的应用安装包,都没法在iOS设备上正常打开,哪怕你用第三方工具把IPA包导入手机,也会弹出未验证开发者的提示,根本无法启动。IPA签名本质就是我们把打包好的应用,用苹果官方授权的证书重新赋予签名信息,让苹果系统校验的时候认可这个应用的安装权限。而设备签名的核心逻辑,其实就是苹果把开发者账号的权限和证书、应用Bundle ID、绑定设备信息做关联,手机安装的时候会联网校验这些信息的匹配度,信息合规就能正常使用,不合规就会被禁止启动,不管是企业内部分发还是内测分发,本质都是在苹果开放的开发者权限规则内做的分发。
接下来讲证书分发原理,苹果现在开放了好几种不同的开发者权限,对应不同的分发方式。我们说的苹果签名证书企业内部分发,本来就是苹果官方设计出来的功能:苹果推出299美元一年的企业开发者账号,初衷就是给企业开发内部员工使用的应用,不需要上架AppStore,不需要经过苹果官方审核,直接用企业开发者账号生成的证书给IPA签名之后,就能分发下载,这个原生分发通道,本来就是给企业内部用的,只是现在很多不符合AppStore上架规则的应用,也会用这个通道做分发。对比来说,AppStore分发是用苹果的生产证书签名,应用上传后经过严格审核才能上架,所有下载校验都走苹果官方通道,是最稳定的分发方式,但审核门槛极高,很多涉及行业特殊内容、定制化工具类、内部测试类的应用根本没法通过审核,所以才催生了各种第三方签名分发的需求。而我接触最多的H5封装,其实就是很多客户只有移动端网页,想要做成独立APP安装,我们会用WebView把H5页面打包成标准的IPA安装包,之后再做签名,很多本地商家、中小项目都喜欢这种方式,不用开发原生APP,成本低上线快,封装完就能签名分发使用。
聊完基础原理,不得不说我踩过最多坑的Apple ID风控,这些年苹果对开发者账号的风控越来越严,早五六年前一个企业证书挂几百个应用都不会掉,现在只要触发风控,轻则撤销证书,重则直接封号,连主体信息都会拉进黑名单再也没法注册。我总结下来,苹果风控会监测很多维度:证书签名的应用数量、应用内容是否合规、证书下载频率、绑定设备的分布范围、开发者账号的登录IP是否频繁变化,甚至签名应用的安装量增速太快都会触发风控。我印象最深的是2019年,那时候我刚做这个业务没多久,贪便宜找了一个个人渠道的共享证书,一个月才80块钱,我当时给二十多个客户的应用都签在上面,结果不到两周,苹果直接把整个开发者账号封了,所有应用全掉签,几十个客户同时找过来,最后我赔了小三千块钱才把事情摆平,从那以后我才认认真真研究苹果的风控规则。现在我选账号的标准,首先就是必须用真实企业主体注册的账号,绝对不用那种洗出来的黑号,其次一个证书不会挂太多应用,绝对不碰违规内容,哪怕给再多钱也不签违规应用,避免触发风控连累其他正常应用。
接下来就是大家问得最多的独享证书和共享证书的区别,我做这么多年最大的感受就是,这两个完全不是一个东西,稳定性天差地别。共享证书就是一个企业开发者账号生成的证书,分给几十上百个客户共同使用,成本平摊下来很低,所以市场价格一般都很便宜,大多一个月几十块到一百多块不等,但问题就是人多手杂,什么样的应用都往上签,很容易因为某个违规应用触发苹果风控,整个证书所有应用都跟着掉签,掉签概率极高,我见过最夸张的一个共享证书,一天掉三次,用户根本用不了。而独享证书就是一个证书只给一个客户使用,或者只挂客户自己的少数几个应用,开发者账号也是独立的,不会给其他人用,所以价格要高很多,我现在用的独享企业证书,一年下来七千多,平均一个月六百左右,比共享证书贵了好几倍,但稳定性完全不在一个级别。
为了弄清楚不同证书的实际稳定性,去年我专门花了一个月做了对比实测,我把同一个H5封装好的IPA包,分别签在四个不同类型的签名上,记录30天内的掉签情况:第一个是淘宝找的低价共享证书,一个月68块,结果安装第三天就掉签了,找商家补签完,第七天又掉,整个30天掉了4次,每次掉签所有用户都要重新下载安装,至少三分之一的用户因为嫌麻烦直接流失了。第二个是某平台号称“稳签”的中端共享证书,一个月198块,商家说最多只挂30个应用,控制数量保证稳定,结果第12天第一次掉签,第24天第二次掉签,30天掉了2次,虽然比低价共享好,但还是没法满足长期运营的需求。第三个就是我一直在用的独享企业证书,30天测试下来,累计安装量接近一千,一次掉签都没有,所有用户都能正常打开,完全不需要售后。第四个就是现在比较火的TF签名,也就是TestFlight签名,本质是把应用上传到苹果官方的TestFlight内测通道,走苹果官方的分发链接,我测试下来30天也没有掉签,稳定性确实不错,但TF签名也有自己的问题:一个TF版本最多只有10000个下载额度,而且有效期只有90天,90天之后必须重新上传审核,另外苹果虽然比AppStore审核松,但还是需要过审,一些敏感内容的应用过不了,而且安装的时候需要用户跳转到TestFlight下载,不少普通用户搞不懂操作步骤,会造成不必要的用户流失。
聊完稳定性,再说说我这么多年换了十几个渠道的价格感受,现在这个市场价格真的太乱了,从几十块一个月到几千块一个月都有,我最大的感受就是,签名这个生意,稳定才是核心,便宜没有好货这句话在这里真的适用。早年我贪便宜找个人散户、淘宝低价渠道,看似省了几百块成本,结果掉一次签赔的钱都够交一年的独享证书费用了。现在我找的正规平台的独享证书,虽然一年大几千,但是省心,只要不签违规应用,基本上大半年都不会掉一次签,我给客户做签名,一年收一千多块钱,除去成本还能赚不少,而且口碑做起来了,老客户介绍新客户越来越多,根本不愁业务。反而那些靠低价抢客户的,天天处理掉签售后,客户留不住,最后做不下去关门的太多了。
我还遇到过很多典型的问题,比如之前有一个客户做本地生活服务平台,应用因为涉及到第三方入驻的内容,没法上架AppStore,找我做签名,一开始他嫌独享证书贵,非要选一百多一个月的共享证书,结果上线不到一周正好做促销活动,活动做到一半证书掉了,几千个用户都打不开,客户找过来急得要死,最后我紧急给他转到独享证书,重新签名分发,才解决问题,那一次客户不仅赔了很多活动优惠券的损失,还流失了不少用户,从那之后他每年都老老实实续约独享证书,再也不说贵了。还有很多客户搞不清H5封装和IPA签名的关系,拿着一个网址就来找我做苹果签名,其实没有封装成IPA包根本没法签名,我每次都要给客户解释流程,一般都会帮客户一起做好封装再签名,省得客户到处找人折腾。
这么多年用下来,我最大的总结就是,苹果签名证书企业内部分发本身是非常成熟稳定的分发方式,只要选对证书类型,避开风控坑,稳定性完全可以满足长期运营的需求,对于没法上架AppStore的应用来说,独享企业签名是目前用户体验最好、稳定性最高的选择,TF签名适合中小流量短期项目,共享证书除非是你自己做测试用,绝对不要用在正式运营的项目上,省那点钱最后吃大亏真的得不偿失。只要遵守苹果的规则,不碰违规内容,用独享证书做分发,完全可以做到几年稳定不掉签,满足企业内部使用或者正式运营的所有需求。