我自己捣鼓了一个本地加密笔记的小APP,就是用来存点私人的内容,不联网也不对外推广,做出来之后才发现苹果手机没办法直接安装IPA包,只能通过签名才能安装测试,就这样误打误撞接触了各种苹果签名,前前后后踩了无数坑,用了大半年,各种签名方式都试了个遍,刚好现在用的企业签名服务商带苹果企业签名统计功能,也有不少真实的感受想说说。
第一次接触签名是找了个免费的企业签名试手,那时候什么都不懂,拿到安装链接之后,按照卖家说的,用Safari打开链接,点页面上的安装按钮,等了几十秒,APP图标出现在手机桌面上,我点进去才弹出来提示,说这是未受信任的开发者开发的APP,没办法打开。那时候我才知道还要手动信任证书,可我翻了半天设置都没找到入口,原来旧版本iOS的信任入口在通用的描述文件里,我用的新系统早就改了位置,折腾了快十分钟,才在网上查到路径,现在新的iOS系统,要打开设置,点通用,往下拉找到VPN与设备管理,进去之后就能看到未信任的描述文件,找到对应签名的那一条,点进去之后点蓝色的信任按钮,再弹出来一次确认,退出来就能打开APP了。那时候第一次装上自己做的APP,还挺开心的,谁知道才第三天,打开APP就变成了灰色,点了半天没反应,提示未验证应用,问了卖家才知道,这就是掉签了。
说到掉签,我前前后后遇到过不下十次,也总结出来不同签名掉签后的解决办法。如果是企业签名掉签,先别着急删掉手机里原来的APP,先找服务商问清楚,是换了证书还是只是证书临时出问题,如果只是补签不换证书,只需要重新安装一次描述文件,不用重新安装整个APP,里面的数据也不会丢;如果是换了新证书,那一定要记得先把APP里的重要数据备份出来,再删掉旧APP重装新的,我第一次掉签的时候不懂这些,直接删了重装,存在里面的几十条笔记全没了,心疼了好久。如果是超级签名掉签,一般要么是绑定的设备满了,要么是开发者账号被封了,只需要让服务商删掉不用的旧设备绑定,或者换个新的账号重新安装就行,数据同样记得提前备份。TF签名其实很少掉签,大部分都是测试链接到期了,重新上传包拿到新链接再安装就好。
后来慢慢摸懂了,我自己买了独立证书,也就接触到了P12证书的使用。一开始我不懂P12到底是什么,服务商说把P12文件导给我自己保管,我还嫌麻烦,后来才知道P12就是开发者从钥匙串里导出来的证书文件,里面包含了证书的私钥,只有拿到P12才能用这个证书签名,自己拿着P12,就意味着这个证书完全属于你,不会被服务商偷偷拿给别人用。我第一次导出P12的时候也出了错,那时候按照教程操作,选导出的时候选错了格式,导出来的文件不对,上传的时候一直提示验证失败,折腾了一下午,才发现是导出的时候没选P12格式,密码也没设对,重新导出之后才顺利上传。从那之后我就一直自己保管P12,换服务商的时候也能直接拿出来用,不用重新做证书,方便很多。之前我还把P12随便借给朋友用,结果他拿我的证书签了一个违规的APP,没多久我的证书也被苹果一起吊销了,害我重新花钱做了新证书,从那之后我再也不会随便把P12给别人了,这个坑踩的太印象深刻。
这大半年我把市面上常见的几种签名都试了个遍,也有挺真实的感受。最先试完免费企业签之后,我听别人说超级签名稳定,就花钱弄了一个超级签名。超级签名是用个人开发者账号做的,按下载次数收费,一个设备算一次,我就是几个手机测试,所以一开始花的钱也不多。超级签名安装流程其实和企业签差不多,也是点链接安装,完了也要信任证书,用了半个多月确实没掉,那时候我还觉得超级签名真的不错,后来我换了新的苹果手机,想要重新安装,才发现那个个人开发者账号的设备名额已经满了,删掉两个旧设备之后才装上,又过了一个多月,那个账号被苹果封了,所有装过的APP全都打不开,只能全部重新装,又丢了一次数据,后来我才知道,超级签名适合小范围三五个人长期测试,人多了或者经常换设备成本就很高,而且遇到不靠谱的渠道用黑号,说封就封,根本没地方说理。
之后我还是回来用企业签名,这次我学乖了,不贪便宜找那种几块钱十几块钱一个月的共享签名,直接找了正规的服务商做独立企业签名,还带苹果企业签名统计功能,用了这么久真的挺香。企业签名用的是苹果的企业开发者账号,不限设备数量,按月收费,比超级签名便宜很多,适合长期用。之前我用的那种共享签名,就是几十上百个APP挤在一个证书里,苹果很容易检测到异常吊销证书,我之前用的十九块钱一个月的共享签,三天掉了四次,天天重装,烦的我直接退款了。现在用的独立签名,一个证书只签我这一个APP,我自己拿着P12,服务商也不会偷偷给别人用,大半年了就掉过一次,还是因为我不小心把安装链接发到了公共博客上,几天来了几百个陌生下载,苹果检测到流量异常才吊销的,掉签之后服务商从统计后台看到激活量骤降,第一时间就通知我了,很快就给补好了,从那之后我都是把链接私密分享,再也没出过问题。这个统计功能对我这种做测试的来说真的挺实用,能随时看到每天有多少设备安装,多少人正常打开使用,有没有异常的下载量,不用像之前那样,别人说用不了了我才知道掉签了。
后来我也试过TF签名,也就是TestFlight签名,这是苹果官方的测试渠道,所以基本不会掉签,我用了三个多月,一次都没掉过,确实稳定。TF签名的流程和别的不一样,要先把IPA包上传到苹果的TestFlight平台,过审核之后拿到测试链接,用户点链接会自动跳转到TestFlightAPP,再下载安装就能用,不用手动信任证书,确实省心。但是不好的地方也很明显,首先就是要过苹果的审核,虽然比AppStore的松,但还是会拒,我那个APP有本地导出文件的功能,第一次提交就被拒了,改了三次才通过,审核花了快一周。其次就是每个测试链接最多只能用三个月,到期就要重新上传,而且用户安装的时候必须先下载TestFlight这个官方APP,很多身边的朋友帮我测试,都嫌多装一个APP麻烦,还有就是苹果的服务器在境外,有时候下载速度特别慢,等半天都加载不出来,体验不算太好。
我还试过H5封装,当时听别人说H5封装简单,把网页打包成IPA就能用,我这个APP本来就是套壳本地网页,所以想着试试,结果封装出来之后体验特别差,原生的调用存储、导出文件的功能根本用不了,打开APP就跟打开网页一样,加载半天还卡,而且H5封装完也还是要签名,该掉签还是掉签,等于多了一道工序,没解决任何问题,我用了一天就换掉了,不太适合需要原生功能的APP。
最后我也试过AppStore上架,能上架肯定是最好的,上架之后所有用户都能直接搜索下载,不用弄任何证书,也永远不会掉签,体验是最好的。但是上架的门槛真的太高了,首先要交年费,然后还要过苹果严格的审核,我前后提交了四次,三次被拒,第一次说我隐私政策不清晰,第二次说我功能重复,第三次说我加密存储不符合规范,第四次才勉强过,前后花了快三周,折腾的我不行,最后因为我那个APP的加密功能还是不符合苹果的要求,我干脆直接撤下来了,没有留在AppStore,对我们这种个人做小工具测试的来说,上架真的太折腾了,很多时候就算你想上也上不去。
踩了这么多坑,我也总结出来了怎么才能用的稳定流畅,首先就是要看自己的使用场景,如果只是小范围几个人测试,能接受审核等待,那选TF签名最稳定,官方渠道基本不会出问题;如果人数不多,不想等审核,那选靠谱的超级签名也可以,尽量别找用黑号的小渠道;如果是长期用,人数多,没法上架也不想等审核,那就选独立企业签名,一定要自己保管P12证书,别贪便宜用共享签,找带统计功能的服务商,能第一时间发现掉签,也能监控安装情况,平时不要把安装链接发到公共平台,避免大量陌生下载导致苹果检测吊销证书,只要做到这几点,基本就能稳定用很久,不会天天折腾掉签重装。
我现在用这个独立企业签名已经快八个月了,除了那次自己乱发链接导致的掉签,再也没出过其他问题,每天打开用都很流畅,也不用折腾各种设置,对我这种个人开发者做测试来说,已经足够好用了。