苹果企业签名应用内更新内测真实经历

我是做社区本地生活服务的创业者,三年前从互联网公司辞职出来创业,一开始做的是给小区团长用的团批工具,最早就是H5,团长用微信打开就能用,后来用的人多了,不少团长提意见,说H5每次打开都要加载,还容易被微信掐流量,能不能整个独立APP,点开就能用。

那时候我们产品刚做出来,功能还不完善,肯定不可能直接上线对外,也不敢直接碰AppStore上架,万一审核不通过不说,一堆bug流出去影响口碑,所以就决定先做小范围内测,找二十多个相熟的团长帮忙测,这一入苹果签名内测的坑,就是两年多,踩过的坑不少,也攒了一肚子实在经验。

最早我啥都不懂,只知道装苹果的非上架APP需要IPA签名,问了圈做开发的朋友,人家给我捋了最基础的内测流程:先把我们现有的H5封装成IPA包,然后弄苹果开发者账号出证书,给IPA签名,最后把安装链接发给测试用户,用户扫二维码安装就行。

说起来简单,第一步我就卡了,H5封装我找了个网上的第三方打包平台,花了几十块钱就生成了IPA包,接下来签名的事难住了。我自己跑去苹果开发者中心注册了个人苹果开发者账号,交了99美元的年费,想着自己就能弄,结果跟着教程走,才知道个人开发者账号最多只能绑定100台测试设备,也就是说我最多只能给100个用户装,对于我们初期二十多个人测试其实也够,但是麻烦在设备管理。

那时候每来一个新的测试团长,我都得要对方把手机的UDID发我,我再登录苹果开发者后台,手动把UDID加到设备列表里,然后重新生成描述文件,重新给IPA签名,再重新发链接。

有一次一个团长换了新iPhone,给我发的UDID还是旧手机的,我折腾了半小时签完包,他说装不上,我又查了半天错,最后才发现是UDID错了,那时候大晚上我改完重新签名,折腾到十二点才弄好。一开始人少还好,后来测试团长增加到四十多个,每次加新设备都要折腾一遍,偶尔赶上苹果开发者中心抽风打不开,更是急死人。

那段时间我就想着有没有更方便的方式,不用天天折腾UDID,就开始了解不同的签名方式,最先接触的就是超级签名。

最早我找了个很便宜的超级签名服务商,一块钱一个下载量,充了一百块钱能用好久。一开始用着真爽啊,不用我一个个要UDID,用户点了链接自动获取UDID签名,直接安装,太省心了。我那时候还想,原来这么简单,之前自己折腾个人账号真是傻。

结果好景不长,才用了半个月,某天早上刚起床,五六个团长给我发微信说APP打不开了,我一查才知道,证书掉签了。我赶紧找服务商补签,服务商说没问题,给我重新签了发链接,我一个个通知团长重新装,结果才过了三天,又掉了。

后来我才知道,这种超便宜的超级签名用的都是共享的个人证书,一个证书给几百个APP签名,里面但凡有一个违规的APP,苹果一封证书,所有签过的APP全都掉。那一次掉签刚好赶上我们做618小区团的预热,十几个团长开不了单,差点把我急疯了,从那以后我再也不敢碰那种超便宜的共享签名了。

后来换了一家做独享超级签名的,贵一点,三块钱一个下载量,但是证书是独享的,只有我自己用,用了快半年,只掉过一次,还是因为我自己不小心,短时间内点了几十次下载触发了苹果风控,联系服务商重新签了一次就好了,整体还是很稳定的,小范围几十个人内测用超级签名真的很方便,比自己折腾个人账号省心太多。

后来我们测试范围扩大,要一百多个人测,超级签名按下载量算下来也不算便宜,朋友就推荐我用TF签名。我一开始不知道TF签名是什么,后来才明白就是用苹果官方的TestFlight做内测,本质上是苹果官方允许的内测渠道,签名都是苹果官方弄的,根本不会掉签。

我抱着试试看的心态把IPA包传上去,审核一天就过了,发了链接给团长们,团长装个TestFlight就能用我的APP,真的太稳了。我用TF签名快一年了,从来没掉过签,一次都没有,唯一的小问题就是每个内测链接有效期是90天,到期前一周我只要重新传个包换个链接就行,操作也不麻烦,花个十几分钟就弄完了,比掉签了一个个通知用户强一百倍。

