我接触苹果签名行业快六年了,最早在小开发团队接定制开发单的时候,就经常碰到客户的应用没法走官方上架,要么是企业内部办公工具不对外开放,要么是功能不符合App Store审核规则,从那时候起我就开始蹲论坛翻文档,自己动手做签名测试,摸透了大大小小各种签名方案的门道,被问得最多的问题就是苹果企业签名适合什么应用,索性把这么多年的实际使用经验整理出来,从原理到实际体验说点真话。
先从最基础的签名技术原理说起,很多刚接触的人都搞不懂为什么要做签名,其实苹果iOS系统本身有一套完整的应用校验机制,任何安装到手机上的应用,都必须拥有苹果信任的签名信息,不然要么提示“不受信任的开发者”无法打开,要么直接安装失败。我们常说的IPA签名,本质就是用苹果官方签发的合法开发者证书,给已经打包好的IPA安装包注入信任凭证,让iOS系统认可这个应用可以正常安装运行,不同类型的签名用的证书类型不一样,企业签名用的就是苹果299美元一年的企业开发者账号签发的证书,最大的特点就是不需要上传App Store审核,也不需要绑定设备数量,只要签好就能给任意用户安装,这也是它最大的优势。
接下来说说现在行业里主流的证书池机制,我最早做签名的时候,很多小服务商就是一张证书签几百上千个应用,不管什么类型的应用都往里面塞,动不动就掉签,补签要等好几天,后来行业慢慢成熟才出来证书池机制,我现在合作的正规服务商,证书池就是把几十上百张不同主体、不同渠道申请的企业证书整合起来,做成动态调度的资源池,会根据应用的类型、预估下载量分配不同层级的证书,比如百人以内的内部应用,分到共享稳定池的证书,千人大流量的应用会分到独享证书池,要是某一张证书因为苹果抽检、举报被吊销了,证书池里立刻就能调出备用证书补签,不用等重新申请证书,大大缩短了补签的时间,也提高了整体的稳定性,这是小作坊服务商比不了的,我用带证书池的签名这四五年,80%的应用都能稳定运行半年以上,很少出问题。
然后说UDID绑定,很多人搞不懂这个机制,其实UDID是每一台iOS设备唯一的识别编码,UDID绑定就是把用户设备的UDID提前添加到苹果开发者后台的已授权设备列表里,只有绑定了UDID的设备才能安装对应的签名应用,这个机制最早是苹果给开发者做应用测试用的,个人开发者账号一年最多只能绑定100台设备,超级签名就是用这个机制做的,把大量个人开发者账号整合起来,用户安装的时候自动获取UDID绑定,就能实现安装,而企业签名本身是不需要UDID绑定的,不限制设备数量,这也是企业签名和超级签名最核心的区别之一,当然现在有些合规性要求高的企业签名,也会加一层UDID绑定做设备管控,进一步提高稳定性。
再说说我自己实操过很多次的重签流程,其实现在自动化工具很成熟,整个流程已经非常简单了,第一步你需要拿到已经打包好的原始IPA包,不管是原生开发的应用,还是H5封装好的轻应用IPA,都可以,第二步是根据你选的签名类型,匹配对应的证书和描述文件,企业签名就用对应层级的企业证书生成描述文件,超级签名就根据设备UDID生成对应描述文件,第三步就是重签操作,现在都是工具自动处理,会自动解压原IPA包,替换里面的旧签名信息,修改权限配置文件,再重新打包签名,几分钟就能完成,第四步就是生成下载链接,或者导出签好的IPA包,用户就能直接下载安装了。要是遇到掉签需要补签,其实就是重新走一遍这个流程,换一张新的有效证书重新签名,正规服务商有证书池储备,一般几个小时就能完成补签,我碰到过最快的一次,上午说掉签,中午就补好了,用户重新安装一次就能用,对业务影响很小。
接下来聊一聊大家最关心的,超级签名与企业签名的真实稳定性对比,我先给大家说一下目前不同渠道的实际行情价格,方便大家参考:企业签名里,共享证书的企业签名,一般一个月50到150元,包全年补签,适合小流量测试应用;独享证书的企业签名,一个月300到800元,包年的话大概3000到6000元,稳定性比共享证书高很多;超稳独立企业签名,针对大下载量应用,一个月大概1000到2000元。超级签名一般按设备收费,一个设备3到8元不等,一般是一个设备终身授权,100台设备大概300元,1000台设备就是3000元,用户越多成本越高。TF签名一般按次收费,一次签名大概300到1000元,稳定能用3到6个月,价格介于共享企业签名和独享企业签名之间。
说回稳定性,我用了这么多年,真实感受是只要选对渠道,80%的合规应用用企业签名都能稳定运行,掉签真的是小概率事件,我有个客户做企业内部员工管理系统,两百多员工用,签的独享企业证书,已经用了两年多了,就掉过一次,还是因为原来的证书到期了,服务商直接从证书池调了新证书补签,半天就搞定了,用户几乎没感觉到影响。当然我也碰到过掉签的问题,最早贪便宜用过小服务商的共享企业签名,一个月才30块,结果半个月掉了三次,原来那张证书里塞了几百个应用,还有好几个违规擦边的,被用户举报之后苹果直接吊销了证书,整个证书里的应用全掉了,服务商那时候没有多余的证书储备,等了一周才补好,那时候客户做活动,耽误了不少事,从那之后我就只推荐客户用带证书池的独享企业签名了。
对比超级签名,我用下来超级签名的稳定性其实也不差,但是超级签名有两个天生的问题,第一个是它用的是个人开发者账号,苹果现在对个人账号绑定大量UDID查得很严,一个账号绑个几千台设备很容易被封号,一封号所有绑定的设备都没法用,我之前有个客户做经销商培训应用,一千多个用户用超级签名,结果服务商的账号被封,全掉了,后来换成企业独享签名,到现在一年多都没出过问题。第二个是成本问题,一千个用户就要几千块,一万个用户就是几万块,比企业签名一年几千块贵了好几倍,大用户量的应用完全不划算。
至于TF签名,也就是TestFlight签名,它是苹果官方的测试渠道,稳定性确实不错,但是TF签名的审核比企业签名严很多,很多不满足官方上架要求的应用也过不了TF审核,而且TF的下载链接最多只能下载一万次,超过就要重新打包提交,对于大流量应用来说很麻烦,我一般把TF签名作为备选方案,能过审的话用着也不错,但是多数情况下企业签名更灵活。
说到这里再回到最开始的问题,苹果企业签名适合什么应用?首先第一类就是企业内部办公、内部培训、工具类应用,这类应用只给内部员工用,不需要对外开放下载,企业签名不限制设备数量,价格便宜,稳定性高,完全匹配需求,我接触过的这类客户,90%都用得很稳定。第二类就是H5封装的轻应用,很多商家把本地服务、会员系统做成H5,封装成IPA之后不想上架App Store,用企业签名刚好,只要内容合规,几乎很少掉签,我有个客户做本地餐饮会员的H5封装应用,签了一年多,就补签过一次证书到期,一直稳定运行。第三类就是不满足官方上架规则,又没法过TF审核的合规应用,官方上架对应用内容、功能限制很多,比如不能跳转微信、不能有第三方内购,很多工具类、内容类应用满足不了,没法走官方上架,企业签名就是最好的选择。当然如果你的应用能满足官方上架要求,肯定优先走官方上架,官方上架是最稳定的,只是很多应用确实上不了,才会选择签名方案。
这么多年下来,我最大的感受就是,苹果签名的稳定性,主要看服务商的证书池储备和证书管控,只要不贪便宜选那种几十块的乱签共享证书,选正规服务商的独享证书,80%的合规应用都能长期稳定运行,掉签补签现在也非常方便,完全能满足正常的使用需求,是无法上架App Store的应用性价比最高的解决方案。