我自己做独立开发,捣鼓了一款小工具类的iOS应用,最开始没打算走官方渠道上架,一来审核要求严苛,有些功能不符合平台规则很难通过,二来只是小范围给圈内同好测试使用,没必要大费周章走正规上架流程,所以一开始就想着做签名分发,谁知道刚起步就踩了大半年的坑,天天跟掉签斗智斗勇,折腾到差点放弃,直到后来慢慢摸清楚了证书原理,找对了适合自己的方式,才真正过上稳定使用的日子,再也不用为了掉签连夜忙活。

最开始接触iOS签名,最先尝试的就是企业签名,那时候搜相关信息出来全是企业签名的推广,价格层次不齐,我那时候刚起步没多少预算,就选了看起来性价比很高的共享签名,结果刚把安装包发出去给测试的朋友,没几天就有人说打不开了,点进去就是未受信任的开发者提示,找服务商说掉签了,可以免费补签,补完重新发链接通知大家重新安装,没安生几天又掉了,这时候才知道,原来企业签名也分三六九等,便宜的都是共享证书,一个证书签很多款应用,苹果只要检测到违规,直接封掉整个证书,所有签过的应用全部掉签,掉签就是家常便饭。后来咬咬牙加钱换了独立证书的企业签名,确实稳定了一阵,结果没到月底还是掉了,服务商说是苹果定期扫号,没办法避免,只能再补,来回折腾了小半年,补签补了不下十次,每次掉签都要通知所有用户重新下载,不少测试的朋友嫌麻烦渐渐不用了,那段时间真的头大,怎么都找不到能稳定用的方式。

后来听圈内朋友说超级签名稳定性好很多,就转去尝试超级签名,那时候对证书完全不懂,只知道跟着别人推荐走,试了才慢慢摸清楚其中的门道,不管是什么签名方式,核心其实都是合法有效的证书,我们常说的P12证书,就是把开发者证书和对应的密钥打包加密出来的文件,苹果设备就是通过识别P12证书来确认这个应用是经过授权可以安装的,所有掉签的根源,基本都是P12证书被苹果吊销了,证书越干净,承载的应用越少,就越不容易被吊销,稳定性自然越高。我后来自己摸索学会了P12证书生成方法,整个过程其实并不复杂,先登录苹果开发者中心,在证书板块选择需要对应的证书类型,再在本地设备打开钥匙串工具,生成证书签名请求文件,上传到开发者后台之后就能生成对应的证书,下载到本地之后再导出成加密的P12格式,设置好密码就完成了,全程只要跟着步骤走,花不了多少时间,原来我之前用的便宜签名,用的都是来历不明的共享P12证书,本身就容易被苹果检测封禁,稳定性自然差。

回到超级签名的体验,最开始找的是服务商提供证书的超级签名,按下载量收费,百十来个测试用户算下来预算也能接受,刚装上去的时候确实稳定,用了很久都没出问题,那时候真的觉得终于找到对的方式了,结果后来用户慢慢多起来,突然就有几个用户说应用打不开了,原来服务商给的是共享的个人证书,多个客户拼一个证书的设备额度,人多了就会挤掉之前绑定的设备,自然就用不了了,而且长期用下来,每新增一个用户就要扣一次费用,用户换设备重新安装也要再次扣费,累计下来成本比企业签名还要高,实在扛不住。后来我用自己生成的P12证书,找只收手续费的超级签名服务商,顿时稳定了很多,设备额度都是自己的,自己控制,不会被别人挤掉,也不会随便掉签,只是个人开发者证书本身的设备额度有限,用户多了就不够用了,所以只适合小范围测试用。

