作为一个做了六年独立开发的老兵,从最早接H5封装定制单开始,我就一直在和苹果iOS签名打交道,最早踩过无数小服务商的坑,也自己研究过各种签名技术,到现在大部分定制的IPA签名需求我都是优先推荐客户用正规的苹果ios签名共享证书,很多人一听到“共享”两个字就觉得不靠谱,觉得共享证书肯定容易掉签不稳定,其实这都是好几年前的老印象了,现在这套技术已经非常成熟,只要找对正规服务商,稳定性比很多人吹捧的超级签名还要靠谱,成本也低很多。
首先说最基础的签名技术原理,苹果iOS系统出于安全性和生态管控的需求,所有安装到iOS设备上的应用都必须经过苹果认可的合法签名,没有有效签名的IPA包,系统会直接提示无法验证或者无法安装,这是iOS的沙盒安全机制决定的。 而苹果的签名证书,是苹果发给注册开发者的身份凭证,不同类型的开发者账号能生成不同类型的证书:个人开发者账号99美元一年,最多绑定100台设备的UDID,企业开发者账号299美元一年,不需要绑定UDID,可以给任意设备安装应用,而苹果ios签名共享证书,本质就是服务商把企业开发者账号生成的签名证书拆分给多个用户多个应用共同使用,摊低了单个用户的使用成本,毕竟一个企业账号两千多人民币一年,单个用户用一年根本用不完权限,共享出来大家一起用,价格就能压得很低,我们做H5封装出来的IPA包,大多是没法走官方上架App Store的,不管是企业内部办公应用,还是中小商家的本地生活应用,很多都不符合App Store的审核规则,官方上架要么被拒,要么周期太长成本太高,IPA签名就成了最好的选择,这也是共享证书这么多年一直受欢迎的核心原因。
接下来聊聊现在行业里成熟的证书池机制,这也是共享证书现在稳定性大幅提升的核心。 我最早18年刚接触的时候,很多小服务商就是囤一两本证书,一个证书签几百上千个应用,完全不做分流,苹果的风控机制很容易检测到这种异常的大证书,用不了半个月就会被吊销,掉签到让人崩溃,我那时候找过一个个人贩子,50块钱一个月签了一个应用,不到一周就掉了,再找他人都没了,钱也打了水漂。 而现在正规的服务商做共享证书,都会搭建自己的证书池,说白了就是同时储备几十上百本不同主体、不同账号的共享证书,每本证书严格控制签名的应用数量,一般来说,正规服务商都会把每本共享证书的应用数量控制在30个以内,不会超载,而且会把不同类型的应用分开,违规风险高的应用单独放证书,不会牵连正常的合规应用,这样一来,苹果的风控系统很难检测到异常,掉签的概率就降了非常多。 我现在长期合作的那家服务商,他们的证书池有超过120本有效共享证书,每个月都会淘汰掉有风险的旧证书,补充新申请的证书,我三个长期跑的应用放在那里,一年也就掉一次两次,频率已经非常低了。
再说说大家常听到的UDID绑定,UDID就是iOS设备的唯一识别码,苹果的规则里,个人开发者开发的测试应用,必须把设备的UDID添加到开发者账号的设备列表里,才能安装签名应用,这就是UDID绑定的来源。 不同的签名类型对UDID绑定的要求不一样,超级签名本质就是用个人开发者账号的证书做签名,所以每一个要安装应用的设备都必须绑定UDID,一个个人账号最多绑100台,所以超级签名都是按设备数量收费的。 而我们说的苹果ios签名共享证书,大多是基于企业开发者账号的企业签名,企业开发者账号本身就不需要UDID绑定,任意设备都可以安装,所以用户安装的时候只需要点一下链接,信任开发者证书就能用,完全不需要提前获取UDID做绑定,对普通用户来说友好太多了。 我之前给一家公司做内部员工的考勤应用,一开始客户图稳定选了超级签名,150个员工算下来花了将近四百块,结果有五六个年纪大的老员工不会获取UDID,折腾了整整一天才全部装好,后来我给换成了共享证书企业签名,直接发一个企业安装链接,员工点一下就能装,十分钟就全部弄完了,成本一年才八百多,平均下来每个月不到一百,比超级签名划算太多。 当然我也遇到过UDID绑定带来的问题,之前帮客户做测试版应用,偶尔用超级签名,有一次一个客户新增了20台设备,结果服务商的一批个人账号被苹果封了,原来绑定的设备全部掉签,所有应用都打不开,最后只能全部重新绑定重签,折腾了整整两天才恢复,也耽误了客户的测试进度,从那之后我就很少推荐客户用超级签名了,除非是设备数量特别少的小项目。
说到重签,我自己玩签名这么久,偶尔也会自己动手做重签,其实整个重签流程说复杂也不复杂,我给大家理一遍正常的IPA重签流程:第一步,拿到已经开发或者封装好的未签名IPA包,比如我们做H5封装之后,得到的就是一个未签名的原生IPA包;第二步,拿到对应共享证书的描述文件和证书文件,用签名工具移除IPA包原来的错误签名或者测试签名;第三步,用共享证书给IPA包内的所有二进制文件、组件重新签名,修改plist配置信息,然后重新打包生成签名后的IPA;第四步,如果是企业共享证书签名,就把上传到分发平台生成安装链接,用户就能直接下载安装了,如果是需要UDID绑定的超级签名,就要先获取用户设备的UDID,添加到账号之后再针对单个设备重签,流程会繁琐很多。 我自己测试应用的时候偶尔会自己重签,但是自己个人拿不到稳定的共享证书,也没有证书池做备份,所以经常出问题,要么是描述文件过期,要么是证书被封,所以正式给客户交付的应用,我都是找正规服务商做签名,专业的团队有成熟的工具和证书储备,出了问题也能及时解决,比自己折腾省心太多。
接下来聊聊大家最关心的,超级签名和企业共享证书签名的真实稳定性对比,还有不同渠道的真实价格,顺便也说下大家常听到的官方上架、TF签名的情况。 首先,官方上架肯定是稳定性最高的,上架之后只要不违规被下架,就能一直留在App Store,用户直接下载就能用,体验最好,但是官方上架的审核规则非常严格,很多应用根本过不了审,比如企业内部应用、测试版应用、一些行业特定的应用,还有很多中小商家的H5封装应用,大多不符合App Store的上架要求,就算找代理做上架,一次审核几千块,还不一定能过,成本太高,所以大多还是选择签名。 然后是TF签名,也就是TestFlight测试签名,这是苹果官方的测试渠道,稳定性确实不错,一般来说,TF签名一个应用的价格在200到500元一次,有效期三个月,最多支持10000个设备,但是TF也需要过审核,而且用户下载必须跳转TestFlight,很多普通用户嫌麻烦不愿意安装,推广起来阻力很大,所以也不是所有场景都适合。
然后说超级签名和企业共享证书签名,先说价格:现在市面上正规渠道的共享证书企业签名,月卡一般是100到300元,季卡200到600元,包年一般是800到1500元,这个价格是很透明的,那种低于100元一个月的共享证书,基本都是小服务商一本证书签几百个应用,千万不要碰,用不了几天就掉,还找不到人补签。 而超级签名是按设备收费,现在市场价一般是1元到3元一个设备,1000个设备就是1000到3000元,如果用户增量大,一年下来成本远高于共享企业签名。 然后说稳定性,我自己用了这么多年的真实感受:早年共享证书没有证书池的时候,确实稳定性不如超级签名,但是现在正规服务商做证书池分流之后,共享证书的稳定性已经超过超级签名了。 超级签名现在最大的问题是,苹果对个人开发者账号的管控越来越严,批量注册的个人账号很容易被苹果检测封号,只要一个账号被封,这个账号绑定的所有设备的应用都会掉签,牵一发而动全身,我之前就遇到过服务商一次性被封了二十多个个人账号,几十个客户的应用全部掉签,补都补不及,而共享企业证书,就算一本证书被封,服务商证书池里还有几十本备用证书,当天就能给你补签好,换个安装链接就能用,正规服务商都是免费补签,不会额外收费。 我自己三个长期运行的应用,用共享证书快两年了,一共只掉过两次,一次是应用被用户投诉牵连证书,一次是苹果更新风控规则淘汰了一批旧证书,都是当天就补签完成,没有耽误超过半天的使用,稳定性真的超出我的预期。 当然,我也不说共享证书完全不会出问题,毕竟都是在苹果的规则下运作,偶尔遇到掉签是正常的,只要服务商能及时补签,就不会影响正常使用,这么多年用下来,百分之八十以上的时间都是稳定运行的,体验真的很好。
很多刚接触签名的朋友总是会问,共享证书到底靠谱吗,我都会说,只要找正规搭建证书池的服务商,靠谱程度比很多吹得天花乱坠的小服务商超级签名高多了,对于没法官方上架的IPA应用,不管是H5封装的本地应用,还是企业内部应用,还是测试版应用,共享证书都是性价比最高,稳定性也足够好的选择。 我做了六年开发,见过太多签名行业的起起落落,从最早的个人签名到超级签名,再到现在成熟的共享证书证书池机制,技术一直在迭代,现在的苹果ios签名共享证书早就不是早年那个动不动就掉签的样子了,它给我们这些中小开发者和中小商家提供了一个低成本快速上线苹果应用的渠道,只要选对服务商,就能获得稳定流畅的使用体验。