去年和两个朋友凑钱做社区生鲜团长工具,一开始只做了H5,用了半年团长们都反映打开慢、收不到推送,就想做个独立App做内测,先给核心团长用,改完bug再考虑上架。
一开始预算紧,舍不得花几十万做原生开发,就找了个外包把现成的H5做了H5封装,前后花了八百多就出来了未签名的IPA包,那时候才知道,苹果手机装App,必须做IPA签名才行,不然根本装不上,我那时候连什么是苹果开发者账号都不知道,完全是零基础踩坑。
我梳理了大半年才摸顺完整的内测流程,其实说难也不难,第一步就是产品开发打包,得到未签名的IPA安装包,不管是原生还是H5封装,这一步都是基础。第二步就是准备开发者资质,选适合的签名类型。第三步就是收集测试用户的苹果设备UDID,加到证书描述文件里。第四步签名完成后发下载链接给用户。第五步就是用户安装后,如果是企业签名,需要去设备管理里手动信任开发者证书,不然打开就会提示未受信任。
刚起步的时候,我踩的第一个坑就是设备管理。很多团长都是中年创业者,对苹果手机不熟悉,安装完App打不开就找到我,说我的App做的有问题,我那时候每次都慌,以为又掉签了,赶紧登后台查,结果证书好好的,折腾半天才发现是用户找不到设备管理的入口。
iOS不同版本的设备管理入口还不一样,iOS13之前在通用里就能直接看到,iOS14之后藏到了VPN与设备管理里面,最新的iOS16甚至还要进去更深一层,我最早发的旧教程,用户跟着找半天都找不到,后来我专门做了分版本的图文教程,还剪了三个一分钟的短视频,分别对应三个常用的iOS版本,发在用户群里置顶,这才少了很多不必要的麻烦。
最早贪便宜,选了第三方的共享超级签名,一个月才一百块,比自己买苹果开发者账号划算多了。刚开始用的时候真的觉得超级签名太香了,不用用户去设备管理信任证书,扫完码下载完直接就能打开,按下载次数收费,我们十几个测试用户,根本花不了多少钱。
用了不到半个月,某天早上刚起床就看到用户群炸了,二十多个团长都说App打不开,点一下就闪退,我赶紧找签名服务商,对方说共享证书被苹果封了,要重新签得额外加钱补签。那次掉签我损失了三个意向很足的团长,他们觉得连App都用不稳,产品肯定也不行,直接退了合作。那时候我才下决心,自己研究签名,自己弄证书,一定要做稳定的。
自己申请苹果开发者账号其实不难,只要有一张支持美元支付的信用卡,个人账号一年只需要99美元,换算下来六百多人民币,真的不贵,比我之前一个季度补签名花的钱还少。申请下来之后,我就开始研究生成P12证书,那时候又踩了坑,生成证书的时候随便设了个密码,存完P12文件没多久,我换电脑整理文件,不小心把原文件删了,回收站也清了,只能跑到苹果开发者后台把旧证书 revoke 掉,重新生成新的P12,折腾了一整天才重新签好。
从那之后我就摸出了P12证书管理的经验,现在生成完P12,我会把证书文件、对应的描述文件、证书密码一起做双备份,一份存在本地加密硬盘,一份存到了自己的私人云盘,密码专门存在密码管理器里,从来没再丢过。另外还有最重要的一点,绝对不把自己的P12证书共享给别人,之前我心软,把证书借给一个做工具的朋友,结果他拿去签了个擦边的产品,没一周我的证书就被苹果封了,那次刚好赶上我们开团长招商会,三十多个新团长要装App,全部掉签,我半夜两点起来重新弄证书,折腾到四点才搞定,从那之后我再也不外借证书,也不用任何共享证书。
用过超级签名之后,我又试了TF签名,也就是TestFlight签名,用过之后才知道什么叫稳定省心。TF签名本身就是苹果官方推出的内测渠道,用自己的苹果开发者账号就能上传,本质就是苹果官方认可的测试,根本不会随便封你,我用TF签名大半年了,从来没掉过签。
TF签名唯一的小问题就是内测有效期是90天,到期之后需要重新上传一遍,再给用户发一次邀请,其实也不麻烦,我一般提前三天在群里提醒,十来分钟就能弄完,比天天处理掉签问题好太多。超级签名我现在还留着,主要用来应急,比如有时候临时加几个测试用户,TF上传需要等苹果审核,差不多要两三个小时,超级签名十几分钟就能弄好,应急很方便,长期内测我肯定还是选TF。
这大半年摸出来的防掉签技巧,其实核心就是围绕稳定来的,第一条就是能用自己的苹果开发者账号就绝对不用共享证书,共享证书一堆人用,只要有一个人签了违规App,苹果一查整个证书都没,你跟着倒霉,花几百块买个个人账号,一年也就六百多,真的不贵,买的是省心。
第二条,P12证书一定要自己管好,不要随便上传到不知名的第三方平台,用完就要及时删除,不要留在平台上,避免证书泄露被滥用,之前我把证书上传到一个小平台,后来平台跑路,证书被泄露,没多久就被封了,这个教训真的记一辈子。
第三条,不要短时间内批量添加UDID,不要一个证书签十几个不同的App,苹果的风控系统对这种操作监测很严,很容易触发封号掉签,我现在加测试设备都是一天加十几个,分几天加,一个证书最多只签两个包,一个测试版一个预发布版,从来没触发过风控。
第四条,长期内测优先选TF签名,官方渠道的稳定性是任何第三方签名都比不了的,只要你不做违规的内容,基本不会出问题,省下来的时间精力能用来改产品做运营,对初创团队来说太重要了。
第五条,定期清理证书里的UDID,把已经不做测试的设备删掉,个人苹果开发者账号总共只有100个设备名额,及时清退不用的设备,既能腾出名额给新用户,也能避免因为设备过多触发苹果的风控。
我们现在内测了快一年,改了七十多版bug,核心团长用得都很顺手,现在已经整理好材料准备提交AppStore上架了。其实很多初创团队都和我一样,一开始没钱没资源,不敢直接做原生开发直接上架,先做H5封装做内测,用IPA签名给核心用户测试,既能验证产品,也能攒用户,比直接砸钱上架稳妥多了。
我原来以为签名只是个小环节,掉签一次才知道,这个小环节能直接影响用户对你产品的信任,你产品功能再好,用户装了三天两头打不开,谁还愿意用?踩了这么多坑,最大的感受就是,做内测稳就是快,选对签名方式,管好自己的证书,几百块钱就能换大半年的稳定省心,不用天天盯着用户群处理掉签问题,不用半夜起来补签,能把所有精力放在产品上,这对初创团队来说,就是最大的帮助。
现在我身边很多做内测的朋友找我问经验,我都会和他们说,防掉签没有什么黑科技,就是不要贪便宜,用自己的开发者账号,选官方的渠道,管好自己的P12证书,自然就稳定,少踩很多坑,少很多不必要的麻烦。哪怕之后要上架AppStore,先通过内测攒够用户反馈,改好所有隐藏的bug,提审之后一次过的概率也高很多,不用来回被苹果打回修改,浪费几个月的时间。对我们这种小团队来说,时间就是本钱,稳定的签名帮我们省下的不止是补签的钱,更是宝贵的发展时间。