我接触苹果ios签名已经快六年了,从最开始帮创业朋友做小工具内测,到现在帮几十家中小团队做内测分发解决方案,踩过无数坑也攒了不少实打实的经验,今天就以我自己的使用经历,给大家做一份深度总结,把行业里真实的情况讲清楚。
首先说大家最关心的签名技术原理,iOS本身是闭源系统,苹果的安全机制要求所有能安装运行的APP必须经过官方认可的签名,没有有效签名的IPA包根本没法在iOS设备上打开,我们常说的IPA签名,本质就是利用苹果开放给开发者的合法权限,给未上架App Store的IPA包赋予可被系统信任的签名身份,核心用的就是iOS非对称加密验证逻辑:苹果持有核心私钥,开发者申请开发者账号后会获得对应的公钥证书,用证书给IPA签名后,系统安装时会向苹果服务器验证签名合法性,验证通过就能正常安装,整个过程不需要把应用提交到App Store走上架审核,非常适合内测应用、或者暂时不符合上架规范的项目使用。
接下来聊聊决定签名稳定性的核心:证书池机制。我最早做签名的时候,自己只买了一张企业证书,所有客户的应用都放在上面,结果不到一个月就被苹果吊销,所有应用一起掉签,当时我手里一个做H5封装的本地服务项目,一千多用户同时没法用,我折腾了两天才补签完成,差点丢了客户。后来才知道,正规的签名服务商早就用上了证书池机制,简单来说就是服务商提前申请了大量不同类型的开发者证书,分散存储在不同的开发者账号下,根据应用的类型、用户规模动态分配证书资源,不会把大量应用集中在少数几张证书上,就算某一张证书被苹果吊销,也只会影响少部分应用,而且服务商提前储备的闲置证书可以马上补位,大大降低了掉签的影响。我现在自己也攒了一个小型证书池,手里有二十多张不同的企业证书和上百个个人开发者账号,给长期合作的老客户用,这几年掉签的次数屈指可数,稳定性比单张证书提升了不止一个档次。
然后说说UDID绑定,这是超级签名、TF签名这类用个人/公司开发者账号做签名的核心环节。UDID是每台iOS设备独有的识别码,苹果规则规定,个人开发者账号最多只能绑定100台测试设备,所以要让用户设备安装应用,必须先把对应设备的UDID添加到开发者账号的测试设备列表里,这个过程就是UDID绑定。早年做超级签名还需要用户手动复制UDID,导入开发者后台,现在技术成熟了,都是用户点一下下载链接就能自动获取UDID,自动完成绑定签名,整个过程不到一分钟,用户体验已经很好了。我也遇到过不少问题,比如有些用户刷机后UDID会变化,之前绑定的就会失效,需要重新绑定重签;还有一些不良服务商,会把一个UDID重复卖给多个客户,甚至超过100台限制硬挂设备,很容易触发苹果检测封号,导致批量掉签,这也是新手很容易踩的坑。
接下来我梳理一下常规的重签流程,不管是首次签名还是掉签后补签,流程都差不多:第一步是准备已经打包好的IPA包,如果客户是H5项目需要封装成APP,就先完成H5封装生成标准IPA包;第二步是根据客户选择的签名类型,匹配对应的有效证书和描述文件,企业签名用企业开发者证书,超级签名用个人开发者证书,TF签名则是先打包上传TestFlight;第三步就是移除IPA原来的签名信息,用新证书重新签名,打包生成新的安装包,上传到分发平台;最后一步就是生成下载链接,用户就可以直接安装使用了。如果是掉签补签,其实就是换一张有效证书重新走一遍签名流程,正规服务商一般几个小时就能完成,不会耽误太久使用,我合作的服务商最快能做到一小时内补签完,就算遇到苹果大规模吊销证书的特殊情况,最多也不会超过24小时。
聊完基础的机制和流程,再说说大家最关心的:超级签名与企业签名的真实稳定性对比,还有市面上不同渠道的真实价格。我用了这么多年,客观来说,两种签名各有优劣,稳定性也要分情况看。首先说企业签名,企业签名不需要绑定UDID,任何设备都能安装,按周期收费,目前市面上分共享证书和独立证书两种,价格差异很大:共享证书就是很多应用共用一张证书,小渠道报价一般一个月80到150元,正规大渠道大概200到300元一个月,这种稳定性最差,我之前用共享证书,平均半个月掉一次,赶上苹果清理的时候一周掉两次,补签虽然免费,但是折腾用户,只适合临时测试的小项目;独立证书就是一张证书只放你一个应用,小渠道报价大概一个季度800到1000元,正规渠道一般一个季度1200到1800元,年签大概3000到4000元,这种稳定性就好很多,我手里三个长期合作的客户用独立企业签名两年多,总共只掉过三次,都是苹果大规模清理企业证书的时候,补签也都是当天完成,基本不影响使用。
然后说超级签名,超级签名是按下载量收费,按设备绑定,不同渠道报价一般是1到3元一个UDID,1000台以下的小量一般2到3元一台,一万台以上的大量可以谈到1到1.5元一台。超级签名的稳定性比共享企业签名好太多,只要服务商用的是正规个人开发者账号,没有违规操作,绑定好的UDID只要用户不换设备不刷机,基本不会掉,我这边统计下来,超级签名的掉签概率比共享企业签名低70%以上,只是超级签名也有出问题的时候,去年我有个客户做推广活动,一天新增了两千多下载,结果服务商的五个个人账号因为新增设备太多触发苹果检测被封号,一千多台设备掉签,后来折腾了一天才补签完成,所以做大规模推广之前一定要跟服务商确认账号的承载能力。
除了这两种,现在主流的还有TF签名和官方上架,TF签名其实就是把应用上传到苹果官方的TestFlight做内测,是苹果官方认可的内测方式,稳定性是所有非上架签名里最好的,基本不会掉签,价格一般不包过审是500到800元,包过审大概1000到2000元,有效期三个月,只要不被下架就能一直用,限制就是测试名额最多一万个,而且需要过审核,违规应用过不了。官方上架就是直接上线App Store,这是最稳定的方式,用户信任度也最高,成本就是一年688元的开发者账号年费,如果找代上架过审,一般过审付费是2000到5000元不等,只是官方审核非常严,很多内测应用、不符合规范的应用根本过不了审,所以大部分做内测的项目还是会选择前面几种签名方式。
我做了这么多年,八成以上的签名需求都能保持长期稳定,只要选对了签名类型和服务商,掉签真的是小概率事件。很多人一提到苹果签名就觉得容易掉签,其实都是早年小作坊乱做留下的坏印象,现在行业发展已经很规范了,证书池机制、自动化补签都很成熟,大部分正规签名能用好几个月都不出问题。我认识一个做社区团购的团队,他们的应用因为是本地服务,不符合上架要求,用独立企业签名跑了三年了,用户量快一万,总共只掉过四次,补签都很快,一直稳定运行,完全满足业务需求。当然我也遇到过不少问题,除了之前说的小作坊用共享证书充独立证书骗钱,还有一些黑商用盗用的证书做签名,不到一周就被吊销,贪便宜找低价的基本都会踩坑,所以这个行业真的是一分钱一分货,低价永远对应低稳定性。
总的来说,苹果ios签名内测发展到现在,技术已经非常成熟,对于需要内测试错的创业团队,或者暂时没法上架官方商店的项目来说,真的是性价比最高的选择,从H5封装到IPA签名,再到各类签名方案的选择,已经形成了非常完整的服务链,只要你选对正规服务商,根据自己的用户规模和预算选对签名类型,完全可以获得稳定的使用体验,就算偶尔掉签,也有成熟的补签机制快速解决,不会对业务造成太大影响。