我平时帮身边的朋友和客户测试各类未上架的iOS应用,算下来和各种苹果签名打了好几年交道,从一开始啥都不懂的新手,到现在能顺手处理大部分签名问题,中间踩过的坑没有一百也有八十,今天就说说我这些年的真实使用感受。
最早接触苹果签名是帮一个创业的朋友测内测包,那时候拿到的是一个企业签名包,我下载完安装,点开来直接弹出无法打开的提示,显示未受信任的开发者,那时候我刚换苹果手机没多久,根本不知道还有信任证书这回事,只当是安装包损坏,删了重下三四次,结果每次都是一样的提示,我还对着手机骂了半天商家不靠谱,给朋友发消息吐槽他找的渠道不对,后来朋友给我发了一步步的截图,我才知道要去手动信任证书。那时候的iOS系统还没更新,信任证书的入口在设置通用的描述文件与设备管理里,我对着菜单拉了半天,好不容易才找到对应的入口,找到那个签名对应的描述文件,点了信任之后退出来,APP果然就能打开了。后来iOS系统更新,信任证书的入口改到了VPN与设备管理里面,现在帮新用户弄安装,我都要提前写好一步步的步骤,省得他们像我当初一样瞎折腾,浪费半天时间。
用了一段时间企业签名之后,我开始接触不同的签名渠道,也慢慢摸清楚了各种签名的区别,最早我用的是那种很便宜的共享企业签名,商家说价格低适合内测,我那时候想着反正只是临时用,就选了便宜的,结果没用到半个月就出问题了,早上打开手机,APP图标直接变灰,点开来完全没反应,我那时候还是第一次碰到掉签,以为是手机系统出问题了,还原了半天设置,重启了无数次,还是打不开,后来问了圈内的朋友才知道这就是苹果签名掉签了,是苹果吊销了证书的权限。掉签之后我去找那个商家,结果人家已经失联了,朋友圈也看不了,消息也不回,我才知道自己碰到了骗子,最后只能重新找渠道,花了比原来高几倍的价钱重新签,从那之后我再也不敢贪便宜找那种超低价的小渠道了。
后来我自己帮朋友做签名,开始接触P12证书,才知道原来苹果签名本质上就是用P12证书给APP包签名,P12就是开发者从苹果后台导出的签名证书文件,自己手里有P12的话,签名的稳定性会高很多,只要证书不被封,P12不损坏,基本不会出什么问题。我之前第一次自己导出P12,存的时候为了省空间,压缩了之后存在云盘里,结果等要用的时候下载下来,解压导入签名工具,一直提示证书无效,我一开始以为是密码记错了,试了不下几十次,还是不对,后来找做开发的朋友来看,才说我这个P12签名证书损坏了,应该是云盘同步的时候出错,文件结构坏了。那时候急着赶测试包,我整个人都慌了,开发者那边原文件也删了,只能想着修复,朋友帮我找了工具修复文件头,折腾了大半天,最后还是没修好,只能去苹果开发者后台删掉原来的证书,重新生成新的,重新导出P12,整整耽误了我一天的时间,本来要交的测试报告也拖了,被扣了绩效,说起来都是泪。从那之后我就养成了习惯,P12证书导出之后,我会先导入测试一遍,确认没问题之后,存三份备份,一份放本地电脑硬盘,一份放专门的U盘,一份存云盘存原文件不压缩,再也不敢随便压缩存云盘了,真的怕了这种出问题找不到地方说理的感觉。
讲完企业签名和P12的事儿,再说说我用过的超级签名,超级签名是用个人开发者账号的P12证书签名,原理是把测试设备的UDID加到开发者账号里面,所以安装完之后基本不需要手动信任证书,下载完直接就能打开,用起来比企业签名方便很多。我一开始用超级签名,觉得真的太方便了,稳定性也比那种便宜的共享企业签名好很多,只要不超下载量,不用黑号,基本很少掉签。我自己有个人开发者账号,导出自己的P12给小范围的测试包签名,十来个人用,从来没出过问题,除了那次P12损坏的事儿,真的挺省心的。不过超级签名也有坑,我之前图便宜找商家做超级签名,结果商家用的是黑来的个人账号,用了不到一个月,账号就被苹果封了,所有装过的APP全部掉签,一个个通知用户重新下载,折腾了好久,好多测试用户都嫌麻烦不干了,项目进度拖了好久。所以超级签名一定要用正规的个人账号,自己有账号最好,自己把控P12证书,别用商家的黑号,不然掉签掉得莫名其妙。
再后来我开始用TF签名,也就是TestFlight签名,这是苹果官方的内测渠道,说实话用到现在,TF签名是我觉得最稳定的,没有之一。TF的安装流程也很简单,给用户发一个链接,点进去跳转到TestFlight,点获取就能下载安装,不需要手动信任证书,也几乎不会掉签,只要开发者不主动把包撤下来,放个一年半载都能正常打开用。我之前有个项目,一直用企业签名,每个月都要掉个两三次,每次掉签都要通知所有用户重新下载安装,好多用户都嫌麻烦走了,后来实在受不了转成TF签名,从此再也没为掉签操过心,真的太香了。当然TF也不是没有小问题,比如提交TF需要等苹果审核,虽然比AppStore上架快很多,但也要等几个小时甚至一天,每次更新版本都要重新提交审核,而且用户必须先安装TestFlight才能装里面的APP,有些新手用户不会弄,还要一步步教,我之前给一些年纪大的测试用户发TF链接,好多人点进去不知道怎么操作,教了半天才弄好,这点确实有点麻烦,但比起天天掉签折腾,这点等待和麻烦真的不算什么。
除了这几种,我还用过H5封装的签名,H5封装就是把网页套个原生壳做成APP,然后再签名安装,我之前做过一个临时的小工具,就是把H5网页封装成苹果APP,用着确实方便,改内容直接改网页就好了,不用重新发包签名,省了好多事儿。但H5封装的体验真的不好,流畅度远不如原生APP,滑动的时候偶尔会卡,调用手机的摄像头、推送这些原生功能也经常出问题,而且H5封装本身只是套壳,稳定性还是要看你用什么签名,我第一次做H5封装,找了个免费的企业签名,没三天就掉了,后来转成TF签名才稳定下来,所以H5封装也就适合做临时的演示或者小工具,长期用真的不合适。
最后说AppStore上架,要是产品做好了,能上架AppStore肯定是最好的,用户直接从AppStore搜索下载,装完就能用,不需要管什么证书信任,也不会掉签,更新也方便,体验是所有渠道里面最好的。但上架AppStore的缺点也很明显,审核太严了,很多内容都卡,我那个项目改了三次才过审核,而且每年还要交年费,对于小开发者来说成本不算低,要是碰到审核被拒,或者上架之后被下架,也挺折腾的,我有个朋友的APP,上架大半年了,就是更新了一个小功能没走审核,直接被下架了,折腾了两个月才重新上去,所以大部分未上架的测试,或者一些不符合上架要求的应用,才会用到各种第三方签名。
这么多年用下来,我也总结了一些让签名稳定流畅的方法,其实说起来也简单,就是选对适合自己的渠道,做好证书备份。如果只是几个人小范围临时测试,那就用自己的个人开发者账号弄超级签名,自己把控P12证书,备份好不要损坏,只要不超下载量,不分享账号,基本不会出问题,特别省心。如果是几十上百人的中期内测,那就选正规渠道的独立企业签名,不要选共享证书,共享证书虽然便宜,但很多人一起用,容易被苹果盯上,掉签概率高很多,独立证书用自己的P12,只要不被封,三五个月都不会掉,掉签之后正规渠道也会给你免费补签,删掉旧包装新包,重新信任证书就能用,很方便。如果是长期的内测或者要给很多用户用,那就直接选TF签名,官方渠道,稳定到你忘了掉签这回事,哪怕更新要等审核,也比天天掉签折腾强。如果是正式产品,能上架AppStore就一定要上架,对用户来说体验最好,也最省心,不用任何额外操作。
我也碰到过很多人问我掉签了怎么办,其实也分情况,超级签名掉了要是单个设备掉,删掉重下就行,要是整个掉了,就是账号被封了,换个正规账号重新签就好。企业签名掉了就是证书被吊销了,换个证书重新签,重新安装就行。要是P12证书坏了,能修复就找专业的人修复,修复不了就去开发者后台重新生成,只要有权限,其实也不麻烦,就是提前做好备份就能省好多事。我之前赶第二天给客户演示的包,前一天晚上企业签名掉了,找商家补签说证书被封了,折腾到半夜才弄好,从那之后我不管做什么项目,都会备一个TF包,哪怕主签名掉了,也有备用的,不会误事,这种细节真的能省好多心。
其实玩苹果签名这么久,没有哪个渠道是绝对完美的,各有各的适用场景,只要选对了,做好备份,避开贪便宜的坑,就能少出很多问题,我踩过的这些坑,也希望能给其他刚接触的朋友提个醒,别像我当初一样走那么多弯路。