超级签名回滚到旧版本:聊聊iOS签名那些事
我接触iOS签名机制快八年了,从最早企业签名刚刚兴起,到超级签名普及,再到TF签名成为主流备选,大大小小的坑踩过不计其数,最近半个月接连碰到三个客户找我求助:之前用了低价超级签名,掉签后想回滚到旧版本安抚不满的用户,结果原来的服务商跑路,旧安装包和签名配置全丢了,折腾好几天才救回来。借着这个事儿,我把这么多年研究的iOS签名核心逻辑、行业套路和真实体验整理出来,给需要做第三方分发的朋友提个醒。
先从最基础的设备签名逻辑说起,iOS系统封闭性决定了所有未上架AppStore的应用,都必须经过合法签名才能安装,这是苹果的安全机制。而我们常说的超级签名,本质就是用苹果开发者账号的Ad Hoc测试权限做的设备签名,核心逻辑很简单:用户点击安装链接的时候,签名系统会自动获取用户设备的UDID,上传到苹果开发者后台,把这个UDID添加到预先申请的描述文件里,再用对应的证书给IPA包重新签名,最后把签好的安装包推给用户下载安装。因为Ad Hoc权限天生就限制单个账号最多只能绑定100台设备,所以超级签名的设备数量上限其实从根上就定死了,那些号称单个超级签名能无限装机的,从一开始就是骗你的。
再讲证书分发原理,不管是IPA签名、企业签名还是超级签名、TF签名,核心原理都是苹果的非对称加密校验:开发者手里持有证书对应的私钥,给IPA包的二进制文件加上签名信息,苹果服务器手里存有对应开发者账号的公钥,用户安装的时候会自动联网校验签名有效性,校验通过才能正常打开,校验不通过就会提示“未受信任的企业开发者”或者直接无法打开,也就是我们常说的掉签。不同分发渠道的证书类型不一样:超级签名用的是个人/公司开发者账号的开发证书,企业签名用的是企业开发者账号的企业证书,TF签名本质是用苹果TestFlight官方内测渠道做分发,签名是苹果官方完成的,所以天生就更不容易掉。很多朋友做H5封装,把手机站打包成IPA包之后不知道选什么签名,其实核心就是看你的用户量和是否能上架,能过审上架AppStore当然最稳,但是绝大多数H5封装的应用,因为内容合规或者资质问题过不了审,只能走第三方签名渠道。
接下来聊聊大家都关心的Apple ID风控,这是最近几年超级签名稳定性下滑的核心原因。我刚做超级签名的时候,苹果风控没那么严,一个个人Apple ID签个两三百台设备都不会被封,现在完全不一样了,苹果的风控模型已经升级成了机器学习,只要账号行为符合违规分发的特征,分分钟就会被封号吊销证书。我总结了几个核心的风控触发点:第一,单个账号绑定的设备数量超过100台的Ad Hoc上限,百分百触发风控,大概率直接封号;第二,频繁添加移除UDID,比如一天之内移除几十台旧设备再加几十台新设备,苹果会直接判定你这个账号用来做公开分发,违反开发者协议,直接封号;第三,新注册的空白账号,没有任何在苹果生态的使用记录,比如不下应用、不登录苹果服务、没有消费记录,这种号注册没几天就拿来签名,不出一周肯定被风控。之前我刚做的时候贪便宜收了一批刚注册的空号做共享签名,结果不到两周全部被封,两百多台设备的用户全部掉签,赔了客户小一千才搞定,这个教训我到现在都记得。
聊完风控,说说大家问得最多的独享证书和共享证书的区别,以及我这么多年实测下来的稳定性对比。共享证书就是很多个开发者、很多个客户共用同一个证书签名,不管是企业证书还是超级签名的Apple ID,都有共享的玩法。共享证书最大的优势就是便宜,我给大家报报现在市场的真实价格:共享企业IPA签名,一个月一般只要30到100块,共享超级签名一般1到2块钱一个设备,比独享便宜一半还多。但是便宜的代价是什么?就是一损俱损,只要共享池里有一个app是违规的,被用户举报或者苹果检测到,整个证书、整个池子里的所有账号都会被牵连,全部掉签,所有用户的app都打不开。我去年有个客户,做本地餐饮的H5封装app,贪便宜找了一个60块一个月的共享企业签名,刚上线一个月做五一端午活动,结果证书因为池子里的一个博彩app被举报,整个证书吊销,一百多个会员的app全部打不开,活动直接黄了,损失比十年的签名费都多。
那独享证书呢?顾名思义就是整个证书、整组账号只给你一个人的app用,只有你自己的app,不会有别人的违规应用牵连你。价格当然贵一些,现在我这边拿到的上游成本,独享企业证书一个月大概是400到800,卖给客户一般是600到1200,独享超级签名的Apple ID一般一个设备3到5块钱,看起来贵,但是稳定性差了不止一个档次。我去年专门花了三个月做稳定性实测,四个方案各放三个不同类型的app,分别是H5封装本地生活、企业内部OA、小众工具类,90天统计掉签次数:共享企业签名平均掉签2.7次,最多的一个app掉了4次,最短一次12天就掉了;独享企业签名平均掉签0.3次,也就是10个独享签名里三个月才会有3个掉签,大部分全程稳定;独享账号的超级签名,三个月下来我测的三个app一次都没掉,只要控制每个账号不超100台设备,不频繁删设备,基本不会触发风控;TF签名作为苹果官方的内测渠道,测了三个月也一次都没掉,但是TF也有自己的问题:一个链接最多1万次下载,更新版本需要重新提审,想要超级签名回滚到旧版本几乎做不到,因为TF只能保留最新版本,旧版本会直接被下架,很多内测应用需要保留旧版本给老用户,这点就很不方便。
说到价格感受,我做这么多年最大的感受就是一分钱一分货,iOS签名这个行业根本没有低价稳定的好事,因为苹果开发者账号本身就有成本,个人账号每年99刀,企业账号每年299刀,正规注册的账号成本就在这里,那些几十块钱的独享证书,说白了都是变共享,或者用的盗刷黑卡注册的账号,用不了多久就会被封。我见过太多客户,一开始贪便宜省了几百块签名费,掉签一次用户掉光,重新做推广获客的成本几万都打不住,最后再来找我做稳定的独享,反而花了更多钱。我现在给客户推荐都是看量:一百台设备以内的内测、企业内部应用,优先推独享账号的超级签名,一百台才三百块左右,比独享企业签名便宜,稳定性还高,我有几个做企业OA的客户,一百多台员工设备,用了快两年一次都没掉过,比企业签名还稳;用户量一千到一万的,推独享企业签名,只要app本身不违规,三个月掉一次都算多的,我这边现在的独享企业签名,月掉签率不到5%,稳定性完全够用;用户量过万又不能上架AppStore的,推TF签名,官方渠道用户信任,也不容易掉,就是更新麻烦一点。
这么多年我也碰到过各种各样的问题,除了刚才说的共享证书牵连掉签,还有不少值得提醒的:比如超级签名回滚到旧版本的时候,一定要提前给服务商说清楚保留旧包和证书配置,我之前碰到一个做内测游戏的客户,新版本调整了抽卡概率,玩家集体抗议要求回滚,结果之前的服务商把旧版本的安装包删了,证书也已经吊销了,最后只能重新反编译提取安装包,再重新签名,折腾了三天才搞定,耽误了运营时机,玩家走了三分之一。还有H5封装的时候,很多商家说免费封装,其实就是在包里插了广告弹窗,最后你签了名,用户打开全是广告,哭都没地方哭。还有不要觉得TF签名就百分百稳,我去年就碰到一个违规内容的app,做了TF签名不到一个月,就被苹果封了TF,照样全部打不开,只要内容违规,什么签名都救不了。
总的来说,iOS签名这个行业,水很深,但是只要抓住核心:想要稳定就别贪便宜,优先选独享证书,根据自己的用户量选对渠道,提前做好旧版本备份,就不会踩太大的坑。毕竟对于做分发的朋友来说,稳定不掉签就是最大的节约,掉一次的损失,早就超过了你省的那点签名费。