我自己捣鼓了一个给身边咖啡店主朋友用的小工具APP,还在不断调整功能,暂时不想正式上架,这大半年来为了让朋友们能正常用上测试版,我把各种苹果签名都试了个遍,踩了一堆坑,也摸出了不少实用的经验,今天就说说我的真实感受。最开始我什么都不懂,听网友说H5封装最快,免费就能弄,我就找了个在线平台自己捣鼓,按着步骤填好信息上传包,不到半小时就出了安装链接。我兴冲冲点了下载,结果安装完根本打不开,屏幕上只弹出来“不受信任的开发者”,我那时候完全懵,以为是包出错了,删了重下三次,还是一样的提示,后来翻了好久攻略才找到信任证书的入口,现在iOS的入口藏得真深,要打开设置,点通用,往下滑找到VPN与设备管理,在那个企业级应用分类里找到对应的证书条目,点一下蓝色的信任按钮,确认之后才能正常打开APP。我那次为了找这个入口花了快二十分钟,现在想想都觉得好笑,那时候真的是纯小白。H5封装用起来的感受其实很一般,本质就是给网页套了个壳,打开慢不说,切换页面还经常卡顿,录入库存的时候偶尔还会闪退,而且才用了不到一个星期,就彻底打不开了,提示证书失效,也就是大家说的掉签。我第一次遇到掉签慌得不行,赶紧去查怎么解决,才知道原来苹果签名分好多种,不同签名掉签后的解决办法也不一样,像我这个免费H5封装,掉签了基本只能重新封装,旧链接直接就废了,还要重新发给所有用户,麻烦得不行。
后来我听人说超级签名稳,就找了个签名商弄超级签名,这时候才第一次接触到P12证书,签名商说如果我自己有P12,用自己的证书签名会更稳定,不容易掉。我就按着教程去苹果开发者后台弄,先是生成证书签名请求,然后在开发者中心创建开发者证书,下载之后导出成P12格式,导出的时候要设置密码,我第一次弄完把密码忘了,导入的时候试了好几个常用密码都不对,只能重新吊销证书再生成一遍,折腾了一上午才弄好。P12其实就是签名用的身份凭证,相当于你这个证书的钥匙,只有拿到这个文件才能给你的APP签名,所以弄完之后一定要备份好,我后来换电脑差点把P12弄丢,那之后就一直存在云盘和本地U盘双备份,密码也记在备忘录里,再也没出过问题。超级签名的安装流程其实和H5封装差不多,就是要先提取每台要安装的设备的UDID,添加到开发者后台之后才能打包签名,我最开始手动输UDID,还输错过一个数字,结果朋友那边装了一直打不开,折腾半天才发现错了一位,后来就学乖了用在线工具一键提取,省了好多事。安装完之后同样要走一遍信任证书的流程,和之前一样,去设备管理里点信任就能打开。超级签名用起来的感受真的比H5封装好太多,是原生APP的流畅度,打开秒进,录入数据也没有卡顿闪退,前一个半月真的一点问题都没有,我那时候还觉得超级签名就是神,结果后来我加了快九十个设备,某天早上起来突然就打不开了,点图标直接闪退,就是掉签了。找签名商问了才知道,原来我用的那个超级签名是签名商把一个个人开发者账号分给好多客户用,设备总数早就超了苹果的一百台限制,被苹果检测到封了证书,所以才掉签。超级签名掉签之后,解决办法基本就是重新签名,如果是自己的账号证书,只是描述文件失效,那换个描述文件用原来的P12重新签就行,如果是证书被封了,那就只能重新生成证书再签,弄好之后发新的安装包链接,所有用户都要重新下载,还是挺麻烦的。
后来我想做更大范围的测试,要给几百个用户用,超级签名的设备限制不够用,我就换成了企业签名。企业签名我一开始图便宜,选了几十块钱一个月的共享企业签名,结果才三天就掉签了,找签名商补签完,不到五天又掉了,那段时间我天天接到朋友说APP打不开,烦死了,后来才知道共享企业签名就是好多商家共用一张证书,只要其中一个APP违规被苹果检测到,整份证书都会被封,所有签过的APP都跟着掉签,我那次就是同证书上有个违规APP被查了,连带我的小工具也遭殃。后来我加钱换了独立企业签名,用我自己之前弄好的P12证书,只有我自己用这张证书,不会和别人共享,换完之后真的稳太多了。企业签名的安装流程其实和之前的差不多,也是发链接下载,安装完去设置里信任企业证书就能用,独立企业签名我用到现在四个多月了,只出过一次问题,还是我自己更新包的时候弄错了描述文件,重新签一下十分钟就弄好了,再也没无缘无故掉过签,打开也一直很流畅,体验真的好很多。企业签名掉签之后的解决办法也要分情况,共享签一般都可以免费补签,就是要等签名商安排,补完换链接重新下,独立签一般都是包稳定,掉了也会快速给你补签,用自己P12的话,很多时候只是描述文件失效,重新生成描述文件就能签,不用换证书,速度很快。
再后来我把功能改得差不多了,听朋友说TF签名更稳定,还是苹果官方的,我就试着弄了TF签名。TF签名就是把测试包上传到苹果官方的TestFlight平台,审核通过之后用户就能直接在TestFlight里下载安装,我那时候审核不到一天就过了,真的很快,而且最方便的是,TF是苹果官方认可的测试渠道,下载完直接就能打开,根本不用去设置里手动信任证书,对用户太友好了。TF签名用了这么久,我从来没遇到过掉签的情况,真的比任何第三方签名都稳,打开速度和流畅度和正式上架的APP完全没差,唯一的限制就是测试期只有九十天,每个测试链接最多只能加一千个测试用户,要是用户多了就多建几个链接,到期了重新上传一下就行,也不算麻烦,要是你只是做内测,TF签名真的是我用过最省心的选择。
等APP所有功能都调好之后,我就申请上架AppStore了,上架的过程其实挺磨人的,苹果审核真的很严,我第一次被拒说我功能有重复的内容,第二次被拒说我隐私政策写得不清楚,前前后后改了三次,花了快两周才通过审核。上架之后真的是最省心的,用户直接在AppStore搜索就能下载,不用弄任何签名,不用点信任,也永远不会掉签,打开也最流畅,不会有任何问题,只要你不违规,账号正常,一直都能用,就是上架的门槛和审核成本比较高,适合已经做好的正式APP,不适合内测阶段的测试包。
折腾了这么久,我也踩了无数坑,慢慢也摸出了能让ios签名稳定不掉签的门道,其实最重要的就是两点,第一点就是尽量用自己独有的P12证书,不要和别人共享证书,我之前掉签百分之八十都是因为共用证书被牵连,自己的P12只有自己用,只要你自己的APP不违规,苹果根本不会随便封你,稳定性高太多,弄P12虽然麻烦一点,要自己去开发者后台申请,导出的时候要存好密码和备份,但是带来的稳定体验真的值得这点麻烦。第二点就是要根据自己的使用场景选合适的签名渠道,只有几个人十几个人内测,选不共享账号的超级签名就够,只要控制好设备数量不超限制,稳得很;几百人上千人内测,想要无限安装,就用独立企业签名,用自己的P12,几个月不掉签很正常;想要最省心的内测,直接选TF签名,苹果官方背书,根本不会掉签,除了九十天到期需要重新传,没有别的毛病;H5封装只适合临时用用,长期用真的不推荐,体验差掉签快;正式做好的APP,能上架AppStore就尽量上架,上架之后一劳永逸,再也不用操心签名掉签的问题。我之前还遇到过不少小问题,比如信任证书的时候提示无法验证,一开始以为是证书坏了,删了重下好几次,后来才发现就是网不好,苹果验证不到证书服务器,换个网重启一下手机就好了;还有导出P12的时候一定要记得备份,我之前弄丢过一次,重新弄花了快大半天,后来双备份之后就再也没出过这个问题;掉签之后也不用慌,先看看是证书被封还是描述文件失效,描述文件失效的话不用换证书,重新生成一个就能签,很快就能解决,要是证书被封,重新生成一个P12重新签就好了,大部分签名商都会协助处理,只要选对了渠道,真的很少会遇到频繁掉签的问题。我现在给朋友们用的测试版就是独立企业签名加自己的P12,四个多月了一次都没掉过,大家用着都很稳定,流畅度和正式上架的没差,再也不用天天盯着补签了,省心太多。