我玩iOS签名机制研究和实际落地快八年了,从最早的企业签名垄断市场,到后来超级签名兴起又没落,再到现在TF签名成为国内非公发分发的主流,这些年踩过的坑、帮朋友解决的问题攒了一大堆,最近半个月就有三个刚做H5封装的新手开发者找我问TF签名下载次数限制的问题,索性把我这么多年摸出来的干货整理出来,给想要做非公开发布的朋友做个参考。
首先得从最基础的设备签名逻辑讲起,大家常说的IPA签名,本质上就是苹果闭源生态下的准入机制,任何想要安装到iOS设备上的应用,都必须有一个苹果官方认可的合法签名,相当于给应用盖一个苹果承认的公章,iOS系统启动应用的时候第一步就是验证签名合法性,没有签名或者签名已经失效的应用,要么安装失败,要么打开就闪退,根本没法用。设备签名的核心逻辑就是,签名环节需要把用户设备的唯一识别码UDID绑定到签名对应的描述文件里,苹果验证服务器在收到设备的验证请求时,会核对描述文件里的绑定设备列表,确认当前设备在授权列表内才会放行,这也是所有iOS非官方签名的核心基础,最早的个人免费签名就是依托这个逻辑做的,一个免费的Apple ID最多可以绑定100台设备,也就最多给100台设备做签名。
讲完签名逻辑,再说说证书分发原理,苹果的开发者证书体系其实并不复杂,开发者先在苹果开发者后台生成证书签名请求,把自己生成的公钥上传给苹果,苹果验证开发者身份后,会给开发者签发包含公钥和私钥的合法证书,搭配证书使用的还有描述文件,描述文件里会绑定应用的Bundle ID、授权设备列表、签名权限这些核心信息。做分发的时候,我们就是把原IPA包的旧签名去掉,用自己拿到的合法证书和描述文件重新给IPA签名,再分发出去给用户安装。根据分发渠道的不同,证书也分很多种,最正规的当然是上线AppStore的发布证书,签名后通过苹果官方审核上线,所有用户都可以下载安装,但是AppStore的审核规则非常严格,很多类型的应用根本过审,比如企业内部使用的定制OA工具、还在灰度测试的新产品、不符合AppStore审核规范的H5封装应用、面向特定人群的工具类产品,这些大多没法上线AppStore,所以才催生了IPA签名这个行业。我自己接触最多的就是H5封装的需求,很多中小创业者不想花大成本做原生App,只需要把做好的H5页面封装成IPA包,做个签名就能给用户安装,成本低上线快,非常灵活。
接下来不得不说的就是大家都关心的Apple ID风控,这也是决定签名稳不稳定的核心因素,苹果这些年对签名分发的监管越来越严,风控模型也一直在更新,很多情况都会触发风控,比如同一个Apple ID对应的证书短时间内签名了上百个不同的IPA、同一个证书绑定的设备量远超正常范围、IP地址频繁切换、同一个身份信息注册多个开发者账号、签名的应用包含违规内容,这些都会触发苹果的风控机制,最轻的处罚就是吊销对应的证书,所有用这个证书签名的应用立刻失效,严重一点的直接封禁整个开发者账号,所有关联的证书全都用不了。我早年刚入行的时候踩过最大的坑就是这个,那时候不懂,找了个平台9块9买了一个月的签名,刚给几百个种子用户装上,第三天证书就被吊销了,所有用户打开都是闪退,我到处找商家补发,折腾了一个星期才重新签好,直接流失了三分之一的种子用户,那时候才明白,风控这个东西,真的不是随便说说的。
说到这里就不得不区分一下独享证书和共享证书,这也是市面上签名价格差几十上百倍的核心原因。共享证书就是商家申请到一个开发者证书之后,把这个证书分给几百上千个客户共用,所有客户都用同一个证书签名自己的应用,商家只需要收很少的钱就能盈利,这种证书的价格确实非常诱人,IPA签名一个月几块钱几十块钱就能拿下,但是稳定性极差,因为几百个人共用一个证书,随便哪个人签了违规应用,或者整体签名量、设备绑定量超标,就会触发苹果风控,整个证书直接被吊销,所有客户全都掉签。而独享证书就是一证只用在一个客户的应用上,整个证书只给你一个人用,签名量和设备量都由你自己控制,只要你的应用本身不违规,基本不会触发风控,稳定性自然高很多,当然价格也比共享证书贵很多,一般独享企业签名一个月几百块,独享TF签名一年一千多,看起来贵,但是细算下来真的不贵。
我去年为了给客户选稳定的渠道,特意做了三个月的稳定性实测,同一个H5封装的本地生活工具IPA,分别在三个不同价位的渠道做了签名,测试结果真的反差很大。第一个就是9块9的共享企业IPA签名,来自某二手交易平台的商家,宣传说“掉签包补,永久稳定”,结果安装完第三天就全面掉签,商家倒是爽快给补发了,结果第五天又掉了,三个月测下来一共掉了11次,平均每八天就掉一次,每次掉签都要重新通知用户重新安装,体验差到没法用,这种便宜真的不能占。第二个是128块钱一个季度的共享TF签名,商家宣传是苹果官方渠道稳定不掉,结果用了一个多月,突然新用户就没法下载了,提示“无法安装此应用”,我找商家追问才知道,很多人不知道TF签名下载次数限制,苹果官方规则里,一个TestFlight的构建版本最多允许10000次下载,共享TF就是商家把这一万次下载额度分给几百个客户共用,我的应用才推了不到两千次下载,剩下的额度早就被别的客户用光了,要继续用就得再加钱开新的版本,等于变相加价,这种隐性消费真的太坑了。第三个是1299块钱一年的独享TF签名,整个证书和下载额度都是我独享的,三个月测试下来,一次掉签都没有,我的应用累计下载了八千两百多次,还剩一千多额度,完全够用,而且苹果官方的分发链接,不会被苹果屏蔽,用户点击链接跳转到TestFlight就能安装,不需要手动信任企业证书,也不会出现证书不受信任打不开的问题,稳定性比前两个好太多了。
说到价格感受,我专门算过一笔账,共享签名一个月就算只花50块钱,一年才600,看起来比独享TF的1299便宜一半,但是每次掉签至少流失10%到20%的活跃用户,你做推广获客一个用户成本就要几十块,掉一次签流失几十个用户,损失就是几千块,早就超过了签名省的那点钱,真的是贪小便宜吃大亏。当然我也遇到过漫天要价的,有些平台张口就要三千块一个月的独享签名,其实完全没必要,只要找正规的个人商家或者靠谱的小平台,一千多一年的独享TF就完全能满足中小应用的需求,性价比最高。
除了掉签和额度用完,我还遇到过不少糟心的问题,比如有一次找个人商家做H5封装签名,结果他偷偷把我的IPA包备份,卖给了同行业的竞争对手,还拿我的证书给对方签名,后来对方的应用违规,直接把我的证书也牵连封禁了,损失了好几个月的业务,所以找商家一定要找靠谱的,能提前约定好权责的最好。还有就是企业签名现在真的越来越不稳定,哪怕是独享企业签,苹果现在对企业内部分发查的非常严,只要检测到你面向外部用户分发,很快就会吊销证书,我之前专门测的独享企业签,三个月也掉了两次,稳定性还是不如官方认可的TF签名。
其实说白了,如果能满足上线要求,所有人都愿意把应用放到AppStore,正规官方最稳定,推广也方便,但是很多时候我们确实没法满足AppStore的审核要求,只能走签名分发的路子,这个时候稳定就是第一位的。我这么多年的经验就是,能选独享证书就不要碰共享证书,能选TF签名就不要选企业签名,只要提前问清楚TF签名下载次数限制,确认下载额度是自己独享的,就算后续用完了,重新上传一个新的构建版本也就几十块钱的成本,对于中小应用来说,一万次额度够用大半年甚至一年,完全足够,只要应用本身不违规,基本可以做到全年不掉签,省下的时间和留住的用户,远比那点差价值钱多了。