我接触iOS签名机制快八年了,从最早的企业签名刚兴起的时候就开始摸爬滚打,帮大大小小几百个开发者做过IPA签名,踩过的坑能堆一箩筐,今天就以我自己的实际经验,聊聊从原理到价格再到实际使用的各种真实感受。

先从最基础的设备签名逻辑说起吧,很多刚入行的开发者只知道应用要签名才能装,不知道背后的逻辑。其实iOS从诞生开始就用了强制代码签名机制,所有安装到iOS设备上的应用,都必须经过苹果认可的合法证书签名,系统启动应用的时候会先验证签名的合法性,验证不通过直接打不开,甚至连安装步骤都过不了。设备签名的核心逻辑,就是把需要安装应用的设备UDID,添加到对应开发者证书的授权设备列表中,让苹果系统认可这台设备有权限运行这个签名过的应用。个人开发者类型的证书,苹果默认给了100台设备的配额,所以这类签名最多只能在100台设备上安装,而企业开发者证书不需要绑定具体的UDID,理论上可以在无限台设备上安装,这也是为什么企业签名会成为无法上架AppStore的应用首选分发方式。

接下来说说证书分发原理,很多人会把签名和分发混为一谈,其实分发就是把签好名的应用给到用户下载安装的过程。现在主流的IPA签名分发,本质都是开发者把正规申请下来的开发者证书给到签名服务商,服务商搭建自动化签名平台,当用户上传自己开发或者H5封装好的IPA包之后,平台会自动去除IPA包原有的无效签名,再用对应证书的私钥给IPA包重新签名,生成新的符合苹果要求的安装包,最后生成下载链接,用户只要在iOS设备上打开链接就能安装,整个过程不经过AppStore审核,适合很多不符合上架规则的应用分发。我们常见的几种分发形式里,除了企业签名,还有大家听得最多的TF签名,TF签名其实就是把应用上架到苹果官方的TestFlight测试平台,本质也是苹果官方认可的分发方式,用户通过邀请链接就能下载,和企业签名走的是完全不同的分发路径。

说到这里就不得不提大家最关心的Apple ID风控,这也是很多人掉签掉得怀疑人生的核心原因。我这么多年踩过最大的坑,就是最早贪便宜收了一批十几块钱一个的批量注册Apple ID,结果不到三天全被苹果风控封了,连带我手里十几个客户的应用全部掉签,赔了不少补偿金。苹果的风控逻辑其实很清晰:凡是短时间内异常注册、用黑卡支付开通开发者权限、短时间绑定几百上千个UDID、批量签名大量不同IPA、签名的IPA里包含违规内容的,都会直接触发风控,苹果会直接吊销证书权限,所有签过的应用全部失效。更坑的是,如果同一个证书池里有一个用户的APP违规被举报,整个证书下所有用户的APP都会跟着遭殃,我之前就遇到过,帮一个本地商家做社区APP签名,结果同证书的另一个用户的APP是违规博彩类,苹果直接吊销了证书,我的客户的APP直接打不开,耽误了人家的推广活动,最后还是免费给人家换了独享证书才解决。

接下来聊聊大家问得最多的独享证书和共享证书,还有对应的ios签名证书价格感受。共享证书简单说就是一个证书分给几十上百个客户共用,大家的IPA都往上面签,好处就是价格极便宜,现在市面上共享企业签名一个月也就几十块,甚至9.9元包年的都随处可见,但是坏处太致命了,只要一个客户出问题,全证书的用户都跟着掉签,稳定性完全没法保障。我之前图便宜在咸鱼买过一个19.9元一月的共享签名,测我自己H5封装的工具APP,结果不到24小时就掉签了,再找商家已经找不到人,店铺都关了。而独享证书就是一个证书只给一个客户用,只有客户自己的IPA会签在这个证书上,只要你的IPA本身合规,没有违规内容,就不会被别人牵连,价格自然要贵很多,现在正规的独享企业签名,一个月大概在五六百到一千多不等,一年下来几千块,看起来比共享贵很多,但是稳定性差了不止一个档次。

我去年专门做过三个月的稳定性实测,同一个我自己H5封装的本地生活工具APP,分别做了共享企业签名、独享企业签名、TF签名三个版本,分别放在三台不同系统的iPhone上(分别是iOS15、iOS16、iOS17)持续测试,结果很能说明问题:测试的第7天,共享签名版本就直接掉签打不开了,咨询服务商说是同证书有违规应用被吊销,要重新签名得再等半天,而且之后半个月掉了三次,根本没法正常用;测试的第三个月,独享签名版本一直稳定运行,只有一次苹果大规模清理企业证书的时候掉过一次,服务商当天就给换了新的证书重新签好,用户几乎没感觉到影响;而TF签名版本从我测试到现在快一年了,从来没有掉过签,打开速度和安装体验都和上架AppStore的应用没区别。

说到价格,我接触过这么多渠道,最大的感受就是一分钱一分货,太便宜的绝对是坑。最早我在淘宝找签名,2018年的时候共享签名一个月还要三百,现在各种渠道泛滥,几十块就能拿到,但是稳定性已经完全不能看,小服务商基本上是捞一笔就跑,掉签了根本找不到人。正规的大渠道,独享证书一年几千块,TF签名一般三百到五百块包一年,看起来贵,但是胜在稳定,不会因为掉签耽误用户的业务。很多开发者一开始不明白,觉得不就是个签名吗,能省一点是一点,结果掉签一次,损失的用户和业务远远比签名那点钱多。我之前有个做装修公司内部ERP的客户,一开始图便宜找了80块一个月的共享签名,用了半个月掉签,正好那几天整个公司的工地都要用这个APP报工程量、验收,结果全打不开,耽误了三个项目的验收,损失十几万,后来找我做了独享企业签名加TF签名双备份,一年也就一千多块,用了快两年了没出任何问题。

为什么现在这么多应用宁愿花钱做签名也不上AppStore?其实很多开发者也想上架AppStore,但是要么是企业内部应用不需要对外开放,不符合AppStore的上架要求,要么是应用功能特殊,过不了AppStore的审核,还有很多中小开发者不会原生开发,直接把H5网页封装成IPA,这类封装包很多都过不了审核,所以才会选择做IPA签名分发。H5封装现在门槛很低,只要有个网页就能做成APP的样子,但是封装完之后没有合法签名,根本没法安装,必须做重签名才能分发,这也是现在IPA签名需求一直这么大的原因。

TF签名其实是我现在最推荐中小开发者用的方式,它是苹果官方允许的测试分发,稳定性比企业签名高太多,价格也不贵,一般几百块就能用一年,只要你的应用不违规,苹果不会随便下架,最多就是测试名额满了(最多10000个测试名额),重新上传一次就能继续用,唯一的缺点就是用户安装的时候需要跳转到TestFlight,多一步操作,而且IPA包不能太大,超过4GB的话不太好上传,所以大应用还是更适合用独享企业签名。

这么多年下来,我总结的经验就是,如果你的应用没法上架AppStore,优先选TF签名,性价比最高,稳定性最好;如果应用不适合TF,那就选正规的独享证书,绝对不要贪便宜用共享证书,共享证书只适合自己测试用,正式给用户用肯定出问题;找签名服务商一定要找正规的,用正规开发者账号的,不要找用黑ID的,不然哪天被苹果风控封了,哭都来不及。ios签名证书价格看起来差异很大,从几块钱到几千块都有,核心差异就是稳定性和服务,掉签能不能及时补,有没有备用方案,这些才是最重要的,千万不要为了省几十块钱,最后亏了几万几十万的业务。