我做iOS端小工具内测快两年,前半年几乎全在和掉签斗智斗勇,那段日子现在想起来都头疼,那时候什么都不懂,听人说什么便宜就用什么,结果天天收到测试用户的消息说应用打不开,我刚发完安装包不到一周,所有人的图标都灰了,提示无法验证应用,折腾到我差点放弃整个项目,直到后来踩遍各种坑找到现在的稳定方案,才总算安下心来好好做开发。

其实我也是后来慢慢摸透了iOS签名的原理,才知道为什么有的签名稳有的天天掉,说白了所有签名的本质,都是借用苹果开发者证书的权限,给你的应用做授权,让iOS系统认可这个应用可以在非官方渠道安装,不同的证书有不同的规则限制,违反了苹果的规则,证书就会被吊销,应用自然就掉签打不开了,搞懂这个原理之后,再选签名方案就不会像之前那样瞎选了。我先后用过超级签名、企业签名、TF签名、H5封装,也研究过官方上架,每一种都有实打实的使用体验,今天就把这些经历都讲出来,给和我一样做内测的朋友做个参考。

最早我选的是企业签名,那时候刚起步没预算,听人说共享企业签名几十块钱能用一个月,我立刻就去某宝找了个小商家做,拿到安装包发出去的时候还挺开心,觉得省钱又省事,结果第三天就开始有人说打不开了,找商家补签,商家倒是爽快,当天就补好了,结果一周之后又掉了,那段时间平均一周掉两三次,我每周都要重新发一次安装包,让所有用户卸载重装,测试用户怨声载道,不少核心用户嫌麻烦直接走了,我自己也天天盯着手机,就怕收到打不开的反馈,后来才知道,共享企业签名就是几十上百个应用共用一张企业证书,苹果本来给企业证书的定位是企业内部分发自用,一旦证书上面挂的应用多了,或者有哪个应用违规被举报,整个证书都会被苹果吊销,所以一掉就是全掉,掉签是必然的。后来我也咬咬牙用过一段时间独享企业签名,一个月大几百块,确实比共享稳定点,但还是会偶尔掉签,一掉还是所有用户都用不了,补签也要等商家处理,对于还在烧钱的初创项目来说,每个月固定大几百的支出,还不能保证稳定,压力真的不小。

后来听圈里朋友说超级签名稳定,我就试着转了超级签名,一开始找的小个人服务商,那时候我才几十上百个用户,用着还不错,稳了快一个月都没掉,结果用户慢慢涨到两百多之后,要加新的个人证书,那个服务商不会做批量处理,每次加设备都要我把UDID一个个发给他,他一个个手动签,我输一百多个UDID输了大半天,还输错了好几个,结果好几个用户装不上,又重新弄,折腾了一整天,那时候我才知道超级签名批量重签有多重要,尤其是用户增长快的时候,批量处理真的能省太多事。后来我换了现在的专业服务商,支持超级签名批量重签,我只要把所有设备的UDID导出成表格,直接上传到后台,不到十分钟就能全部签好,不管新增多少设备都能一次性处理完,不用手动一个个弄,也不会出错,用了快一年,真的太省心了。

其实超级签名的原理我后来也搞懂了,它用的是苹果个人开发者账号的Ad Hoc测试权限,每个个人账号最多可以绑定100台测试设备,本来就是苹果给开发者做测试用的,完全符合苹果的规则,所以很少会被吊销证书,就算其中一个证书出问题,也只会影响这个证书下面的一百台设备,不会像企业签名那样一掉全掉,影响所有用户,稳定性自然就高了很多。我用这一年多,掉签的次数一只手都数得过来,每次掉了之后,只要把受影响的设备批量导出,上传到新的证书批量重签,用户重新下载一次就好,十几分钟就能处理完,根本不会影响整体的使用,大部分用户甚至都感觉不到出过问题。

