我最早做一款面向同好群体的工具类应用,最开始就想着能放到公开渠道给大家用,最先考虑的就是官方上架,奈何那时候我只是个人开发者,既没有对应的资质,应用本身也只是服务小圈子的内容,不符合应用商店的上架规则,折腾了两次都没通过审核,只能转而去找第三方签名渠道,这一踩坑就是小半年,才终于找到适合自己的稳定方案,那段天天跟掉签斗智斗勇的日子,现在想起来都觉得头疼。

最开始我啥都不懂,只听圈内人说企业签名好用,又想着苹果企业签名证书申请本身门槛就很高,个人根本拿不到正规的企业开发资质,只能找第三方服务商做,于是就随便搜了渠道找了报价偏低的服务商合作,那时候只想着能省一点是一点,哪知道这就是掉签噩梦的开始。最开始拿到安装包的时候,一切都正常,大家安装也都没问题,我还沾沾自喜觉得找到了划算的渠道,结果没过多长时间,一大早起来就刷到好多用户的私信,说应用打不开了,点图标就弹出来不信任的提示,我那时候才知道这就是掉签了,赶紧去找服务商补签,服务商倒是爽快,说廉价签名本来就是这样,掉了免费补,当天就给我出了新的安装包,我赶紧发去通知让所有用户重新下载,折腾了大半天,才总算恢复正常。我那时候还以为只是偶然情况,哪知道之后掉签变成了家常便饭,隔三差五就要来一次,有时候一周能掉个好几次,半夜都有用户发消息说用不了,我只能爬起来联系服务商,碰上服务商不在线的时候,整整大半天都没法用,好多嫌麻烦的用户直接就不用了,对我来说损失真的挺大的。那段时间我光是重签补签就折腾了不知道多少次,每次掉签都要重新发安装包,让用户重新安装,一来二去,用户的耐心都被磨没了,我自己也天天提心吊胆,手机从来不敢开静音,就怕错过用户说掉签的消息。

后来我才慢慢搞懂苹果签名的底层原理,其实苹果的签名本质就是给应用颁发一张苹果认可的信任凭证,只有苹果系统信任这个凭证,手机才能正常打开应用,而这个凭证就是从苹果颁发的开发者证书来的,不同类型的开发者证书对应不同的签名方式,掉签其实就是苹果吊销了对应的证书,所有用这个证书签名的应用都会变成不受信任的状态,自然就打不开了。那时候我才知道,我最早用的那种廉价企业签名,其实就是共享企业签名,一整个企业证书分给成百上千个不同的应用签名,苹果的检测机制很容易就能发现这种违规使用证书的情况,一旦检测到就会直接吊销证书,掉签当然也就成了家常便饭。

搞懂原理之后,我开始换不同的签名方式试错,最先试的就是超级签名,听人说超级签名的稳定性比普通共享企业签名好很多,我就赶紧找渠道换了超级签名。超级签名用的是个人开发者账号的调试权限,通过绑定设备的UDID来实现安装,刚换上的时候确实挺舒服,很长一段时间都没掉过签,用户那边也没再反馈打不开的问题,我那时候刚松了一口气,就发现了超级签名的问题,它是按安装次数收费的,每有一个新用户下载就要收一次费,用户量慢慢涨起来之后,每个月的签名成本就变得很高,而且超级签名也不是完全不会掉签,如果服务商用来签名的个人账号被苹果检测到违规使用,一样会被封号,所有已经安装的应用也都会打不开,我就碰到过一次,服务商的一批账号被苹果封了,我这边大量用户直接用不了,又得重新签一遍,折腾了好久才恢复,而且用户量越来越大之后,每个月的签名成本实在扛不住,我只能继续找更合适的方案。

之后我又试了H5封装,就是把移动端网页直接打包成应用再做签名,这种方式的成本很低,流程也快,当天就能做好,但是实际用起来体验真的太差了,不仅打开速度慢,很多原本应用里的原生功能都没法正常调用,而且封装出来的应用也很容易被检测封掉,掉签概率比稳定的企业签名高很多,用户反馈说还不如直接打开网页用,我用了没多久就放弃了这种方式。

