苹果企业签名与内测分发实测体验分享
我这段时间一直在帮团队测试未上架的内部版本APP,前前后后接触了好多种不同的签名安装方式,从最开始摸不着头脑碰了一鼻子灰,到现在也算摸出了些能用的经验,就聊聊这段时间真实的使用感受。最开始接触的时候,是朋友给我发了一个企业签名的下载链接,说让我直接点开安装就能用,我那时候根本不知道苹果签名是什么,只想着能快点装上测东西,就直接点开了链接。按照提示跳转到浏览器下载,点完安装之后,桌面上就出来了一个灰色的APP图标,加载了好半天终于显示出来,点进去的时候却直接弹了提示,说打不开,因为是未受信任的企业级开发者,那时候我完全懵了,以为是安装包出了问题,还连着给朋友发了好几条消息吐槽,说是不是打包错了。朋友让我去设置里找信任证书的入口,我拿着手机翻了好半天,才在通用选项里找到了对应的设备管理入口,进去找到那个对应的描述文件,点了信任之后还要输锁屏密码,操作完退出来再点APP,终于能正常打开了。现在熟了之后其实觉得这个步骤也没什么,但是第一次用的时候真的摸不着头脑,加上现在苹果系统把这个入口放的越来越深,很多新接触的人找不到也是常事,我现在给新参与测试的伙伴发安装包,都要提前把步骤说清楚,不然总会有人说装不上打不开。
用了没多长时间,就遇上了掉签,那天早上点开APP直接闪退,再看图标已经变灰,还是提示证书失效,那时候我还是不知道该怎么办,赶紧问了懂的朋友,才知道掉签是常有的事,不同情况有不同的解决办法。最常见的就是找签名服务商重新补签,补完之后重新下载安装就能用,如果是自己手里有证书的话,其实自己就能重新签名,不用等服务商处理。这也是我第一次接触到P12证书,之前完全不知道这是什么,后来自己折腾了好久才弄明白,P12就是把开发者证书导出之后的文件,里面包含了证书对应的私钥信息,如果是自己申请的开发者账号,就能导出属于自己的P12证书,找分发平台做签名的时候直接上传自己的证书就可以,不需要用服务商提供的共享证书,证书只有自己一个人用,只要不做违规的事情,就很少会被苹果撤销,稳定性要比共享证书好太多。我第一次导出P12证书的时候也碰了坑,导出的时候需要设置密码,我记混了密码,上传的时候连着错了好几次,一直提示证书无效,我以为是证书本身出了问题,又重新去开发者后台导出了一遍,折腾了快一个小时才弄好,而且导出的时候我不小心存到了云端,本地找不到文件,又来回找了好半天,现在想想都觉得麻烦,后来我就习惯把导出的P12存在本地专门的文件夹里,密码也记在常用的笔记里,就再也没出过这种问题。
这段时间我把市面上常见的签名方式差不多都试了一遍,也有很多真实的感受,先说最常用的苹果企业签名,这也是我内测用的最多的方式。企业签名分好几种,最常见的就是共享签名,就是很多不同的APP共用同一个服务商提供的证书,这种签名一般价格很便宜,甚至还有新人能免费试用的,但是稳定性真的太差了,掉签掉的让人头疼,我最开始用的就是这种共享签名,隔三差五就掉一次,每次掉了都要重新下载,我测的是带社交功能的工具,每次重新下载都要重新登录导聊天记录,烦都烦死了。后来换成了独立企业签名,要么是服务商提供单独的证书给我一个人用,要么就是我自己上传P12证书,价格确实比共享的贵不少,但是稳定性提升了不是一点半点,用了好长时间都没掉过签,除非是APP本身加了违规内容,不然苹果很少会撤销个人自用的企业证书。之前我也试过掉签之后直接删包重下,丢了好几次重要的测试数据,后来才知道,掉签之后其实不用急着删原来的APP,只要用重新签好的安装包直接覆盖安装,原来的数据都能保留,省了好多麻烦,要是自己有P12证书,还能直接用电脑端的签名工具自己重签,十来分钟就能弄好,不用等着服务商处理,真的很方便。
我也用过一段时间超级签名,这种签名其实是用个人开发者账号的权限来做的,要把测试设备的信息加到证书里面才能签名,安装的时候其实比企业签名方便,点完链接下载安装之后,不需要手动去设置里信任证书,装完直接就能打开,体验很好。但是问题也很明显,就是个人账号能加的设备数量有限,要是测试的人多,就需要多个账号,成本会高很多,而且要是账号被苹果封禁,已经装好了的APP也都会打不开。之前我们团队测试的时候,就遇上过一次服务商提供的账号被封,所有已经安装的APP都打不开,那时候赶着要做内部测试,所有人都要重新安装,折腾了好久才弄好,而且超级签名很多都是按安装次数收费,装一次收一次钱,人多的话长期用成本真的扛不住,我觉得适合小范围的几个人测试用,人多了真的不划算。
后来我也用了TF签名,也就是苹果官方的TestFlight内测,这个真的是我用过最稳的非上架内测方式,因为是苹果官方推出的渠道,只要你的APP能过审核,基本上不会掉签,只要不主动删掉内测链接,就能一直用。安装流程也很简单,点了链接之后直接跳转到TestFlight应用,点击下载就能安装,信任之类的步骤都是系统自动处理好的,不需要用户手动折腾,真的很省心。但是也不是没有缺点,TF毕竟是官方渠道,还是需要过苹果的审核,审核虽然比AppStore松一点,但还是会卡,要是APP有一点点不合规的地方,就过不了审核,而且审核需要等时间,要是急着出包测新版本,根本来不及,之前我们就遇上过一次急着要给合作方演示新版本,提交TF之后等了好长时间都没出审核结果,最后还是临时做了个企业签名先用,才没耽误事。而且TF的安装名额也有限制,最多只能容纳对应数量的测试用户,要是测试人数多,还需要分批或者换别的方式,每次更新版本也要重新提交审核,虽然比AppStore快,但还是要等,不像企业签名,打包完签好就能直接发,马上就能用。
我还试过H5封装的签名,就是把已经做好的H5网页套个原生壳,做成APP的样子再签名安装,这种方式做起来很快,技术门槛也低,本来我们是要做一个临时的活动内测,想着省点事直接封装就能用,就试了一次,结果体验真的很差。整个APP流畅度远远不如原生包,调用手机的原生功能比如相机、定位的时候经常会卡半天,有时候半天都弹不出来,而且封装好的包也还是需要签名才能安装,本质上和其他签名包没区别,稳定性也不好,用了没多长时间就掉签了,后来还是重新做了原生包重新签名才搞定,我觉得也就适合真的临时用几天,测个简单的流程,长期用真的不行,体验太差了。
至于AppStore上架,这个大家都知道,正式发布的APP都会走这个渠道,只要能成功上架,用户直接从AppStore搜索下载就能用,完全不会有掉签的问题,也不需要折腾信任证书,是最稳定体验最好的方式。但是门槛真的很高,苹果的审核规则很严,很多内部测试的版本功能都没做完,还有很多不符合上架要求的内容,根本没法提交上架,就算是正式版本,改一点内容也要重新提交审核,排队等好长时间,磨的人没脾气,所以内测基本上不会用这个方式,只有正式发布给普通用户用的时候才会走上架流程,很多不符合上架要求的小众APP,根本没法走这个渠道,只能用各种签名方式分发。
这段时间踩了这么多坑,也摸出了一些让签名稳定流畅的方法,想要稳定一定不能贪便宜用那种价格极低的共享签名,那种虽然看起来划算,但是掉签频率真的太高,每次掉签折腾的时间成本远远不止差价。如果是小范围几个人的测试,追求安装方便,那就找靠谱的服务商做超级签名,不要找那种用黑号的便宜服务商,黑号容易被封,掉签也快,找正规服务商用正常申请的账号,稳定性会好很多。如果是人数不少的长期内测,最好就是自己申请正规的开发者账号,导出属于自己的P12证书,找平台做独立企业签名,证书只有自己用,只要不签违规的应用,基本上不会被苹果撤销,稳定性真的好很多,我现在用的就是这种方式,这么长时间都没出过掉签的问题,就算真的掉了,我自己有证书,自己就能重签,很快就能搞定,不用等着别人处理。要是你的APP本身合规,能过苹果审核,测试人数也符合要求,那一定要选TF签名,官方渠道就是稳,完全不用担惊受怕掉签,体验也很好,我现在只要版本迭代到相对稳定的阶段,都会提交到TF给大家用,只有开发中快速迭代的测试包才会用企业签名,省了很多麻烦。还有就是不管用哪种签名,最好都准备一个备用的分发渠道,万一主用的渠道掉签了,能直接用备用的顶上,不会耽误事,我之前就遇上过赶着给客户演示的时候掉签,站在外面等着补签,弄的特别尴尬,从那之后我就一直留着TF做备用,从来没再耽误过事。
用了这么长时间,也遇上过不少大大小小的问题,比如之前同时装了同一个APP两个不同签名的版本,结果两个都打不开,删了其中一个之后就恢复正常了,原来不同的证书会有冲突,所以尽量不要装同一个应用的多个签名版本。还有就是P12证书一定要自己保管好,不要随便传给别人,要是被别人拿去签了违规的应用,会连累你的证书也被苹果撤销,自己的安装包也会全部掉签,之前就听朋友遇上过这种事,好不容易整理好的测试版本全部用不了,折腾了好久才重新弄好。还有就是找签名服务商一定要找口碑好的,不要贪便宜找那种不知名的小服务商,我之前就遇上过交了长期的费用,结果没多长时间服务商联系不上了,掉签了都找不到人补,只能自认倒霉,重新找服务商又花了一份钱。其实不管用哪种签名,只要摸清楚规则,选对适合自己需求的方式,就能用的很稳定顺畅,那些乱七八糟的问题,其实大多都是贪便宜或者不熟悉规则踩的坑,踩过几次之后也就知道该怎么避开了。现在我这边的内测分发流程已经顺了很多,很少再出莫名其妙的问题,参与测试的伙伴装包也很少有搞不定的情况,这些都是一次次踩坑换回来的经验,对于普通测试用户来说,只要选对了方式,苹果签名用起来也没有那么麻烦。