去年年初凑了三个朋友做本地餐饮拼团的小项目,算上我一共四个人,技术外包找了个大学生团队,花了不到十万做完了iOS和安卓端。安卓内测好弄,直接发安装包就能装,iOS可把我难坏了。那时候项目还没成型,功能不全,资质也刚凑齐软著,根本不敢碰AppStore上架,只能先做内测给种子用户和商家测试。最开始我连IPA签名是什么都不知道,踩了快两个月坑,才摸出一套稳定省心的路子,今天把这些经历写出来,给同样做内测的创业者做个参考。
最开始我查教程,说想做iOS内测,得先有苹果开发者账号,个人的99美元一年,企业的两千多一年。我当时想着先自己试试,花了六百多块买了个人开发者账号,自己折腾签名。那时候才知道,IPA签名核心就是P12证书和描述文件,我对着教程一步一步弄,花了一下午才生成出自己的P12文件。那时候不懂P12证书管理,生成完直接扔电脑桌面上,还随便发给帮我打包的技术看,现在想想真的后怕。
第一次内测,只有不到50个测试用户,我用个人开发者账号加设备,折腾了一下午把设备UDID都录进去,签完包发出去,用户下载完要去设置里的设备管理点信任才能用,折腾来折腾去,一半的用户不会弄,来找我一步步教,那几天光教用户找设备管理就花了我快十个小时。而且个人开发者账号最多只能加100台设备,没过半个月,我们种子用户凑到120多,就加不进去了,只能另想办法。
这时候朋友给我推荐了超级签名,说不用用户提供UDID,扫个码就能下载,自动签名。我当时赶紧找了个服务商开了超级签名,把我们的IPA包传上去,生成了下载二维码。刚用的时候真觉得太方便了,用户扫码就能下,下载完去设备管理信任一次就能用,不用我一个个录UDID,省了好多事。而且超级签名按下载量收费,一开始下载量少,花的钱也不多。我那时候还觉得,怎么不早知道超级签名,之前白折腾那么久。
没用半个月问题就来了。那天下午我正在和商家谈合作,连续十几个商家给我发微信说APP打不开了,点一下就弹提示说未信任。我赶紧回去找服务商,才知道服务商给我用的共享证书,同一个证书签了上百个应用,其中有个违规应用被苹果查到了,整个证书被封,所有签过的应用全掉签了。我那时候急得满头汗,赶紧让服务商重新签,折腾了四个多小时才弄好,重新发了下载链接让所有用户重新装,好多商家嫌麻烦直接说不用了,那次损失了快二十个合作商家,心疼坏了。
从那之后我就开始找更稳定的方式,后来才了解到TF签名,也就是把IPA包放到苹果官方的TestFlight平台做内测,用户从TestFlight下载使用。那时候刚接触TF,第一时间就听说了TF苹果签名下载次数限制,说一个构建版本最多只能有10000次下载,超过就不能下了。我当时算了算,我们那时候内测一共才不到三千个用户,一万次下载完全够用到内测结束,就决定试试。
弄TF签名其实也简单,我把打包好的IPA发给服务商,服务商帮我提交到TestFlight,审核一般几个小时就过了,然后发一个邀请链接,用户点进去跳转到TestFlight就能下载安装,全程不用我管UDID,也不用用户去设备管理那里信任,因为是苹果官方平台,系统直接信任,真的太省心了。我那时候还把之前H5封装好的测试包也传进去测过,H5封装出来的IPA包签名之后,一样可以正常用,比之前超级签名稳定太多了。
用了大半年TF,我最大的感受就是真的稳定省心。之前用超级签名,平均半个多月就要掉一次签,掉一次就要所有用户重新装,每次都要流失好多用户,用TF这么久,我只遇到过一次问题,还是那次我自己改了包之后,传的时候描述文件填错了,用户打不开,重新传了一次十几分钟就好了,再也没有出过批量掉签的问题。唯一要注意的就是TF苹果签名下载次数限制,我第一次用的时候没当回事,快到一万次才发现,那时候刚好拉了一批新的种子用户,有一百多个人下不了,提示下载已满,我赶紧让服务商重新传了一个新的构建版本,不到半个小时就弄好了,也没耽误事,后来我就每个月月初看一下下载量,到八千次就准备换版本,再也没出过这个问题。
说到这里,我也总结了好多P12证书管理和防掉签的技巧,都是踩坑踩出来的。首先,P12证书绝对不能随便乱放,更不能随便给别人,我之前吃过亏,把自己的P12借给一个做游戏内测的朋友,他的游戏里面有违规内容,结果苹果查到之后,把我的证书也封了,那时候我刚签完一批用户,全掉了,损失好大。后来我就把P12存在加密云盘里,要用的时候才导出来,用完立刻删掉,绝对不存本地,也不会借给任何人。第二,绝对不要贪便宜用共享证书,好多小服务商的超级签名特别便宜,其实都是几百个应用共用一个证书,苹果一查就封,掉签是早晚的事,我宁愿多花一倍的钱用独享证书,也不用共享的,稳定比什么都重要。第三,同一个P12证书不要签太多应用,我现在给自己的要求就是一个证书最多签15个应用,绝不超,签太多苹果会检测到,容易触发风控掉签,控制数量就安全很多。第四,如果是长期内测,优先选TF签名,本身就是苹果官方的,只要应用不违规,基本不会掉签,就算有下载次数限制,那一万次对于绝大多数内测项目来说完全够用,就算快到了,重新传个包就行,操作也不复杂,比超级签名省一百倍的心。
其实我那段时间折腾内测,也同时在准备AppStore上架,内测的时候收集用户反馈改bug,改了三版之后才正式提交上架。第一次提交因为我们做拼团有优惠活动,涉及第三方支付,被苹果打回来了,第二次因为分类选错了,又打回来,第三次改完才过。其实内测的时候用TF签名还有个好处,就是你上传到TestFlight的包,其实和上架AppStore的包流程差不多,要是TF能过,上架基本也不会有太大问题,提前就能知道哪里有问题,提前改,省得上架的时候反复被拒,耽误时间。
我现在项目已经正式上线AppStore了,回想起内测那段时间,最大的感悟就是选对签名方式真的能省好多事,创业者本来时间就少,天天忙着拉业务谈合作,哪有空天天处理掉签重新发安装包的事。一开始我不懂,贪便宜选了便宜的共享超级签名,天天被掉签搞的头大,后来换成TF签名,除了偶尔看一下下载量,注意一下TF苹果签名下载次数限制,基本不用管,剩下的时间全用来改产品谈合作,真的舒服太多。
哦对,还有设备管理这块,不同签名的设备管理真的差好多。超级签名你要时不时整理设备列表,把不用的僵尸设备删掉,不然占名额还要多花钱,我之前每个月月底都要导出设备列表,一个个看哪个已经一两个月没登录了,删掉,折腾大半天。TF签名根本不用管设备管理,用户不用了卸载就行,新用户直接下,只要总下载量不超一万次就没问题,就算换手机,重新下一次就行,根本不用我操作,省了不知道多少时间。
还有IPA签名这块,我从最开始自己签,找别人签,用超级签,用TF签,其实不同的场景适合不同的方式。如果就是几个人内部测试,自己有个苹果开发者账号,自己弄IPA签名就行,成本低,也够用。如果几百几千人的内测,真的优先选TF签名,只要注意下载次数限制,比什么都稳定。要是需求很急,TF审核要几个小时,超级签名也能用,但是一定要找做独享证书的,别用共享的,不然掉签掉的你怀疑人生。
这么久走过来,踩过的坑加起来能写满一页纸,但是总结下来就是,内测想要稳定省心,核心就是两点,第一选对适合自己的签名方式,第二管好自己的证书,别乱碰共享证书,只要做好这两点,基本不会出什么大问题,就算有小问题,也好解决。对于我们这种小创业团队来说,少出问题就是省成本,稳定就是最高效的推进方式,我自己踩过的坑,希望后来的创业者能少走点弯路,把更多精力放在产品和用户身上,而不是天天和掉签、设备管理较劲。