我做个人开发有两年多时间,最开始捣鼓小工具的时候,一直没搞明白苹果这边的签名那些事儿,踩了数不清的坑,从最开始的免费H5封装到后来各种签名都试了个遍,现在终于找到了适合自己的稳定方法,也算是攒了一肚子真实的使用感受,想给和我一样的个人测试开发者唠唠。
最开始我做了第一个记录日常的小APP,写完代码打包好安装包之后,才发现苹果不让随便装到手机上,必须要签名,那时候什么都不懂,搜了一下看到网上好多免费的H5封装,想着免费的先试试,就找了一个上传了包,没一会儿就给了我一个下载链接,我兴冲冲地点开链接下载,结果安装完点图标,直接弹出来不受信任的开发者,那时候我刚换了新的iOS系统,找信任入口找了好半天,原来老系统在描述文件里,新系统改到VPN与设备管理那个分组里面了,折腾半天终于找到证书,点了信任才打开,结果用起来卡得要死,想存一张照片到本地,调用相册调了好久都出不来,而且才用了没几天,再点图标就直接灰了,完全打不开,问了客服才知道是掉签了,说免费的就是这样,掉了只能重新封装,我当时气得直接把链接删了,才知道免费的果然没好货。
后来混开发者群,群里有人说可以自己申请苹果开发者账号,导出自己的P12签名证书,找服务商只做签发,比用服务商的证书安全,也更稳定,我听了之后就去苹果开发者中心申请了个人开发者账号,交了年费,一步步学着导出P12,那时候不懂,第一次导出没设密码,直接就传给服务商了,传完之后才想起来,P12是自己的开发者签名证书,如果被别人拿走乱用,我的整个开发者账号都会被封,吓得我赶紧登录开发者中心把原来的证书吊销了,重新生成了一个,导出的时候设了复杂的强密码,才敢发给服务商,这才知道用P12的小门道,原来自己的P12一定要设密码,不能随便给不正规的服务商,更不能拿去给多个APP共用,不然很容易被苹果检测到,直接封证书,我身边就有朋友把自己的P12借给别人签了好几个APP,结果没多久证书就被封了,连带着开发者账号都受影响,好久才解封。自己有P12的好处就是,签名的时候主动权在自己手里,不想用了随时可以吊销证书,也不用担心服务商乱拿你的证书去给别的APP用,只要自己控制好APP的数量和装机量,就很难被苹果封,稳定性高很多。
我找服务商最先试的就是超级签名,那时候服务商说超级签名不用手动信任证书,直接安装就能用,我听了觉得太方便了,就弄了一个,流程是先要我导出自己手机的UDID,我又搜了半天怎么查UDID,好不容易查到了发过去,没多久就给了我安装链接,我点了之后确实直接安装完成,打开就能用,不用找什么信任入口,那时候觉得超级签名真的太香了,用起来也很流畅,原生功能一点都不卡,调用相册、通知都没问题,稳稳定定用了好长时间,我那时候还以为找到了宝藏,结果某天早上起来打开APP,直接就闪退,再也打不开了,找服务商问,才说我用的这个超级签名证书绑定的设备满了,把我挤下来了,所以掉签了,要给我换一个证书重新签,我只能重新下载安装,结果之前好多天记录的内容数据都没了,心疼得我好久没缓过来,后来才知道,超级签名本质就是用个人开发者证书,每个证书最多只能绑定少量设备,很多便宜的超级签名都是好多APP共用一个证书,不停地挤旧设备,所以掉签是常有的事儿,要是找那种专属的超级签名,只给你自己用,价格又贵得离谱,对于我这种要给好几个测试设备装的来说,成本太高了,用了好久超级签名,我就放弃了,换了别的。
接下来才试了企业签名,最开始不知道还有共享和独立,还有加固服务之分,贪便宜选了便宜的共享企业签名,安装流程其实也不麻烦,下载好安装包之后点击安装,同样弹出来不受信任的开发者,然后按照之前的经验,打开设置,找通用,拉到VPN与设备管理,找到对应的企业级开发者证书,点击信任,确认之后就能打开了,流程走下来也就一两分钟,熟了之后很快,最开始装上用着也还行,和超级签名一样流畅,结果才没多久,就掉签了,图标灰了打不开,找客服补签,补完用了几天又掉了,最夸张的一次一天掉了好几次,我那天正好要给几个朋友演示我新更的功能,结果当着人面打不开,尴尬得我恨不得找个地缝钻进去,后来商家给我推荐他们的苹果企业签名加固服务,说是独立的企业证书,一个证书只放我的APP,还做了防封加固,避免苹果检测到滥用,价格虽然是共享签名的好几倍,但是稳定性好很多,掉签了也会优先处理,我想着之前掉签掉怕了,就咬咬牙换了加固的独立企业签名,换了之后我才知道,贵真的有贵的道理,从换到现在好长时间,我天天更版本,测试新功能,一次都没掉过签,打开速度和上架AppStore的APP没区别,所有原生功能都能用,也不用天天提心吊胆怕哪天打不开,真的太省心了。后来我也问过商家掉签了怎么办,商家说如果真的掉签了,不管是共享还是独立加固的,都会免费补签,要是自己有P12证书的,只需要重新签发一下描述文件,很快就能弄好,重新安装一次就能用,要是证书没被封,只是描述文件失效,甚至不用重新下载安装包,刷新一下描述文件就行,比我之前想的简单很多。
后来我APP做得差不多了,要找好多朋友做内测,朋友推荐我用TF签名,我也就试了,TF签名其实就是把APP放到苹果官方的TestFlight测试平台里,用户只要点链接跳转到TestFlight就能下载安装,因为是苹果官方的平台,所以根本不需要信任什么证书,也不会弹不受信任的提示,下载完直接就能用,稳定性确实好,我用了好久,一次都没出过问题,也没掉过签,用起来也很流畅,唯一的问题就是审核太慢,每次我改完版本更包,都要等苹果审核,快的话一天,慢的话要好几天,我那时候天天改bug,天天要更版本,根本等不起,而且TF的下载次数还有限制,一个测试版本满了下载量就要重新发,而且审核也挺严的,有些小功能不符合要求就过不了,所以大规模内测不怎么更新的话用TF挺好的,像我这种频繁测试改版本的,还是不如加固的企业签名方便。
后来我的APP正式做完了,也就试着上架AppStore,上架其实就是用开发者账号把包提交上去,等苹果审核,过了之后就能直接在AppStore搜索下载,用户不用弄任何签名,也不用信任证书,点一下安装就好,是最稳定体验最好的,但是审核真的太严了,我第一次提交就被拒了,说我里面的用户分享板块没有内容审核机制,第二次改完提交又被拒,说我界面有引导好评的内容,前前后后改了好多次,花了好久才通过审核,而且每年还要交年费,对于个人开发者来说,确实门槛不低,而且就算上架了,哪天苹果改了规则,你的APP不符合要求,说下架就下架,完全没办法,所以很多测试阶段的APP,或者一些不符合上架要求的小工具,还是需要用各种签名来分发测试。
走了这么多弯路,我也慢慢摸出了门道,想要稳定流畅用,真的不能贪便宜,如果你只有几台设备测试,能接受偶尔掉签,那选正规的专属超级签名就可以,要是有很多设备,还要频繁更版本测试,那一定要选做了加固服务的独立企业签名,自己提供P12证书会更安全更稳定,只要证书不共用,不滥用,基本很少掉签,用起来和上架的没差,如果是大规模内测不常更新,选TF签名最省心,最后能上架AppStore肯定是最好的,只是要做好审核被拒的准备,我之前踩过那么多坑,从免费H5到共享签名,掉签掉得我怀疑人生,现在用了加固的独立企业签名做测试,上架正式版,终于不用再天天折腾签名的事儿了,能安心改代码做功能,遇到问题也有服务商及时处理,比之前自己瞎摸索省心太多。之前还遇到过信任完证书还是打不开的情况,一开始以为是签名出了问题,折腾了好久才发现是系统缓存的问题,重启一下手机就好了,还有一次导错了P12证书,把推送证书当成签名证书发了过去,服务商签出来的包一直安装失败,折腾了一下午才发现问题出在哪,这些小问题虽然闹心,但也慢慢攒出来经验,现在弄签名已经轻车熟路,再也不会像最开始那样手忙脚乱了。其实不管用哪种签名,只要找对正规的渠道,选适合自己需求的类型,就能用得稳定舒服,不用天天为掉签发愁。