除了超级签名和企业签名,我也试过TF签名,也就是TestFlight签名,这个是苹果官方的内测平台,原理就是把应用上传到苹果官方的TestFlight,用户通过TestFlight下载安装,确实是官方认可的,基本不会掉签,稳定性也很好,我现在也会给核心测试用户留一个TF的安装通道,但是TF也有不方便的地方,首先就是用户安装步骤太麻烦,要先下载TestFlight客户端,再从里面找到我的应用安装,很多普通测试用户嫌麻烦,不愿意弄,其次就是TF有下载次数限制,一个链接最多只能下载一万次,用户多了之后就要重新传重新审,而且审核比超级签名严很多,我之前应用里加了一个测试版的互动功能,就被卡了审核,改了三次才过,耽误了快两周的测试进度,所以对于大部分普通测试用户来说,TF还是不如超级签名方便。

我还踩过H5封装的坑,那时候掉签掉怕了,听人说H5封装不用签名,直接就能打开,我就花几十块做了一个,结果用了不到三天就放弃了,说白了H5封装就是把网页套了一个APP的壳,根本不是原生应用,很多原生功能调用不了,推送收不到,打开速度慢,还经常被浏览器或者微信拦截,用户点进来都打不开,还要一步步点信任,体验差到极点,安全性也没保障,很容易被系统误报成恶意应用,也就适合那种纯网页的工具,想要正经做原生APP内测的,根本用不了。

至于官方上架,我也研究过,上架App Store肯定是最稳定的,用户直接从应用商店下载,根本不会有掉签的问题,但是官方上架的审核太严了,我这还是内测版本,很多功能都没完善,还有一些测试功能不符合上架要求,就算折腾着去提交,十有八九会被拒,而且还要交每年的开发者年费,对于还没上线盈利的内测项目来说,完全没必要,我打算等所有功能都测试完善,准备正式推的时候再去上架,现在内测阶段用稳定的签名就够了。

说到价格和渠道,我也踩过不少不同渠道的坑,总结下来其实很清晰,共享企业签名最便宜,几十块钱一个月,但是基本没法用,掉签掉到你怀疑人生;独享企业签名一个月几百到上千不等,比共享稳定,但还是有掉签风险,成本也高;TF签名一般是几百块用半年,价格不算贵,就是限制多,安装麻烦;H5封装几十块就能做,便宜但是没用;超级签名一般是按设备收费,一个设备几块钱,算下来一千个设备也就几千块,用一年摊下来每个月也才几百,比独享企业签名便宜,稳定性却高很多,尤其是支持超级签名批量重签的渠道,不会额外收服务费,新增设备的时候批量处理,效率很高,我现在用的这个渠道价格很透明,用多少设备付多少钱,没有隐形消费,后台自己就能操作批量重签,哪怕半夜出问题,我自己十分钟就能处理好,不用等商家回复,真的太方便了。

说起重签补签的经历,我真的有一肚子话要说,最早用共享企业签名的时候,我平均每周都要补个两三次,商家说24小时包补,结果半夜掉签用户急着用,找商家根本没人回,我只能对着电脑干着急,急的几个晚上都睡不好,后来第一次用超级签名碰到手动加设备,一百多个UDID我一个个输,输完眼睛都花了,还错了好几个,折腾一整天才弄好,那时候我就想,如果能批量处理重签该有多好,换了现在的服务商之后,所有设备信息都存在后台,要重签直接选中导出,上传到新证书一键批量重签,不到十分钟就搞定,就算上百个设备也不用手动操作,省了不知道多少时间,我也试过自己买个人开发者证书自己签,结果弄了两天没弄明白,还差点把账号弄封了,专业的事还是要交给专业的人做,有成熟的批量重签流程,自己只要管好开发就行,真的省心太多。

现在我用这个方案已经快一年了,绝大多数时间都是稳定运行,我不用天天盯着掉签,不用天天给用户发新的安装包,省出来的时间全都可以用来做开发和优化,测试用户的留存率也比之前高了很多,大家用着稳定,也愿意多提反馈,对项目的帮助真的很大,我也把这个方案推荐给了好几个一起做开发的朋友,大家之前都被掉签折磨过,换了之后都说稳定省心,其实做iOS内测,签名真的是基础中的基础,找不对方案,再多的精力都会浪费在处理掉签补签上,根本没法好好推进项目,我踩了这么多坑,最后留下来的就是支持批量重签的超级签名,搭配TF做备用,不管多少用户都能稳定应对,体验好成本也可控,真的是我试过所有方案里最适合内测项目的选择。