我创业做本地私域工具三年,大半时间都在和苹果内测打交道。最早不懂的时候,踩过的坑能堆一箩筐,今天就聊聊我这些年的真实经历。
一开始做产品的时候,为了赶进度,我们先做了H5版本,功能跑通之后,想给苹果用户做个安装包,省得用户每次都要在浏览器打开,就找朋友帮忙做了H5封装,导出了IPA包。
这个时候才发现问题,苹果手机根本没法直接安装未签名的IPA包,想要分发内测,必须先做IPA签名。那时候我连什么是签名都搞不懂,上网搜了半天,才大概理清楚了内测的完整流程。
我先去申请了个人苹果开发者账号,99美元一年,绑卡的时候连续失败两次,一会说地址不对,一会说发卡行不支持境外支付,折腾了快一周才申请下来。拿到账号的那天,我还激动了好久,觉得终于可以开始内测了。
最早我听人说超级签名方便,不用用户做任何额外操作,点链接就能装,我就找了个服务商做超级签名。一开始用着确实爽,十来个内部开发测试,点链接就装上了,也不用用户去设置里找设备管理信任证书,体验确实好。
用了半个月,问题来了。那天我们拉了几十个种子用户进来,早上还好好的,下午所有用户突然都打不开APP了,提示“未受信任的开发者”,我一看,掉签了。急得我赶紧找服务商,服务商说共享证书被苹果封了,要重新签,等了两个小时才弄好,刚好那天有个意向合作方来测版本,弄成这样,印象分掉了好多。
后来我才搞明白,我图便宜用的是共享证书的超级签名,几十上百个APP共用一个P12证书,苹果一查一个准,不掉签才怪。那时候我才知道P12证书管理有多重要。我自己有苹果开发者账号,自己生成了P12,之前图省事,直接把P12给了服务商,后来才发现他们偷偷拿我的证书给别的APP签名,最后导致我的证书被苹果标记,差点连我的开发者账号都被封了,我申诉了快半个月才找回来,吓出一身冷汗。
从那之后,我就定了规矩,自己的P12证书绝对不共享,存在加密云盘里,只给自己的APP用,找签名服务商也只找允许我用自己证书的,绝对不碰共享证书的便宜货。
后来我慢慢整理了设备管理的经验。超级签名是用开发者账号的设备名额来签名的,个人苹果开发者账号一个账号最多只能加100台测试设备,很多新手不知道这点,加设备的时候一下子加满,后来有用户不用了也不删,想要加新用户的时候根本加不进去。我现在每个月都会清理一次设备列表,把半年没打开过APP的设备删掉,腾出来名额给新用户,从来没再出现过名额不够的情况。
用了几个月超级签名,种子用户越来越多,最多的时候快小一千人了,每个账号100个名额,我得买好几个账号,成本也上去了,而且偶尔还是会因为操作不当掉签,用户每次都要重新下载,抱怨挺多的。这个时候我才转做TF苹果签名,也就是TestFlight内测。
一开始用TF,真的觉得打开了新世界。用了快大半年,从来没掉过签,用户只要不删APP,就能一直用,太省心了。但是没用多久,我就踩了TF最大的坑,就是TF苹果签名下载次数限制。那时候我做了个拉新活动,一下子来了快一千个用户要内测,我生成链接发出去,下到九百多的时候,陆续有人找过来说点链接提示无法下载,我查了半天资料才搞清楚,TF外部测试的单版本,最多只能有10000次下载,也就是最多容纳10000个测试员,我一开始不知道这个规则,第一次发版没注意,那次做活动之前,旧版本已经被下载了九千多次,一下子就满了,链接直接废了。
那天我紧急发了新版本,重新生成了下载链接,一个个给已经下载失败的用户发新链接,折腾到凌晨一点才搞定,累得腰都直不起来。从那之后,我就养成了习惯,每天都看一下TF的下载数据,只要下载量到8000次,我就准备好新版本,提前换好下载链接,活动之前也一定会核对剩余下载次数,再也没出过这种问题。
其实说起来,TF虽然有下载次数限制,但是整体用下来,真的比超级签名稳定太多了,省心太多了。我现在只要是超过一百人的内测,直接上TF,一百人以内的小范围测试,用自己开发者账号的超级签名,自己管P12,也挺稳。
这些年攒了不少证书防掉签的技巧,今天也顺便说说。第一,绝对不要用共享P12证书,能用自己的苹果开发者账号就用自己的,自己的证书自己管,不要随便给第三方,避免被拿去签名违规APP,牵连自己的证书和账号。第二,一个证书尽量只签一个APP,不要在同一个证书下面挂好多个不同的APP,苹果检测到异常很容易封证书。第三,超级签名一定要控制设备数量,不要把100个名额加满,留个10个左右的余量,避免苹果判定你违规使用。第四,如果用TF签名,一定要牢记TF苹果签名下载次数限制,提前做好预案,快到限额就提前发新版换链接,绝对不要等用不了了才补救。第五,很多人说要定期换证书,其实根本不用,只要你不违规,自己单独用的证书一两年都不会出问题,我有个P12证书用了快两年了,还是好好的,从来没掉过签。
说起来,我们内测了快一年,产品稳定了之后,就开始准备AppStore上架。其实上架之前的所有开发测试、种子用户内测,全都是靠IPA签名完成的,如果没有稳定的签名,我们根本没法顺利完成内测,也不可能迭代到可以上架的版本。第一次上架我们还被拒了,苹果说我们本质就是H5封装,功能太简单,不符合上架要求,我们回去加了几个原生交互功能,做了离线缓存,优化了启动速度和权限申请逻辑,第二次提交就过审了。现在我们上架之后,还是会保留内测通道,新功能都会先放在TF内测,收集一百个种子用户的反馈之后,修改完bug再更到AppStore,TF真的成了我们产品迭代离不开的工具。
其实我最深的感受就是,做创业,做产品内测,稳定真的比什么都重要。一开始我总想着省钱,找几块钱一个月的便宜共享签名,三天两头掉签,用户流失不说,还耽误事,每次掉签都要折腾半天,重新发链接通知所有用户,算下来时间成本反而更高。现在我宁愿多花一点钱,用自己的证书,用稳定的TF签名,除了偶尔要注意一下TF的下载次数限制,其他时候根本不用操心,省下来的时间精力都可以用来优化产品,对接客户,比什么都强。
之前还有人问我,为什么不直接用企业签名?我刚做内测的时候试过一次共享企业签名,不到一周就掉了,而且现在苹果对企业证书查得越来越严,共享企业签名掉签概率太高了,根本不适合长期内测,还是TF和自己证书做的超级签名靠谱。
哦对,还有设备管理这块,很多新手容易忽略,不管是超级签名还是TF,设备管理都不能大意。超级签名要自己定期清理不用的设备,腾出来名额给新用户,TF虽然不用手动清理测试设备,但是也要盯着下载量,别超了下载次数限制,这些小事看起来不起眼,出一次问题就能让你焦头烂额,耽误正事。
我现在做内测,流程已经摸得滚瓜烂熟了:开发完功能之后H5封装出IPA包,小范围给内部开发测试就用自己苹果开发者账号出P12,做独享超级签名,按月清理闲置设备,控制设备数量不碰上限;大范围给种子用户测试就发TF,每周查看一次下载量,快到下载次数限制就提前发新版换链接,这么久下来,几乎没出过大问题,真的很稳定省心。毕竟我们小创业者,时间精力都有限,能少出点莫名其妙的问题,就能多花点时间在产品和业务上,这就是对我们来说最大的好处了。