玩iOS签名整整六年了,从最早企业签满天飞的时代一路踩坑过来,帮几十个独立开发者、本地中小商家签过不下百个IPA包,见过太多贪便宜吃大亏的例子,也摸透了整个行业的底层逻辑,今天就以我自己的经验,把设备签名逻辑、证书分发这些核心问题讲清楚,给需要的朋友做个参考。
首先说最基础的设备签名逻辑,iOS系统本身的封闭性决定了,任何能在手机上运行的APP都必须经过苹果官方授权签名,系统启动APP的时候第一时间就会校验签名合法性,不合法或者签名失效的APP直接无法打开,这就是我们常说的掉签。我们常说的IPA签名,就是给未经过苹果官方签名的IPA安装包,用合法的开发者证书重新签名,让它可以绕过AppStore直接安装到用户手机上。很多做H5应用的开发者或者商家,想要把H5封装成APP直接分发,就会先做H5封装得到IPA包,再做签名,这是现在圈内最常见的需求——毕竟很多定制化的内部APP、小商家的本地应用不符合AppStore上架要求,不可能直接上架公开下载,签名分发就是最实用的方案。
目前主流的几种签名方式逻辑各不相同:超级签名是用99美元个人开发者证书,把每一个安装用户的设备UDID绑定到证书的设备列表里,利用个人开发者账号最多可以绑定100台测试设备的规则实现安装,一个设备对应一个绑定名额;企业签名是用299美元的企业开发者证书签名,不限设备数量,本来是给企业内部开发内部APP用的,现在被用来做外部分发;TF签名则是把IPA包上传到苹果官方的TestFlight内测平台,走官方内测通道分发,用户通过邀请链接从TestFlight安装APP,本质上是苹果官方认可的安装方式。
接下来说证书分发原理,不管是什么签名,核心都是开发者先向苹果缴纳年费申请开发者账号,账号申请通过后,生成包含苹果授权私钥的开发证书,再用这个证书给IPA包签名,苹果系统验证私钥合法性通过就能运行。现在业内常说的独享证书与共享证书,核心区别就是一个证书的使用人数:共享证书就是服务商把同一个企业证书或者多个个人证书,分给几百上千个客户的不同IPA共用,收每个客户很低的费用,靠走量赚钱;独享证书就是一个证书只给一个客户的APP使用,不分享给其他第三方,价格自然高很多。
我最早踩坑就是栽在共享证书上,六年前我帮一个开餐饮连锁的朋友做会员APP,就是H5封装的IPA,当时朋友嫌贵,选了某宝上200块钱包年的共享企业签,结果才用了21天,整个证书就被苹果封了,所有下载了APP的会员都打不开,那时候刚好赶上店庆做活动,几万会员领不了优惠券,朋友差点赔进去几万块的活动成本,从那之后我就开始做稳定性实测,自己找了五个同内容的合规H5封装商城IPA,分别挂在共享企业签、共享超级签、独享企业签、独享超级签、TF签名五个渠道,连续测了三个月,结论至今都没变。
实测的情况是这样的:第一个月,共享企业签掉了两次签,每次掉签都要重新签名让用户重新安装,流失了快三成测试用户,共享超级签掉了一次,是因为三个绑定用的Apple ID被封了两个,重新补签花了两天,剩下三个渠道都没出问题;第二个月,共享企业签直接凉凉,因为同证书上有一个客户接了违规的赌博APP,被苹果检测到之后整个证书直接吊销,所有绑定的APP全废了,共享超级签又掉了两次,其中一次是苹果批量风控,封了一半用来签名的Apple ID,服务商整整三天才补好证书,独享企业签因为只有我这一个测试包,内容合规,全程没出问题,TF签名更是一点波动都没有;第三个月,我重新花钱给共享渠道换了新证书,结果不到12天又因为同证书的违规包被牵连吊销,等于三个月换了三次证书,用户体验差到极点,而独享企业签和TF签名依然稳定运行,没有任何掉签情况。从这次实测之后,我给所有做正式运营的客户推荐,永远把稳定放在第一位,排序肯定是TF签名>独享证书签名>共享证书签名,从来没变过。
说到Apple ID风控,这是现在所有签名绕不开的问题,苹果最近几年风控越来越严,靠机器学习就能识别异常账号行为:一个正常的个人开发者账号一年最多绑100个设备,你一个账号绑几千个设备,短时间内新增几百个设备,肯定触发风控,直接封账号吊销证书;批量注册的僵尸ID、盗用的黑产ID,本身就被苹果标记,一有风吹草动就会被批量清理,这也是共享超级签动不动掉签的核心原因。我之前遇到过一个做跑腿配送的客户,找了某多上30块钱一个月的共享超级签,用了才一周,所有用来签名的Apple ID全被封,所有配送员的APP都打不开,耽误了整整一天的接单,后来找我转TF签名才稳住。而且哪怕你内容合规,用共享证书也会被别的违规APP牵连,一损俱损,这是共享证书天生的缺陷,改不了。
说到价格感受,这么多年我接触过各个渠道的签名,价格差真的很大,便宜的几块钱一个月、几十块钱包年都有,贵的TF签名一个月几百,独享企业签一年上千,但是一分钱一分货这句话在这个行业真的是真理。那些低价签名基本都是共享证书,成本本身就低,一个企业证书一年给苹果交299美元,分给几百个客户用,每个人收几十块就能赚好几倍,但是稳定性根本没法保障,掉签了要么不给补,要么补完没多久又掉,出了问题拉黑你你也没地方说理。正规服务商的独享证书,一个证书只给你一个人用,成本本身就高,还要承担封号风险,价格自然贵,但是胜在不会被牵连,只要你内容合规就很少掉签。而TF签名的价格,一般正规渠道合规内容一个月三百到八百,比独享企业签便宜,稳定性还更高,对中小开发者来说性价比最高。
这里也给大家理清楚TF签名安装流程,很多人担心TF签名安装麻烦,其实比企业签简单太多:第一步,我们把做好的IPA包(不管是原生开发还是H5封装)提交到TestFlight,过了苹果审核之后拿到官方测试链接;第二步,用户点击链接之后会直接跳转到AppStore的TestFlight页面,用户只需要先免费下载安装TestFlight这个苹果官方应用就行;第三步,回到测试链接点击“开始测试”,TestFlight就会自动下载安装你的APP,全程不需要用户去设置里信任证书,也不需要越狱,都是官方流程,哪怕是新手用户也能一步操作完成,比企业签对用户友好太多。
我也遇到过不少问题,最常见的就是很多人问我H5封装的APP能不能做TF签名,我自己经手的几十个H5封装的APP,只要内容合规,符合苹果的内测要求,基本都能过审,之前有个做生鲜配送的客户,H5封装的APP,只是改了启动页,加了符合要求的隐私政策,不到一天就过审了,用到现在快一年了,从来没掉过签。还有很多人问我为什么不直接上架AppStore,能上架当然最好,但是很多APP本身就是给内部员工用的,或者是定制化的小工具,不符合AppStore的上架规则,没必要花几万块钱改内容上架,签名分发足够用,成本也低很多。
这么多年总结下来,做iOS签名,稳定永远是第一位的,如果你只是自己测试用,偶尔用几天,那整个低价共享签没问题,如果你是做正式运营,要给用户或者员工长期用,真的别贪那点便宜,一次掉签带来的用户流失、业务损失,远远比一年的签名费贵得多,优先选TF签名,其次选独享证书,只要内容合规,用个一年半载根本不会出问题,比天天掉签天天补省心太多。