再后来我听圈内的老开发者推荐,试了独立证书的企业签名,独立企业签名就是一个企业证书只给少量几个应用签名,不会像共享签名那样签一大堆,苹果检测到违规的概率低很多,稳定性自然也就上来了,价格比共享签名高一些,但是比超级签名量大之后的成本要低很多,我换了之后才发现,稳定的独立企业签名真的不一样,很少会掉签,就算偶尔因为政策或者检测的问题掉签,服务商也会很快给补签,几个小时就能恢复,不用像之前那样等大半天,而且我找的这家服务商比较靠谱,都会提前帮我盯着证书的状态,快要出问题的时候就提前帮我换好证书重新签好,根本不会影响用户使用。那段时间我也同时试了TF签名,也就是把应用放到苹果官方的TestFlight测试平台做内测,这种签名是苹果官方认可的内测方式,根本不会掉签,稳定性比独立企业签名还要高,我弄好之后,大半年都没出过任何问题,只是TF签名有一些限制,比如对应用内容审核比较严,更新版本也要等苹果审核,而且用户需要额外安装TestFlight才能下载使用,不少新用户觉得麻烦不愿意弄,小范围内测用着特别好,全量开放的话还是有点不便。

后来我的应用慢慢做起来,我也注册了属于自己的公司,准备齐全了资质,又重新申请了官方上架,折腾了几次之后终于通过了审核,放到了App Store里,官方上架的稳定性是所有方式里最好的,用户直接在应用商店就能搜索下载,不用做任何信任操作,也根本不会出现掉签的问题,用户的信任度也高很多,只是官方上架的审核规则比较严格,更新版本都要等审核,每年也要交对应的开发者服务费用,对于还没成型的小应用来说门槛有点高,但是对于正式对外的版本来说,真的是最稳定省心的选择。

这么长时间踩坑下来,我也对不同签名的价格和渠道有了不少实际的感受,渠道方面,我最早在公开的平台找的服务商,大多都是做共享签名的,报价很低,但是稳定性很差,掉签补签也很拖沓,后来在开发者圈内找的口碑好的服务商,就要靠谱很多,不管是补签的速度还是证书的稳定性都好太多。价格方面,不同签名的差距很大,共享企业签名的报价很低,适合刚起步没钱又只是临时用的场景,但是稳定性太差,不建议长期用;独立企业签名的报价属于中等,稳定性好,适合没有办法上架的正式版本用,成本可控,也省心;超级签名适合用户量很小的内测版本,按下载收费,用户量小的时候成本不高,量起来之后就不划算了;TF签名的报价中等,大多是按次或者按年收费,稳定性非常高,只要过了审核就不用操心,适合内测版本或者用户量不大的正式版本;H5封装的报价很低,但是体验差稳定性差,只适合临时过渡用;官方上架需要给苹果交年费,如果找第三方帮忙提交审核还要额外付服务费,门槛最高,但是稳定性和用户体验也是最好的。

我现在的使用方式也很固定,正式对外的版本走官方上架,新功能内测的版本用TF签名加稳定的独立企业签名分流,这么长时间下来,很少再碰到掉签的问题,之前天天提心吊胆等用户反馈掉签的日子早就过去了,现在我根本不用在签名这件事上花太多精力,每天只需要专心更新功能就好,用户也很少再反馈打不开应用的问题,整个体验都顺畅了很多。之前掉签最频繁的时候,我甚至想过干脆放弃这个应用,不做了,没想到换对了签名方案之后,一切都顺畅起来,应用也慢慢做了起来,有了越来越多的用户,其实对于我们这种小开发者来说,找对一个稳定的签名方案,真的能省太多心,少踩很多没必要的坑。

现在我也会给刚入行的新朋友推荐签名方案,都会告诉他们不要只看价格,稳定性才是最重要的,毕竟掉签一次损失的用户,比省下来的签名费多太多了,我自己踩过的坑,也希望其他人能不用再踩,毕竟大家做应用都是花了很多心血的,不能栽在签名这件事上,只要选对适合自己用户体量和应用性质的方案,就能安安稳稳长期使用,不用再被掉签打乱节奏,能专心把精力放在优化应用内容上,这才是做产品该有的状态。这么久走过来,从最开始的慌慌张张天天补签,到现在的安安稳稳不用操心,其中的落差只有真正经历过频繁掉签的人才能懂,也庆幸自己没有放弃,一路试下来找到了最适合自己的稳定组合方案,让做出来的应用能一直陪着喜欢它的用户走下去。