我最早做一款给小众圈子用的工具类应用,一开始满心想着走官方上架,毕竟所有人都知道官方上架App Store是最稳定的,只要过审,基本不会出什么问题,用户安装也方便,直接搜就能下。可架不住我的应用本身是满足小部分用户的个性化需求,有些功能触碰了苹果的审核规则,我前前后后退改了四次,每次都被打回来,不是说功能涉及违规,就是说内容不符合规范,折腾了快两个月,最后还是没能过审,没办法只能转向第三方苹果签名,谁知道这一进去就踩了无数的坑,那段时间掉签掉到我怀疑人生,天天盯着用户群,就怕有人说又打不开了。
最开始我听人说企业签名便宜,安装也不用搞那么多麻烦步骤,就找了网上一个做共享企业签的商家,一个月才六十块钱,包补签,我想着这么便宜先试试,一开始安装完确实能用,一百多不到两百个用户用着都没问题,我那时候还觉得原来签名这么简单,结果不到一周,一大早打开用户群就炸了,所有人都说应用打不开,点进去就是提示签名失效,我赶紧去找商家补签,商家说共享签就是这样,证书被封了,要等重新做,我等了整整四个小时才补上,让所有用户删掉旧包重新下载,折腾了大半天,才把所有人都安抚好,结果没到三天,又掉了,我这才知道,共享企业签就是把几十个甚至上百个不同的APP塞进同一个企业证书里,只要有一个APP违规被苹果查到,整个证书都会被封,所有APP一起掉签,补签其实就是换个新证书重新签,根本没法保证稳定,商家说的无限补签,其实就是让你天天等着掉了补补了掉,那段时间我最多一个星期补了五次重签,每次补签都要挨个通知用户重新安装,好多用户嫌麻烦,直接就卸载不用了,我也想过换独立企业签,可问了价格,一个月要两千八,对于我这个不赚钱的小项目来说,根本承担不起,这个价格一年下来三万多,我赚的钱还不够签名费,只能另想办法。
后来听圈内人说超级签名比企业签稳,我就转去做超级签名,这时候我才慢慢搞懂苹果签名的核心原理,其实苹果签名本质就是一条信任链,从苹果官方的根证书往下,只要用苹果信任的证书给应用签名,系统就会认可这个应用是合法的,允许安装运行,我们常说的P12文件,就是把开发者后台的证书和私钥导出后的加密文件,不管什么类型的签名,本质都是用对应类型的P12证书给应用做背书,不同的签名方式只是用了不同规则的证书,走了苹果不同的开放渠道而已,超级签名用的就是个人或者公司开发者账号的开发类P12证书,原理是利用苹果给开发测试留出的规则,把用户的设备UDID加到开发者账号的设备列表里,再用证书签名,让系统认可这个应用可以安装,本身是苹果允许的测试方式,所以本来就比共享企业签稳定。
我那时候找第三方做超级签名,是按下载量收费,一个下载三块钱,一开始我两百个用户,第一次签名就花了六百多,那时候觉得只要稳定,花点钱也值,一开始用确实半个多月都没掉,我那时候还以为终于找到靠谱的方案了,结果后来那个服务商的开发证书被苹果封了,所有签过的应用全掉了,我又得重新找商家重签,又花了一遍钱,还流失了快三分之一的用户,这时候我才知道,第三方超级签名很多都是用共享的开发证书,好多商家共用一个开发账号的P12,下载量刷多了很容易被苹果检测到,封号掉签是常事,而且就算不封号,用户卸载了重新安装还要再扣一次下载费,算下来一年下来几千块都打不住,成本也不低。那时候我也试过TF签名,很多人说TF签名是苹果官方测试签名,基本不会掉,我找商家做了TF签名,确实两个多月都没出问题,体验也还可以,但是TF签名有一万个下载名额的限制,而且每次更新版本都要重新提交审核,等一到两天才能过,用户还要先装一个TestFlight才能用我的应用,好多用户嫌麻烦,不愿意多装一个APP,而且每三个月还要重新验证一次,后续用户多了名额也不够用,对于想要慢慢增长用户的我来说,还是不合适。后来我还试过H5封装,就是把网页打包成APP套个壳签名,几十块钱就能做,但是功能砍了大半,我需要的很多原生功能都用不了,打开速度慢,推送也经常收不到,用户用了两天就都反馈不好用,这条路也走不通。
那段时间我踩遍了所有签名的坑,重签补签不下二十次,花了好几千冤枉钱,还是没能稳定下来,天天提心吊胆,就怕哪天起来又看到用户说掉签了,后来认识一个做技术的朋友,他听了我的遭遇,给我分享了他自己一直在用的方案,就是自己准备多个P12证书,搭一个P12签名证书自动更新脚本,自己做超级签名服务,他说掉签不可怕,可怕的是掉签之后不能自动处理,还要用户手动重新安装,只要能做到证书出问题自动换,用户根本感知不到,那不就是稳定吗?
他帮我搭好了脚本,教我把自己申请的个人开发者账号的P12证书导出,导入到脚本里,我前后申请了三个个人开发者账号,一个账号一年才68块钱,三个加起来也才两百多块钱,脚本设置好自动监测证书有效性,一旦监测到当前在用的证书失效或者被封,就会自动切换备用的P12证书,重新给所有已安装的应用更新签名信任,整个过程几分钟就能完成,完全不用人工干预,用户根本不知道出问题了,还是正常打开使用,不用重新下载,也不用做任何操作。
我用这个方案到现在快一年了,真的从来没有因为签名的问题麻烦过,也没有手动补签过一次,偶尔苹果政策更新,撤回了一个开发证书,脚本自动就切了备用证书,我也是后来看脚本的通知邮件才知道,用户那边根本没有任何影响,对比我之前找第三方签名的经历,真的是天差地别。我之前算过一笔账,找第三方共享企业签,一个月六十,一年七百二,但是掉签掉的用户都没了,相当于白花钱;独立企业签一个月两千八,一年三万多,小项目根本扛不住;第三方超级签名按下载算,我五百个用户,就算每个用户只下载一次,也要一千五,要是有卸载重装,一年下来几千块;TF签名一个季度三百,一年一千二,还有名额限制;H5封装便宜,但根本用不了;官方上架免费,过不了审一切白搭。我现在自己弄,三个开发者账号一年两百多,服务器一年四百多,脚本本身是免费的,一年所有费用加起来不到七百,比之前找第三方便宜太多,还稳定的多,所有的证书和权限都握在自己手里,也不用担心服务商跑路,之前我就遇到过一个服务商做了半年跑路,我所有用户全掉签,找都找不到人,差点把项目搞黄,现在完全不用担心这种事。
这段时间用下来,我五百多个用户,只有不到三个用户说过打不开,最后查下来都是他们自己清理手机的时候删了应用数据,和签名一点关系都没有,大部分用户用了快一年,从来没有遇到过签名失效的问题,体验和官方上架的应用差不了多少,更新版本的时候我打包好上传,脚本自动签好,用户直接增量更新,不用重新下载,老用户都夸这个应用做的稳定,不少人还介绍新用户来,完全不会因为签名的问题流失用户。
其实用到现在我也总结了,各种签名方式都有适合的场景,官方上架确实是最稳定的,只要能过审,优先选官方上架,这点没错,但要是真的过不了审,也不用死磕,找对适合自己的方案一样能稳定用;企业签适合不差钱的大项目,做独立企业签其实也稳,就是成本高,小项目没必要碰共享企业签,那就是个坑;超级签名只要是自己掌握证书,配上P12签名证书自动更新脚本,真的是中小项目的福音,稳定成本还低;TF签名适合更新不频繁,用户量不大的项目,确实稳,就是有名额和更新的限制;H5封装只适合做那种只有简单展示功能的应用,要用到原生功能的真的不建议。
我之前踩了那么多坑,花了那么多冤枉钱,就是因为一开始不懂,只想着找便宜的,没想到最后反而花了更多钱,还丢了好多用户,现在有了稳定的方案,我不用天天盯着签名掉没掉,能把更多的精力放在更新功能优化产品上,整个人都轻松了很多,身边有做小项目过不了官方审核的朋友,我都会给他们推荐这个方案,自己弄证书,搭个P12签名证书自动更新脚本,真的比找第三方省心太多,也稳定太多,用过之后就再也不想回去找第三方签名了。