要说使用感受的话,超级签名适合小批量短时间内测,不用用户额外装TestFlight,点开就能装,体验好一点;TF签名适合长期大范围内测,稳定到让人省心,只要你APP本身不违规,根本不用担心掉签的事,这一点真的比其他签名方式好太多。

后来我自己尝试弄证书,才搞明白P12证书到底是什么,就是从苹果开发者账号导出的签名证书文件,相当于签名的钥匙,有了P12才能给IPA签名。

最早我不懂,把P12证书随便存在电脑的下载文件夹里,后来电脑硬盘坏了重装系统,我备份的时候把P12给漏了,找不到了,害得我只能登录开发者中心把旧证书 revoke 掉,重新生成新的P12,之前所有签过的包全都用不了,又得重新给所有用户发新链接,折腾了整整一天。

还有一次我找第三方帮忙签名,为了省事把我的P12证书给了对方,结果对方拿我的证书给好几个别的APP签名,其中有一个是违规的APP,没几天苹果就把我的证书封了,我的APP直接掉签,半个多月没法测试,那一次真的给我长记性了。

现在我对P12证书管理特别小心,首先导出之后立刻加密存在三个地方:电脑本地加密文件夹、个人云盘、U盘备份,三重保险,绝对不会弄丢。第二,P12证书绝对不外放,哪怕找服务商签名,我也是自己本地签好再给对方,绝不把证书文件发出去。第三,苹果对同一开发者账号同一类型的证书数量有限制,一般最多只能同时存在两个,所以我不用的旧证书都会及时删掉,不会占名额,也避免出问题。

折腾了这么久,我也总结了好几个实用的防掉签技巧,都是踩坑踩出来的。第一个,千万不要贪便宜用共享证书,不管是超级签名还是企业签名,共享证书看起来便宜,实际上掉签掉的你怀疑人生,贵一点用独享证书,真的省心太多,省下来的时间精力都能赚回来。第二个,控制签名后的下载速度,不要一下子几十上百个人同时下载,特别是超级签名用的是个人证书,短时间大量下载会触发苹果的风控,很容易封证书掉签,我一般都是分批次发链接,每天发十几个,慢慢装,就很少出问题。第三个,同一个证书不要签太多不同的IPA包,尽量一个证书对应一个项目,杂七杂八什么都签,苹果很容易检测到异常,掉签概率就高很多。第四个,也是最重要的,一定要做好苹果企业签名应用内更新,哪怕你做了所有防护,也难免有掉签的可能,提前做好应用内更新功能,用户打开APP如果发现掉签或者有新版本,直接在APP内就能下载更新新的签名包,不用我一个个发链接通知,也不用用户到处找安装包,真的省了太多事。哪怕真的掉签了,用户自己就能搞定,不用来找我,我也不用到处救火。

说起来我最开始就是把H5封装成IPA做内测,一路走来,从自己瞎折腾踩坑,到现在能把整个内测流程打理的顺顺当当,最大的感受就是,内测就是为了给后面AppStore上架铺路,早期功能不完善,先找种子用户内测,用合适的签名方式,稳定运行,收集反馈改bug,比急急忙忙上架AppStore被拒再来回改强太多。

我现在已经内测了两年,功能改的差不多了,用户反馈也都优化完了,上个月刚刚把包签名优化好,提交AppStore上架了,现在等待审核呢,因为前期内测把所有能踩的坑都踩了,审核材料也准备的很全,基本上一次过的问题不大。

其实做创业者,做产品,稳是最重要的,特别是内测阶段,本来就是打磨产品的时候,如果天天因为掉签折腾,根本没精力改产品,找对签名方式,做好证书管理,做好防掉签,就能省出好多精力放在产品上,这也是我这两年最大的体会。现在我身边很多做创业做APP内测的朋友,我都给他们讲我的经验,不要贪便宜,稳就是省心,省下来的时间都是成本,能放在更重要的产品打磨上,比什么都强。我也见过不少团队,一开始为了省几十块钱用共享签名,掉签掉的项目推广节奏都打乱了,反而损失更大,所以说,选对方式,做好管理,苹果内测其实一点都不麻烦,稳定用个一年半载完全没问题。