我之前帮几个做社区生鲜配送的朋友开发了一款内部使用的订单管理工具,一开始只是十几个人内部测试用,没打算直接上线AppStore,毕竟功能还在频繁调整,所以就开始接触各种苹果签名,从最开始什么都不懂,到一步步踩坑,尝试了所有常见的签名方式,这段时间用下来也算有不少实实在在的感受,尤其是自己做超级签名测试包制作的时候,踩了太多之前没想到的坑,今天就聊聊这些真实的使用体验。
最开始我听说超级签名适合小团队内测,就打算自己学着做超级签名的测试包,一开始我只知道要导出IPA安装包,根本不知道还要用到P12证书,跟着网上的教程一步步走,到导出P12证书那一步的时候,我嫌设置密码麻烦,就直接空密码导出了,结果把IPA包和P12一起上传到签名平台的时候,平台一直提示证书验证失败,我来回换了好几种导出方式,折腾了快三个小时,才看到教程最下面不起眼的地方写了一句P12证书导出必须设置密码,苹果要求P12必须加密,不然任何平台都无法读取,当时我整个人都傻了,原来这么小一个细节就能卡大半天。后来按照要求设置了密码,顺利导出P12,上传之后很快就签好了,拿到了安装链接,我拿自己的苹果手机下载,下载完之后APP图标是灰的,点不开,弹出提示说不受信任的开发者,这时候才要弄信任证书。我记得以前老版本iOS信任证书是在设置通用里面的描述文件,我翻来翻去找不到,以为是包签错了,删了重下了三次,后来才反应过来我升级了新的iOS系统,新系统把入口移到了VPN与设备管理分类里面,进去之后就能看到对应开发者的描述文件,点进去点信任按钮,还要再确认一次,之后退回去就能正常打开APP了,那段时间给团队里的老员工装包,一半以上的人都找不到信任入口,每次都要我远程一步步教,特别麻烦,现在想想那时候真的是什么都不懂,一点点小问题都要折腾好久。
用了半个多月超级签名,某天早上起来朋友给我发消息说APP打不开了,图标全灰了,我拿自己的手机看,果然也打不开,提示证书失效,也就是大家说的掉签。那时候我第一次遇到掉签,根本不知道怎么办,到处搜解决办法,后来才搞清楚不同签名掉签的原因和解决办法完全不一样。我那时候用的是签名平台共享的证书,因为自己还没买开发者账号,共享证书就是很多个APP共用同一个证书,其中只要有一个APP违规被苹果查到,整个证书都会被封,所有APP都会跟着掉签,我的就是被别人牵连了。后来找平台客服,客服说共享证书掉签可以免费补签,补签之后给我发了新的安装链接,让我重新下载,但是原来存在本地的订单数据都没了,朋友他们那段时间攒的几十条订单记录全没了,把我好一顿说,从那之后我就知道,共享证书真的碰不得,想要稳定就得自己弄证书。
后来我自己花钱买了个人开发者账号,自己生成P12证书,每次做超级签名测试包都用自己的P12证书签名,用了这么久才发现,自己握有证书才是稳定的关键。我用P12证书的时候也总结了不少实际经验,首先P12证书导出之后一定要多备份,我一开始只存在电脑本地,后来电脑硬盘坏了重装系统,我忘了备份证书,结果原来的P12找不到了,只能去苹果开发者后台废掉原来的证书,重新生成新的,原来所有装了旧包的人都掉签了,不得不全部重新下载,折腾了整整一下午才搞定,后来我把P12证书同时存在云盘、U盘和手机备忘录里,存了好几个副本,再也没丢过。还有就是P12证书不要随便借给别人用,也不要一个证书签好多个不同的APP,我有个开发者朋友,把自己的P12分享给三个朋友用,一共签了六个不同的APP,不到一个月账号就被苹果检测到异常,直接封号了,所有签过的APP全部掉签,损失很大。现在我自己的个人账号,只有我们这一个内部APP用,每个月的下载配额我们二十多个人完全用不完,用了快四个月了,一次都没掉过,打开一直很流畅,从来没有突然失效的情况,所以说超级签名想要稳定,其实方法很简单,就是自己买个人账号,自己做P12证书,自己用,不要共享给别人,基本不会出问题。
后来团队扩张,人员多了,个人开发者账号每个月的下载配额不够用了,我就开始试企业签名。企业签名用的是企业开发者账号的证书,不限制下载次数,适合人数多的内测。我一开始还是图便宜,找了那种几十块钱一个月的共享企业签名,结果和之前共享超级签名一样,不到一个星期就掉签了,掉签原因还是同证书下有个违规APP被查,整个证书废了,我又无辜躺枪。找商家补签,补完之后不到十天又掉了,来回折腾了一个月,我实在受不了了,就加钱换了独立企业签名,也就是一整个证书只给我这一个APP用,贵是贵了不少,一个月要好几百,但是真的稳定,用了快三个月,一次都没掉过,打开也一直很流畅,不会突然打不开。企业签名掉签之后解决也很简单,如果是共享证书就找商家免费补签,给你新的安装链接重新下载,如果是独立证书,一般很少掉,真掉了就是证书出了问题,商家会给你重新用新证书签名,不用太麻烦。
后来我听朋友说TF签名更稳定,也就试着弄了一个TF签名试试水。TF其实就是苹果官方的TestFlight内测渠道,本来就是苹果给开发者做内测用的,所以天生稳定。安装TF的测试包也很简单,用户先在AppStore下载一个官方的TestFlight,然后点开我给的邀请链接,就能直接跳转到TestFlight里面下载我的APP,全程不用找什么信任证书,也不用改任何设置,下载完直接就能打开,对新手太友好了,我们团队那些不会找信任入口的老员工,装TF版本一次就成功,根本不用我教。TF签名一般也不会掉签,只要你不主动删掉测试版本,有效期有三个月,到期了重新上传一次就能续期,真掉签了也就重新生成一个邀请链接就行,几乎没什么额外成本。我用TF版本用了快三个月,一次都没出问题,价格比独立企业签名便宜很多,真的是性价比很高的选择,唯一就是上架TF需要过苹果的审核,只要你的APP不违规,基本都能过,审核也比AppStore松很多,就是走个常规流程,不用太担心。
我之前还图省事试过H5封装,就是把原来的网页版管理工具直接套个APP壳,做成IPA包签名安装,省得做原生包,省时间。用下来体验真的很差,首先流畅度不行,滑动页面都卡,调用手机相机扫码的时候,经常要等好几秒才能打开,有时候还会直接闪退,定位也不准,店员在外面对单的时候经常找不到正确的点位,而且H5封装的包,因为很多不合规的APP都是用H5封装做的,所以很容易被苹果判定违规,我那个封装好的包,不到十天就掉签了,而且只要网络稍微差一点,APP就完全用不了,因为所有内容都加载自网页,所以体验真的很一般,只适合临时应急用,长期用真的不行,后来我还是换成了原生包签名,体验一下子好了很多。
现在我们这个工具做成熟了,朋友想要开放给合作的客户用,所以我就着手上架AppStore。上架AppStore说难也不难,就是审核比较严,我第一次提交,苹果说我这个APP功能太简单,不够用户价值,给我拒了,改了两次,加了几个实用的小功能才过审。上架之后真的太省心了,用户直接在AppStore就能搜到下载,下载完直接打开,什么信任证书什么签名都不用管,也永远不会掉签,只要不违规被苹果下架,就能一直用,用户体验比任何第三方签名都好。就是成本比较高,每年要交六百多的开发者年费,每次更新功能都要等审核,快的话一天过,慢的话要好几天,不比签名,改完就能发,所以内测阶段用签名确实方便很多,正式对外用肯定还是上架AppStore最好。
这段时间用下来,各种签名方式都试过,踩了不少坑,也摸出了不少让签名稳定流畅的实际方法,其实不管用哪种签名,核心都是不要贪便宜用共享证书,自己掌握证书文件,做好多备份,不要违规放不符合要求的内容,基本都能稳定用很久,那些喊着永不掉签的低价签名其实大多都是坑,要么是共享证书来回掉,要么就是用不了几天就找不到人了,还是稳扎稳打根据自己的人数和需求选合适的方式,才是最省心的。