我自己平时喜欢捣鼓点小工具,前段时间和圈子里的朋友一起做了个整理同好内容的小应用,本来想着大家一起用方便,没想到第一步卡在了苹果这边,没法直接装到手机上,这才慢慢摸清楚了各种各样的苹果签名门道,折腾下来,也算是踩了不少坑,有了不少自己的真实感受。
一开始我想着,要不直接申请个开发者账号上架AppStore算了,正规渠道肯定最稳,交了年费按照要求一步步填信息提交审核,结果第一次就被打回来了,说我应用里加的交流版块属于未申报的社交功能,不符合规范要求修改。我改完再提交,又说界面里有第三方内容的链接涉及违规,再次打回。来来回回折腾了好久,最后我干脆把交流版块整个删掉,只留核心功能,才终于通过审核,不过那时候我已经等不及先找了签名给大家用上,所以也算体验过上架后的感受,确实是体验最好的,用户打开App Store直接搜就能下载,不用弄任何额外操作,也不会出现打不开闪退的情况,只要应用不违规就一直能用,坏处就是审核太严,一点不合规的地方都不行,折腾起来太磨人,对于我们这种个人做的小工具来说,门槛真的不低,不是什么内容都能上去。
一开始没上架的时候,我先找了企业签名,那时候什么都不懂,看网上说企业签名适合内测,就随便找了个商家做了。拿到安装链接之后,我点开来按照提示点安装,手机桌面上很快就出现了应用图标,等着下载安装完成,我点开来直接弹了个提示说未受信任的开发者,根本进不去。我那时候一脸懵,不知道哪里出问题,赶紧去查教程,才知道还要手动信任证书。我那时候手机刚升级完系统,记得原来描述文件在通用的最下面,结果找了半天都找不到,翻遍了设置的每一个子菜单都没找到,差点以为是安装包出了问题,后来才知道新版本系统改了位置,藏在VPN管理的那个分类下面,再后来我发现其实直接在设置顶部搜索框搜描述文件就能直接进去,省了好多事,那也是第一次折腾信任证书,折腾了半天才弄好。进去之后用着其实还行,挺流畅的,那时候我也不懂什么P12证书,后来慢慢懂了,企业签名其实就是用企业级开发者账号的P12证书给应用签名,P12就是存证书信息的文件,相当于签名的钥匙,我后来自己试着导出过个人账号的P12,那时候想自己弄签名,导出的时候要设置密码,我没注意输入法切成了全角,输密码的时候一直提示不对,折腾了好久,后来换了半角输入法重新输才对,所以现在我每次导出P12都会特意检查输入法,就怕再出这种问题。P12这个东西很重要,要是丢了或者被别人拿走,就能随便用你的证书签名,所以一定要存在安全的地方,我现在存在了好几个不同的云盘里,就怕误删。
好景不长,企业签名用了没多长时间就出问题了,那天我打开应用直接闪退,根本进不去,圈子里好多朋友也说用不了,我赶紧去找商家,商家说我的证书掉签了,现在做的是共享签名,好多应用共用一个证书,被苹果查到了所以封了,要等补签。我那时候急得不行,因为那天刚好圈子里有活动,大家都要用到这个应用,结果等了好久都没补上,直到第二天才弄好,好多人都嫌麻烦不用了。掉签之后我也查了好多解决办法,其实苹果签名掉签基本都是证书被苹果官方封禁了,不管什么签名都有可能掉,只是概率不一样,掉签之后最简单的解决办法就是重新签名之后再安装一次,要是自己有证书的话很快就能弄好,要是找第三方商家做的共享签名,就要等商家排期补签,慢的时候要等好久,要是证书彻底没法用了,就要换个新的签名,所以我那次之后就下定决心换个稳定点的签名方式,后来就接触到了超级签名,也知道ios超级签名支持H5封装的包,刚好我之前本来就是从H5改过来的,很符合我的需求。
超级签名的安装流程比企业签名方便很多,我用的那个服务商支持H5跳转安装,直接打开H5链接就能操作,不用下载描述文件再导来导去,打开链接之后会自动读取我的设备信息,自动签好名,点一下安装就能直接出现在桌面上。装好之后我第一次打开,还是弹了未信任的提示,所以还是要走一遍信任证书的流程,和企业签名的操作差不多,找到描述文件点信任就能用了。超级签名用下来确实比共享企业签名稳定太多,我那时候是小范围给圈子里的朋友用,刚好符合超级签名的限制,而且我用自己的个人开发者账号导出了P12给服务商,用自己的证书签名,控制权完全在我自己手里,不用担心服务商随便乱用我的证书,也不用担心别人的应用影响我的证书,掉签的概率低了很多。当然超级签名也不是完全不会掉签,我后来也掉过一次,那时候圈子里有人把链接转到了别的地方,引来好多陌生人安装,超出了证书的限制,被苹果查到了所以就掉了。那次掉签我自己就能处理,导出新的描述文件重新签名,一会儿就弄好了,朋友重新安装之后就能用,原来存在本地的数据也没丢,比之前等企业签名补签省心太多。
后来圈子里的人慢慢多了,超级签名的限制不够用了,我就试着弄了TF签名,TF签名其实就是上传到苹果官方的测试平台TestFlight,用户通过邀请链接下载。我弄的时候才知道,TF签名其实是官方允许的测试方式,所以稳定性特别好,只要应用不违规,基本不会掉签。安装流程要麻烦一点,用户先要在App Store下载TestFlight这个应用,然后打开我给的邀请链接,跳转到TestFlight里面才能下载我的应用,而且不用额外信任证书,因为本身就是官方平台的应用,所以装好直接就能打开,不会有未信任的提示。用下来确实稳定,我用了挺久都没出问题,就是下载的时候麻烦,好多新朋友不会操作,每次都要我一步步教,而且有时候网络不好,连不上苹果的服务器,刷半天都出不来下载按钮,急得不行,还有就是TF有使用期限,到期之后要重新上传,我有一次忘了到期时间,好多人用不了才想起来,耽误了不少事。
其实我一开始做的就是H5页面,后来想做成独立APP的样子,才做了H5封装,就是把H5网页打包成苹果能安装的ipa包,然后再签名。刚好ios超级签名支持H5封装完的包,直接就能上传签名,很方便。H5封装的好处就是改内容不用重新发安装包,直接改网页就能更新,省了好多签名更新的麻烦,坏处就是体验不如原生应用,我第一次封装完,调用手机相册的时候一直弹不出来权限申请,折腾了好久才发现是封装的时候没配置对应的权限,改了配置重新打包签名才好,而且滑动跳转的时候偶尔会有卡顿,不如原生流畅,对于要求不高的小工具来说,其实完全够用。
折腾这么久,我也摸出了不少让签名稳定流畅的小门道,其实选对渠道比什么都重要,千万不要贪便宜用那种不知名商家的共享企业签名,看着成本低,其实掉签掉到你怀疑人生,每次补签都要折腾好久,用户体验特别差。如果是小范围自己用,用自己申请的开发者账号导出P12,做超级签名就很合适,成本不高,控制权在自己手里,只要控制好使用的人数,不要随便外传链接,基本很少掉签,而且ios超级签名支持H5封装的包,对于做H5工具的人来说特别友好,安装也方便,直接H5跳转就能装,不用太多额外操作。如果人数多一点,就选TF签名,官方平台,稳定性没得说,只要接受下载麻烦一点,其实体验很好,基本不会出掉签的问题。要是能满足AppStore上架的要求,那肯定上架是最好的,用户体验最好,也不用操心签名的问题,就是审核门槛太高,折腾起来太费时间,个人小应用很难上去。
我之前还遇到过一个小问题,就是信任证书之后还是打不开应用,提示证书无效,那时候折腾了好久,后来才知道是安装的时候描述文件下载不全,删掉重新安装一遍就好了,还有就是手机时间不对也会导致证书验证不通过,调整对时间就好了,这些小坑都是我一步步踩过来的。现在我一直用着自己P12做的超级签名,用了挺久都没掉过,流畅稳定,圈子里的朋友用着也都说方便,不用折腾太多步骤,偶尔有新人不会弄信任证书,教一遍也就会了,比之前用共享企业签名的时候省心太多。之前还有朋友问我有没有什么百分百不掉签的方法,其实我用了这么久也没碰到过,苹果的政策一直在变,只能说选对适合自己的方式,做好该做的防护,把掉签的概率降到最低,像我这样小范围用,自己拿P12签超级签名,就已经足够稳定了,完全满足我们这群同好的使用需求。