接着我又尝试了TF签名,也就是苹果官方的TestFlight内测渠道,听说是目前最稳定的第三方签名方式,就找了服务商帮忙提交,整体审核比官方上架宽松很多,没几天就通过了,用户可以直接通过链接跳转到TestFlight下载安装,用了之后才发现,TF签名确实稳定,因为是苹果官方认可的内测渠道,只要应用不违规,基本不会掉签,就算到期了重新提交一次就可以继续用,我用了很久都没出什么问题,从来没有用户突然找我说打不开应用,唯一的小缺点就是用户需要先下载TestFlight应用才能安装我的应用,有些不太熟悉流程的用户会觉得麻烦,另外审核虽然比官方上架松,但还是会有被拒的可能,我当时改了两次才通过审核,不过只要过了之后就非常省心,稳定性比之前试过的企业签名和共享超级签名好太多。

我走投无路的时候还试过H5封装,就是把网页套个原生壳做成应用,价格很便宜,做起来也快,试了之后才发现,H5封装本质还是网页应用,打开速度慢,很多原生功能都没法正常调用,体验很差,根本满足不了我要的使用需求,而且封装好的包还是需要签名才能安装,等于绕了一圈还是要解决签名的问题,所以H5封装只适合那种轻量的网页应用,想要稳定的原生体验根本行不通。

后来我也试着调整应用内容,走官方上架的流程,改了很久,符合了平台的审核规则,最终也成功上架了,官方上架确实是最稳定的方式,用户直接从应用商店下载,不会有掉签的问题,也不需要额外折腾,只是审核真的很严苛,改来改去花了很多时间,而且每年需要交开发者年费,平台还有抽成,对于我这种只是小范围免费给同好使用的工具来说,成本有点高,而且一旦触碰规则就会被下架,所以我上架之后还是保留了签名的内测渠道,给需要测试新版本的用户使用。

走了这么多弯路,我也整理了不同签名方式的价格和渠道体验,便宜的共享企业签名预算很低,但掉签频率高到根本没法正常用,独立企业签名预算高一些,稳定性比共享签名好,但还是会有掉签风险,超级签名用服务商证书按下载收费,用户少的时候预算不高,用户多了成本就上去了,用自己P12证书的超级签名只需要付少量手续费,稳定性高,就是额度有限,TF签名一般一次收费,能用三个多月,到期后续签费用很低,平均下来每个月的预算不高,稳定性也很好,H5封装一次收费很低,但体验差满足不了需求,官方上架自己做只需要每年交年费,找代办的话看审核难度收费,符合要求的话最省心。

我之前的重签补签经历现在想起来都头疼,最开始做共享签名的时候,有次线下小聚会,大家现场扫码安装,结果装到一半就掉签了,当场就很尴尬,还有次深夜有人急用工具,找我说打不开,我爬起来找服务商补签,服务商半天不回,等到早上才补上,耽误了别人的事,还得跟人赔礼道歉,那段时间每天打开手机就怕看到有人说应用打不开,精神都高度紧张。直到我自己学会P12证书生成方法,用自己的证书做签名之后,一切都不一样了,我的证书只签我自己的一两款应用,根本不会因为别人的应用违规被牵连,自然很少被封,稳定性提升了不知道多少。

现在我主要用自己证书做的TF签名给核心用户用,小范围测试用自己P12证书的超级签名,偶尔需要定制版本就用自己证书的企业签名,用了很久都没出什么大问题,掉签的次数寥寥可数,还是因为自己不小心触碰了规则,改完之后重新签就好了,再也没有之前天天补签天天掉签的狼狈。很多刚做签名的朋友一开始都跟我一样,图便宜找共享证书,不知道证书才是稳定的核心,干净的自有P12证书才是稳定使用的基础,自己花一点时间学会P12证书生成方法,把证书握在自己手里,不管换哪个服务商,证书都可以带走,也不用担心服务商把你的证书共享给别人,成本没增加多少,稳定性却提升了一大截,真的省心太多,身边很多做独立开发做内测的朋友,我都推荐他们试试自己生成证书,再选适合自己的签名方式,大家用了之后都觉得比之前省心太多,不用再天天为掉签的事操心,能把更多精力放在产品优化上,而不是天天折腾签名补签的琐事。