我接触苹果签名至今快八年了,从最早企业签名刚兴起的时候帮朋友做内测分发,到现在帮不少中小开发者处理IPA签名、H5封装的签名需求,前前后后用过不下十款签名产品,最近三年主要靠苹果签名证书自助平台,踩过坑也享受到了技术进步带来的便利,今天就把我这些年摸透的干货整理出来,给刚接触签名的朋友做个参考。
首先说签名技术原理,很多新手只知道签名能让未上架的应用装到iOS设备上,却不知道核心逻辑。iOS是封闭系统,为了保障设备安全,苹果对所有安装包做了代码签名校验,只有经过苹果信任的合法开发者证书签名的IPA包,才能被系统验证通过,正常安装运行,没有签名或者签名失效的安装包,要么装不上,要么装上也会秒退打不开。这套机制用的是非对称加密,开发者手里的证书存私钥,苹果服务器存对应公钥,安装时系统会校验签名信息,对得上就放行,对不上就拦截。因为很多应用没法走官方上架,要么是还在开发的内测版本,要么是不符合App Store审核规则的工具类、企业内部应用,还有很多H5封装出来的轻应用需要快速上线,所以IPA签名这个需求才一直存在。
接下来讲现在自助平台主流的证书池机制,这也是我觉得现在签名稳定性比十年前好太多的核心原因。早年找个人代签,服务商手里也就三五本证书,几百个应用全挤在一两本证书里,苹果很容易检测到证书异常使用,一吊销就是全掉,所有人都受影响。证书池机制就是平台把几十上百本正规的苹果开发者证书放到一个资源池里,做了负载均衡和风险分散,签名的时候自动给应用分配可用证书,还会控制单本证书的签名数量,正规平台的稳定池里,一本证书最多也就签一两百个应用,远远达不到苹果的预警阈值,自然不容易被吊销。我现在用的自助平台,证书池分普通池和专属稳定池,我手里三十多个签名应用大部分都放在稳定池,大半年都没出过大问题,只有一次其中一本证书被举报吊销,平台自动把上面的应用迁移到了其他空闲证书,重签完成我都没收到用户投诉,全程自动处理,完全不用我操作。当然我也踩过坑,早年贪便宜选了不知名小平台的低价签名,他们的证书池就是把几百个应用塞一本证书,美其名曰共享,结果不到一周全掉了,找补签服务商拖了三天才处理,那时候我才明白,证书池不是说证书越多越好,质量和负载控制才是稳定性的核心。
然后说很多新手搞不懂的UDID绑定,UDID就是每台iOS设备唯一的识别码,超级签名、TF签名都需要绑定UDID才能安装,核心原因是苹果个人开发者证书有设备数量限制,一个正规个人开发者账号一年最多只能绑定100台不同的设备,所以做超级签名的时候,必须把要安装应用的设备UDID加到对应的开发者账号里,才能签名成功安装。现在自助平台都做了自动获取UDID的功能,不用用户手动复制粘贴,用户点一下安装链接,按照提示操作就能自动获取绑定,体验非常好。我平时做H5封装的轻应用,从来不用费心教用户怎么弄UDID,大部分用户自己点几下就能装好,只有少数旧系统版本的设备会出问题,遇到绑定失败,我手动把用户发过来的UDID上传到平台后台,一分钟就能搞定,比早年手动操作省了太多时间。我之前遇到过一次UDID批量绑定失败,查了半天发现是对应的开发者账号到期,平台没及时更新证书,我在后台直接换了可用证书重新签名,五分钟就解决了问题,放在早年找代签,不知道要等多久才能处理好。
再说说我现在常用的重签补签流程,自助平台真的把这个流程简化到了极致,哪怕是刚接触签名的新手也能自己操作。如果是新应用,你只需要把打包好的IPA上传到平台,如果没有IPA只有H5链接,平台直接就能帮你做H5封装生成IPA,然后你选择要做的签名类型,平台就会自动分配证书签名,生成安装链接和二维码,直接就能发给用户安装。如果是掉签需要补签,你只需要进入应用后台点一下补签,平台就会自动用可用证书重新签名,要是开了自动补签服务,平台检测到证书失效会直接自动重签,链接都不用换,用户根本感知不到掉签。我上个月凌晨两点收到平台的证书失效提醒,早上七点起来看,平台已经自动补签完成,所有用户都能正常使用,我什么都不用做,这种体验是早年找人工代签根本比不了的。
接下来是大家最关心的,超级签名与企业签名的真实稳定性对比,还有不同渠道的价格,我说说我这些年的实际体验。首先说超级签名,超级签名用的是个人开发者证书,依赖UDID绑定,只要不用黑号、不超量绑定,稳定性其实非常高。价格方面,不同渠道差的很多,正规自助平台一般是按设备收费,每台设备一年1.2到2元左右,量少的话也可以按次签名,几十块钱就能搞定,掉签补签不额外收费;如果是那种低价黑渠道,能做到0.5到1元每台,用的都是盗来的或者被苹果标记的黑号,基本半个月就会全掉,完全不建议用。然后是企业签名,企业签名用的是苹果企业开发者证书,不用绑定UDID,支持无限量设备安装,适合用户量比较大的应用。价格方面,共享证书就是很多应用共用一本,市场价每个月100到300,稳定性非常差,平均半个月掉一次,补签还经常要加钱;独占稳定证书就是一本证书只放少量应用,市场价每个季度600到1200,包全年补签,一年下来2000到4000,稳定性很高,我有个做企业内部工具的独占签名应用,放了快十个月只掉过一次,当天就补好了。
真实稳定性对比下来,只要是正规渠道的,两种签名其实都够用,超级签名适合用户量小的内测或者小范围使用,稳定性略高于普通的独占企业签名,企业签名适合用户量大的运营级应用,性价比更高,很多人说签名容易掉,其实都是选了低价共享证书或者黑号,不能怪技术本身。
除了这两种,现在还有TF签名和官方上架,这两个我也常用来给客户做方案。TF签名就是TestFlight签名,是苹果官方认可的内测分发方式,本质是把应用放到苹果官方的TestFlight平台让用户安装,稳定性是除了官方上架之外最高的,几乎不会掉签,有效期90天,到期重新上传一次就行,价格一般按次收费,正规渠道一次150到400,包上架成功,掉签免费补,适合那些过不了官方上架的合规应用。官方上架就是直接上线App Store,这个当然是最稳定的,用户信任度最高,但是审核严,周期长,很多应用不符合要求没法上,价格一般是服务费,普通应用1000到3000包过,过了之后只需要每年交苹果的开发者年费就行,很多客户都是先做签名跑测试,稳定了再调整做官方上架。
我做了这么多年,大部分时候签名都是稳定好用的,掉签补签其实都是小概率事件,我手里三十多个应用,一年下来掉签次数加起来不到十次,大部分都能自动处理,只有少数需要我手动点一下,几分钟就能搞定,遇到证书问题平台也会快速处理,完全不会影响正常使用。只要选对正规的苹果签名证书自助平台,选对适合自己需求的签名类型,完全可以满足内测和运营的需求,不管是IPA签名还是H5封装,都能快速搞定,比早年找人工代签省心太多了。