我最早做自己的小工具应用的时候,完全不懂苹果签名的规则,只知道不上架App Store也能通过签名让用户安装,踩了无数坑之后才找到能用很久的稳定方案,一路走过来的经历说出来能让很多刚入门的朋友少走不少弯路。最开始我不懂苹果签名证书防篡改机制到底是什么,只知道掉签就是应用打不开,后来慢慢摸透才明白,这套机制本身是苹果为了保障用户安全设置的,每一个经过签名的应用,都会把应用的唯一标识和证书信息绑定,系统安装和启动的时候都会验证信息是否匹配,如果匹配不上,就会判定应用被篡改或者证书失效,直接禁止启动,也就是大家常说的掉签。所以不管哪一种签名方式,本质都是拿到苹果认可的证书授权,让系统通过验证,不同的授权方式,自然就有不一样的稳定性。

最开始我因为应用暂时达不到官方上架的要求,只能先找第三方签名,最先接触的就是企业签名。那时候我刚起步,没什么预算,就在各种开发者交流群里找了商家,选了最便宜的类型,装上之后确实能用,我那时候还开心觉得捡了便宜,没想到没过多长时间就第一次掉签,联系商家说证书被封了,给我补了新的签名,我重新做好下载链接发给所有用户,折腾了大半天,本以为这事就过去了,结果没过多久又掉,那段时间我几乎天天都在等补签,用户只要一找过来说打不开,我就要赶紧联系商家,很多用户嫌重新下载麻烦,直接就把应用删掉了,我那时候才知道,我选的这种是共享企业签名,就是很多个应用共用一张企业证书,苹果检测到证书滥用就会直接封掉,一掉就是所有应用全掉,稳定性根本没法保证。后来我加钱换了独立企业签名,说是一张证书只签我自己的应用,稳定性确实好了不少,掉签的频率降了很多,但是还是会偶尔掉,有时候是被同行举报,有时候是苹果清理证书,赶上节假日商家不在线,掉签了只能等着,我曾经就碰到过春节放假掉签,整整好几天没法补上,好多老用户都来问怎么回事,我只能一个个赔礼道歉,甚至给人发补偿才留住人。那段时间补签重签真的补到我麻木,每次掉签都要把安装包重新发给商家,签好之后再换链接,更新下载页,通知所有用户,折腾下来整个人都累瘫,那时候我就下定决心一定要找更稳定的方式。

之后听群里的朋友说超级签名稳定性不错,我就赶紧换了超级签名。超级签名用的是个人开发者账号的测试权限,每个设备绑定UDID,只要账号不被封就不会掉签,我刚用的时候确实觉得比企业签名省心,很长一段时间都没出过问题,我那时候以为终于找到合适的方案了,结果没想到没过多久,服务商手里的一批账号被苹果统一封禁,我所有已经安装的用户全部都打不开应用了,我又连夜找新的服务商,重新签好包,一个个通知老用户重新下载,忙了整整两天才搞定,那段时间真的差点就放弃做这个应用了。而且超级签名是按下载收费,用户换设备或者抹除手机数据,重新下载就要再扣一次费,用的时间长了,用户多起来之后,成本其实比很多包年的签名还要高,后来服务商还以成本上涨为由提价,我要是接受不了就不给我继续签,真的挺被动的。

那段时间我还试过H5封装,就是把我做好的网页套一个app的壳,本来以为能避开签名的坑,结果发现封装完还是需要签名才能安装,该掉签还是掉签,而且体验特别差,很多原生功能调用不了,打开速度慢,用户反馈一堆问题,用了没多长时间我就放弃了,H5封装也就适合那种只做展示的应用,稍微有点功能需求的都满足不了,根本解决不了签名的根本问题。我也一直没放弃尝试官方上架,毕竟官方上架是苹果自己的渠道,只要能上去,永远不会掉签,用户下载也方便,不会有任何信任问题,但是我的应用本身属于小工具类,有一些功能不符合苹果的审核规则,提交了好几次都被拒了,找了代上架也没能通过,只能暂时先放在第三方签名渠道。

后来我才接触到TF签名,也就是通过TestFlight渠道做的签名,本质是把应用放到苹果官方的测试渠道,让用户通过官方渠道下载,本身就是苹果认可的授权方式,所以完全符合苹果签名证书防篡改机制的要求,只要应用不违规,根本不会被封,也不会掉签。我最开始找服务商的时候,因为之前踩了太多坑,所以先选了短期试用,用了几个月发现真的一次都没掉过签,才放心包了年,用上之后我才知道什么叫稳定,这么长时间用下来,我从来没再经历过频繁掉签需要补签重签的折腾,只有一次我更新了大版本的功能,重新提交审核,苹果一天就审核通过了,用户打开应用自动就能更新,根本不需要我一个个通知换链接,太省心了。

我用过这么多签名方式,也对比过不同渠道不同方式的价格,其实便宜的不一定真便宜,稳定的也不一定就贵到离谱。小渠道比如零散的社交群组、二手交易平台,价格虽然压得很低,但是商家跑路、掉签不补的情况太多了,踩坑的概率特别高,大一点的正规服务商,有正规官网和售后,价格虽然高一点,但是出了问题能找到人,补签也及时,靠谱很多。不同签名方式的性价比也差很多,共享企业签名价格最低,但是稳定性最差,只适合几个好友之间内部测试用,正式给用户用绝对不能选;独立企业签名价格比共享高一些,稳定性也比共享好,但是还是会不定期掉签,还是需要经常补签;超级签名新用户少的时候成本不高,用户多了之后成本涨得很快,而且还有账号被封全掉的风险;TF签名一般都是包年收费,平均下来每个月的成本其实很低,比用户多起来的超级签名还要便宜,稳定性却是所有第三方签名里最好的;H5封装本身封装费用不高,但是还是需要签名,体验又差,属于不得已才会选的方式;官方上架本身不需要签名费用,但是审核门槛很高,大部分中小开发者的应用都很难通过,只要能通过就是最稳定的选择。

我之前那段频繁补签重签的日子,现在想起来都觉得累,那时候每天早上起来第一件事就是打开自己的应用看看能不能打开,就怕又掉签,半夜接到用户说打不开的消息,就要爬起来联系商家,整个人都绷着,根本休息不好,自从用上稳定的TF签名之后,我再也不用过这种日子了,不用天天盯着掉签,不用忙着给用户发新链接,不用因为掉签流失用户,用户体验好了,留存率自然上去了,我的应用也慢慢做起来了。其实苹果这套签名证书防篡改机制本身没有问题,就是为了阻止恶意篡改的应用伤害用户,我们只要找对符合规则的授权方式,就能稳定使用,不用天天担心掉签的问题,我自己踩了这么多坑,才找到最适合我的稳定方案,也希望更多和我一样暂时没法上架官方的开发者,能少踩点坑,早点找到适合自己的稳定方式,不用再把精力浪费在没完没了的补签重签上,能把更多心思放在优化应用和服务用户上,毕竟对做应用的人来说,能安心做产品比什么都重要。