我是一名帮朋友测试小众工具类APP的普通用户,因为APP还在迭代调整阶段,暂时没打算正式上线,所以这大半年来我接触了好多种苹果签名方式,踩过不少坑,尤其那次遇到苹果企业签名证书被封的情况,到现在印象都特别深,今天就说说我真实的使用感受。
最开始接触的就是企业签名,朋友找了个价格很便宜的服务商做了共享企业签名,给我发了安装链接,让我用自带的Safari浏览器打开。我当时按照提示点了安装,回到桌面就看到APP图标已经出来了,可点进去之后直接弹出提示说无法打开,开发者不受信任,图标也变成灰色的。我那时候完全不懂,以为是下载包坏了,删了重新下了好些次,还是一样的情况,急得我赶紧找朋友问怎么回事。朋友才说要手动信任证书,我拿着手机翻设置,旧系统的时候信任入口就在通用下面的描述文件里,那段时间刚更了新系统,入口挪了位置,我翻来覆去找了好久都没找到,最后还是去搜了才知道,新系统要去设置通用里找VPN与设备管理,在那个里面才能找到对应的描述文件,找到之后点一下信任按钮,确认之后退出来再点APP,就能正常打开了。整个流程其实不复杂,就是第一次找入口的时候折腾半天,对不太懂手机设置的人来说还是有点麻烦的。
后来朋友想做独立签名,就涉及到P12证书的使用,我那时候不懂P12到底是什么,帮朋友操作的时候才慢慢弄明白,P12其实就是导出的包含证书和密钥的文件,做签名的时候必须要有这个文件才能签名。朋友特意跟我说,P12一定要好好保管,设置复杂的密码,不能随便泄露,不然很容易出问题。那时候我们没当回事,帮另一个朋友调试的时候,把P12临时分享出去了,存到了公共网盘里,后来也忘了取消分享,就是这次疏忽,给后来的坑埋下了伏笔。没过多长时间,我们本来用得好好的APP,突然就打不开了,图标变灰,提示无法使用,找服务商一问才知道,我们用的企业证书被封了,就是因为P12泄露之后,有人拿去给违规APP签名,苹果检测到之后直接封了整个证书,好好的APP跟着受连累,所有安装过的用户都用不了,那阵子我们正测试到关键阶段,一下子所有人都没法用,急得我们到处想办法。
这次掉签之后我也算摸清楚了掉签之后的解决办法,一般来说,如果只是描述文件失效,证书本身没问题,只需要找开发者重新生成描述文件,再重新签名覆盖安装就可以了,原来的数据大多也能保留下来。但如果是证书本身被封了,那就没办法了,原来的P12也用不了,只能换全新的证书重新签名,再让所有用户重新下载安装,如果原来的签名渠道不靠谱,还得换别的签名渠道才能解决问题。那次我们的证书被封之后,原来的服务商说只能给我们换共享证书,还要再加费用,我们不想再用共享的,就开始尝试别的签名方式,也挨个体验了不同渠道的好坏。
接下来我们试了超级签名,超级签名的安装流程比企业签名简单很多,点开发送的链接之后,系统会自动获取你手机的信息,把设备添加到对应账号里,之后自动签好名推送安装,安装完成之后直接就能打开,根本不需要手动去设置里信任证书,对新手来说真的友好很多。可体验了一段时间之后,我们发现超级签名的问题也不少,它是按安装次数收费的,我们换了好些测试设备,没多长时间额度就用完了,还要继续充值,算下来成本其实不低。而且超级签名本质上用的是个人开发者账号来签名,每个账号能加的设备数量本身就有限制,苹果查得也严,没过长时间,我们用的那个服务商的好些账号都被封了,我们装的APP也跟着掉签打不开,等服务商重新弄好花了好些天,耽误了不少测试进度,所以超级签名只适合临时小范围用用,长期用真的不靠谱。
之后我们听人说TF签名稳定,就换成了TF签名。TF签名其实就是用苹果官方的TestFlight测试渠道来分发,安装流程也很简单,对方给你发一个邀请链接,点开之后直接跳转到TestFlight应用,你先下载TestFlight,再从里面找到要测试的APP下载安装就可以了,全程都是苹果官方的流程,根本不需要手动信任证书,也不会弹出不受信任的提示,用着特别省心。我们用TF签名的这好长时间里,从来没有掉过签,真的稳定到出乎我们意料。当然TF签名也不是完全没有问题,比如它有测试人数的限制,要是用的人多了,满了之后就得重新新建,而且每次更新APP都要重新提交审核,得等一段时间才能更新好,不像企业签名更完就能直接装,着急测试新版本的时候还是有点耽误事,另外有时候快到测试期限的时候会弹出过期提示,重新下载一下就能解决,整体来说不影响使用,流畅度也没什么问题,是我们用过这么多渠道里体验很好的一种。
那段时间我们还应急试过一次H5封装,就是原来的证书被封了,急着给客户做演示,临时找人把网页封装成APP壳签了名,装上去用了之后才知道H5封装的体验有多差。打开速度特别慢,滑动页面都卡顿,调用原生功能比如相机、定位的时候,半天都出不来,保存个图片都没反应,演示的时候特别尴尬,从那之后我们就再也没碰过H5封装,也就是真的应急的时候能凑合用一下,长期用根本没法接受,而且H5封装之后也要签名,一样会遇到掉签证书被封的问题,本质上没有解决任何问题,体验还比原生差好多。
后来APP迭代得差不多了,各方面功能都稳定了,我们就准备上架AppStore,申请了开发者账号,提交之后才知道AppStore的审核有多严,第一次提交因为我们没写清楚第三方功能的使用说明,直接被打回来了,改完之后第二次又因为隐私政策的位置不对,再打回来改,折腾了好些次才通过审核。上架之后真的太省心了,所有用户直接在AppStore就能搜索下载,更新也直接在AppStore更,根本不用操心掉签、证书被封的问题,也不会出现突然打不开的情况,用户用着也放心,是最稳定的方式,当然成本也不低,每年都要交年费,审核门槛也高,对于小开发者来说还是有点压力的,但只要能上架,真的就是一劳永逸。
用过这么多签名方式之后,我也慢慢摸出了能让签名更稳定流畅的门道,要是只是小范围内部测试,其实直接选TF签名就好,官方渠道,根本不会随便掉签,成本也不高,体验也好。要是需要大范围分发,暂时又不想上架AppStore,那就尽量选独立企业签名,不要贪便宜用共享签名,共享签名就是把好多不同的APP都放在一个证书里,只要有一个APP违规,整个证书就会被封,所有人都跟着遭殃,我们第一次遇到苹果企业签名被封就是因为用了共享签名。用独立签名的时候,P12证书一定要自己保管好,设置强密码,不要随便泄露给外人,也不要存在公共网盘里随便共享,只要证书不被滥用,被封的概率会低很多,稳定度比共享签名高太多。如果只是临时给几个人用,超级签名也能凑活,但不要长期用,成本高还容易掉签,H5封装能不用就不用,体验真的太差,要是APP已经做好了,能上架还是尽量上架AppStore,虽然要折腾审核,但上架之后就再也不用操心签名相关的问题,用着最省心。
我之前还遇到过掉签之后覆盖安装丢数据的情况,后来才知道,如果是同一个证书重新签名,覆盖安装是不会丢数据的,如果换了全新的证书,原来的数据就会被清空,所以每次测试之前我都会养成备份数据的习惯,避免掉签之后丢了重要的测试内容。还有时候证书没被封,只是系统更新之后描述文件失效,这种情况只需要重新去信任一次就好,不用重新下载安装,能省不少事。这段时间用下来,我最大的感受就是,苹果签名这块真的是一分钱一分货,贪便宜用低价共享签名,看起来省了钱,实际上来回掉签折腾浪费的时间和精力,远远不止那点差价,还经常耽误正事,选对适合自己的签名方式,真的能少踩好多坑。