作为一个自己折腾小工具APP的普通开发者兼测试用户,这段时间为了能让身边的朋友用上我做的APP,踩过了苹果签名大大小小几乎所有的坑,最开始接触签名的时候,第一个用的就是超级签名,没用多久就掉签,那时候慌得不行,到处问人超级签名掉签了怎么办,折腾到现在也算摸清楚了各种签名方式的脾性,今天就聊聊我真实的使用感受。
最开始找签名的时候,听圈内朋友说超级签名安装简单,不用电脑操作,就找了个小商家拿了体验额度,对方给了我一个网页链接,让我用自带的Safari浏览器打开,点一下安装按钮就能下载到手机上。我照着操作,等了十几秒桌面就出来了APP图标,结果一点开就弹出提示说无法验证应用,打不开,我那时候以为是包坏了,让商家重新发了一遍链接,重新下载还是打不开,后来搜了教程才知道,苹果对于非AppStore下载的APP,需要手动信任开发者证书才能打开。那时候我的手机刚更新完系统,按照旧教程找了半天描述文件都找不到,翻遍了设置里的每一个子菜单,从Apple ID查到屏幕使用时间,最后才在通用菜单的最底部找到VPN与设备管理的入口,点进去才看到对应我APP的开发者证书,点进去点信任,还要再弹一次确认框,确认完才能正常打开APP。那时候跟着我一起测试的十几个朋友,大半都卡在这里找不到入口,我一个个截图标注教程发过去,折腾到半夜才全部弄好,现在想起来都头疼。
刚开始用超级签名的时候体验确实不错,打开流畅,也没出什么问题,用了一段时间之后,某天早上打开APP突然就闪退后灰了图标,还是提示无法验证,我才知道这就是大家说的掉签。那时候我满脑子都是超级签名掉签了怎么办,赶紧去问商家,商家才和我说,超级签名用的是个人开发者账号,一个账号签了太多APP,其中有违规应用被苹果查到,整个账号就被封了,所有用这个账号签的APP全都掉签。解决办法只能是重新换一个账号签名,生成新的安装链接,让所有用户都重新下载安装。那时候有个测试用户存了快一个月的测试数据在APP里,没备份,重新安装之后数据全清空,懊恼了好久,我那时候也特别愧疚,才知道超级签名掉签之后,原来的应用根本没法恢复,只能重新装,数据全没,这个坑真的踩得太疼了。
后来商家和我说,如果我自己有开发者账号,自己导出P12证书给他签名,会稳定很多,因为我自己的账号只签我自己的APP,不会被别人的违规应用牵连。我听完就去申请了个人开发者账号,交了年费之后,按照教程生成证书,导出P12的时候又踩了坑。我那时候只知道导出证书,不知道还要把私钥一起导出来,导出的文件特别小,发给商家之后说我这个P12用不了,没有私钥签出来的包根本无法通过苹果验证。我又回去重新折腾,查了好多教程才知道,要在电脑的钥匙串访问里面,找到生成好的证书,展开之后能看到对应的私钥,要同时选中证书和私钥一起导出,才能得到能用的P12文件。那次折腾了快一下午才导出正确的P12,原来这里面还有这么多门道,没人说真的容易踩坑。用自己的P12做超级签名之后,确实稳定了很多,用了快两个月都没掉签,原来超级签名不稳定,大多都是商家把一个账号分给好多用户用,随便一个违规就全掉,自己拿P12自己用,真的稳定太多。
后来测试的人越来越多,超级签名的额度不够用,我就换了企业签名试试。企业签名用的是企业开发者账号,安装流程其实和超级签名差不多,也是发链接手机下载,然后信任证书,流程我已经熟了,这次没费什么劲就装好了。最开始贪便宜找了共享企业签名,就是很多个APP共用一个企业证书,价格便宜很多,结果没用一个星期就掉签了,半个月掉了三次,每次都要通知所有人重新弄,烦都烦死了。最尴尬的一次,我约了合作伙伴谈事情,当场要打开APP演示功能,结果点图标直接弹出无法验证,我站在那里脸都红了,最后只能打开网页版凑合用,回去之后我就换成了独立企业签名,还是用我自己的P12证书,一个企业账号只签我自己的APP,从那之后就很少掉签,几个月才掉一次,掉签之后解决也很简单,商家重新用我的P12签一遍,用户只需要重新信任一次证书就行,不用重新下载APP,数据也不会丢,比超级签名掉签处理起来方便太多。当然企业签名也有小问题,有时候手机升级系统之后,证书会失效,还是要重新去设置里信任一遍,偶尔放一晚上不用,第二天打开也会提示验证失败,总的来说比共享签名稳太多了。
再后来听人说TF签名是目前最稳定的,我就也试了试。TF签名其实就是把包放到苹果官方的TestFlight里面做测试,用户需要先在AppStore下载TestFlight,然后点开我的邀请链接,就能直接在TestFlight里面安装我的APP,因为是苹果官方的渠道,根本不需要自己信任证书,也不会轻易掉签。我第一次上传的时候,因为版本号填错了,被退回来三次,弄好之后审核过了,给用户发邀请,还是有不少用户不知道TestFlight是什么,我还要教他们怎么下载怎么安装,其实流程比信任证书简单太多,只是很多人没听过这个东西而已。用了TF签名之后,真的太省心了,我用了快半年都没掉过签,唯一的小问题就是测试包过一段时间会过期,需要重新上传一下,用户重新安装一次就好,过期之前都会提醒,也不麻烦,就是下载额度有限制,太大的包也不太好传,小范围测试真的太合适了,稳定到离谱,基本不用操心掉签的事。
我那时候赶进度,原生APP还没写完,先做了H5版,就试了试H5封装,就是把H5网页打包成iOS的安装包,再签名就能装到手机上。打包很简单,网上随便找个封装工具就能弄,签好名装上去之后体验真的太差了,滚动页面都卡,切出去再回来就要重新加载,原来输入的内容全没了,推送提醒根本收不到,我设置好的日程提醒到点根本不弹,好多测试用户用了两次就不想用了,不到一个星期我就换掉了。H5封装唯一的好处就是开发快,不用写原生代码,适合临时应急用几天,长期用体验真的太差,而且特别容易被苹果检测到,掉签掉的特别快,我那个封装包不到一个星期就掉了,确实不适合长期用。
等APP做稳定了,想正式放给更多人用,我就试着申请上架AppStore。上架真的比签名麻烦太多,要准备各种材料,第一次提交就被拒了,说我做的记账工具需要相关资质,我没有资质就只能砍掉了同步功能,改成本地记账重新提交,第二次又说我图标用了第三方素材侵权,又让我改图标,折腾了好几次才审核通过。上架之后确实方便,用户直接在AppStore搜就能下载,不用发链接,不用弄证书,也根本不会有掉签的问题,确实稳定,但是苹果的规则太多,动不动就发邮件提醒我改这改那,哪里不符合要求,我还要跟着调整,生怕哪里做错了被下架,我有个朋友的APP就是因为一个小问题直接被下架,所有用户都用不了,所以上架虽然稳定,但是约束太多,小开发者真的挺累的。
这段时间用下来,我也摸出来了稳定流畅的方法,其实根本没有完美的签名方式,选对适合自己的就好。如果只是几个熟人小范围测试,就自己申请开发者账号,导出自己的P12做超级签名,自己的号只签自己的包,不会被牵连,稳定又便宜。如果是几十上百人的测试,直接弄TF签名就好,苹果官方的渠道,几乎不会掉签,省却了好多掉签折腾的麻烦。如果是需要大范围分发,暂时不想上架AppStore,就一定要用自己的P12做独立企业签名,千万不要贪便宜用共享签名,共享签名掉签频率真的能把人搞疯,掉签掉误事的时候哭都来不及。我现在就是小范围测试用TF,正式版上架AppStore,少数定制需求用独立企业签名,自己握着P12,几乎很少遇到掉签的问题,就算掉了也能很快解决,比最开始到处找方法稳太多了。现在再有朋友问我超级签名掉签了怎么办,我都会把我踩过的这些坑告诉他们,找对方法,真的能省好多不必要的麻烦。