我接触苹果签名至今快六年了,最早是帮创业的朋友做应用内测,从手动导出UDID、用Xcode手动签名到现在对接自动化签名平台,大大小小的问题见过不下几百种,今天就以我自己的使用经验,给大家讲讲这个行业里的真实情况,从技术原理到不同签名的稳定性、价格,都说点实实在在的内容。
首先说最基础的签名技术原理,iOS是闭源系统,苹果对所有安装到手机上的应用都有一套严格的授权机制,任何没有经过官方授权签名的IPA文件,都无法通过系统验证,更别说正常安装打开了。所谓苹果签名,本质就是用苹果官方颁发给开发者的证书,给需要安装的IPA文件添加信任授权,相当于给IPA盖了一个苹果认可的“放行章”,系统验证到这个合法签名后,才会允许应用安装。不管是IPA签名、H5封装后的应用签名,还是内测版本的签名,核心逻辑都是这个,只是用的证书类型不一样,分发方式不一样而已。
接下来讲很多新手都不懂的证书池机制,我最早做签名的时候吃过没有证书池的亏,那时候手里只有两三张证书,一封就是全死。其实证书池就是服务商把多张不同渠道、不同类型的正规苹果证书整合到一个资源池里,根据不同的签名需求动态调配。比如一张企业证书被封了,池子里还有其他备用的企业证书可以立刻顶上来,不会让所有签好的应用一下子全部掉签;超级签名的证书名额用完了,也能直接调用池子里新的证书绑定UDID,不用用户等着服务商申请新证书。正规的大服务商证书池里往往有上百张不同的证书,稳定性比小作坊一两张证书扛着强太多,这也是为什么同样是签名,不同服务商稳定性差很多的核心原因之一。
然后说UDID绑定,UDID是每一台苹果设备独有的识别码,只要涉及到需要绑定设备权限的签名,UDID绑定都是绕不开的步骤。比如最常见的超级签名,用的是个人或者公司开发者证书,每张个人证书最多只能绑定100台测试设备,所以要把用户设备的UDID添加到证书的测试设备列表里,完成绑定之后再签名,苹果才会允许这台设备安装对应应用。早期我做签名的时候还要手动让用户导出UDID发给我,我手动导入开发者后台,现在早就实现自动化了,用户点一下下载链接就能自动获取UDID,自动完成绑定签名,全程不用人工干预。哪怕是TF签名,其实本质上也会记录设备UDID,只不过这个记录是苹果官方在TestFlight后台完成的,不需要服务商操作而已。
再给大家说说我常操作的重签流程,其实流程说复杂也不复杂,不管是原生开发的IPA还是H5封装出来的IPA,步骤都差不多:第一步拿到用户的原始IPA包之后,先去除包里面原来的无效签名或者错误配置,替换成对应证书的描述文件;第二步用签名工具搭配我们的证书给处理好的IPA重新做签名授权;第三步验证签名是否有效,有没有配置错误;最后生成对应的下载链接,用户就能直接安装了。如果是H5封装的应用,就是先把商家的H5页面打包成标准的IPA包,再走一遍上面的签名流程就行了,我接过很多本地中小商家的H5封装单,他们不需要做复杂的原生APP,只需要一个能放桌面的入口,封装加签名下来才几百块,比开发原生APP、官方上架便宜太多了。
接下来就是大家最关心的问题:超级签名与企业签名的真实稳定性对比,还有不同渠道的真实价格。我做这么多年,接触过无数客户,也踩过很多坑,实实在在的体验就是,大部分正规渠道的签名都是好用稳定的,只有贪便宜找小作坊、用不合规证书才会天天出问题。先给大家报一下现在行业里的真实价格,方便大家参考:企业签名分两种,小渠道的共享证书企业签,就是几十个人共用一张证书,价格一般一个月30到100块,非常便宜;独立证书企业签就是一个应用独占一张证书,价格一般一个月200到800块,大服务商包稳定包补签的按年付费,一年大概2000到5000块。超级签名都是按设备数量收费,现在市场价一般单台设备2到5块,一千台以上的量大单价能降到2块左右,早期我做的时候单台要十块,现在便宜太多了。TF签名的价格更亲民,一般包三个月稳定是300到800块,包年是1000到2000块,按安装量算的话单台安装只要0.8到1.5块,比超级签名便宜很多。
说到稳定性,我给大家说我实际统计出来的结果,不是网上瞎编的:共享证书的企业签稳定性最差,我见过最夸张的一个客户,贪便宜找了50块一个月的共享签,半个月掉了三次签,每次掉签所有已经安装的应用都打不开,要重新补签重新下载,用户流失了一大半。这种共享签之所以容易掉,就是因为只要共用一张证书的某个应用违规被举报,苹果封证书,所有应用都会跟着掉签,牵连性太强。独立证书的企业签就稳定很多,只要应用本身不违规,一般两三个月才可能掉一次,补签也快,正规服务商几个小时就能搞定,我有个客户用独立企业签做内部OA,快一年才掉过一次,补签之后一直正常用,还是很稳定的。超级签名的稳定性比独立企业签好一点,因为超级签名是每个证书绑定100台设备,不会因为其他应用牵连,只要应用本身不违规,证书是正规申请的,一般一年掉个一两次了不起了。我之前遇到过一次超级签批量掉签,是因为服务商用了批量刷出来的黑证书,苹果查到批量注册一下子封了几十张,后来换了正规渠道的证书就再也没出过这种问题,大部分时候正规超级签还是很稳的。
那回到开头的问题,TF苹果签名优势是什么?我用了这么多,最大的优势就是稳定性远超超级签名和企业签名。TF签名本质是把应用放到苹果官方的TestFlight测试平台,是苹果官方允许的内测分发渠道,相当于用苹果官方的渠道做分发,根本不存在私下签名被苹果封证书的问题,只要应用本身不违规,基本不会掉签。我自己做了一个小工具IPA,因为功能简单被官方上架拒了,后来做了TF签名放到朋友圈给同行用,快两年了,还能正常下载安装,一次都没掉过,这种稳定性是其他签名比不了的。TF签名还有几个优势:一是用户安装体验好,不用绕开企业级信任,只要跳转到TestFlight下载就行了,是苹果官方的安装流程,不会弹出不信任提示;二是没有设备数量的限制,一个TF测试版本最多能有一万个测试名额,足够绝大多数中小应用、内测应用用,不够还能多建几个版本,非常灵活;三是价格便宜,比超级签名和独立企业签成本低很多,对中小开发者非常友好。
当然,我也不说所有签名都百分百没问题,这么多年我也遇到过不少问题,比如之前遇到过擦边内容的应用,不管做什么签名都容易掉,苹果查的严,这种本身违规的应用,哪怕是TF签名也会被苹果下架,这不是签名的问题,是应用本身的问题。还有就是补签的问题,小服务商掉签之后要等一两天才能补好,大服务商有证书池,掉签之后自动调配证书重签,下载链接都不用换,用户根本感觉不到,差别还是很大的。还有我最早自己攒证书的时候,买了几张盗用身份信息申请的黑证书,不到一个星期全被封,所有客户的应用都掉签,我熬夜给客户补签还赔了违约金,那之后我就只合作正规渠道申请的证书,再也不碰黑证了,证书正规才是稳定的基础。
最后说一下大家容易混淆的点,官方上架肯定是最好的选择,如果你的应用符合苹果的审核规范,能上架App Store,那一定要优先选官方上架,官方上架的应用信任度最高,用户搜索就能下载,也不会有掉签的问题。但很多应用确实没法官方上架,比如还在开发中的内测应用、企业内部用的OA考勤应用、不符合上架规范的工具类应用,还有中小商家做的H5封装引流应用,这些用苹果签名就是最好的替代方案,根据自己的需求选就可以:几十个人内测选超级签名划算,几千个用户用要稳定选TF签名,大规模分发选独立企业签性价比最高。我做了这么多年,绝大多数客户用正规签名都能满足需求,稳定使用大半年甚至几年的不在少数,只要找对渠道,不贪便宜找不合规的小作坊,苹果签名还是非常好用靠谱的。