我自己做内部工具开发,平时大多是小范围测试使用,一开始总想着能直接上架AppStore,省去各种签名的麻烦,没想到前前后后提交了好几次,都因为功能不符合平台规范被打了回来,找了不少帮忙上架的渠道也没能通过,只能转而找各种苹果签名方案自己折腾,这大半年踩了不少坑,也摸出了不少实用的经验。
最早听人说H5封装最便宜,操作也简单,就找了个渠道做,安装流程其实不难,就是给个网页链接,点一下就能开始下载,下载完回到桌面,点图标却直接弹了提示说打不开,提示不受信任的开发者,那时候我完全不懂这些,找客服问了半天才知道要去手动信任证书。我那时候用的新系统,找这个入口找了半天,原来在设置通用的最下面,藏得很深,找到对应的企业级应用之后,点一下信任按钮确认就能打开了。那时候我还开了手机的描述文件屏蔽功能,找了整整一下午都没看到证书的影子,最后还是还原了手机设置才出来,折腾得我一身汗。用了没几天H5封装的包就打不开了,而且本身体验也很差,很多原生功能调用不了,滑动跳转都卡得厉害,只能放弃这个方案。
后来慢慢了解,才知道苹果签名离不开证书,P12就是导出的带私钥的开发者证书文件,很多靠谱的签名都需要用到这个。我第一次弄P12的时候,完全不懂流程,按照网上的教程弄完导出,发给服务商之后,人家说我的证书无效,找不到私钥,我回去翻教程才知道,导出的时候要选中包含私钥的选项,我当时没勾,重新导出折腾了好久,后来又忘了导出的时候设了密码,没告诉服务商,导致签名一直失败,又折腾了大半天,才弄好能用的P12。现在用熟了也就觉得不难了,登陆开发者后台弄好证书,导入钥匙串之后导出选对选项,记好密码一起发给服务商就行,用自己的P12好处真的很多,用过之后就再也不想用别人提供的共用证书了。
试过H5之后,我又听人说超级签名好用,安装完不用手动信任,直接就能打开,就找了渠道做。超级签名安装确实方便,点链接下好直接开,不用跑去设置里面找信任,一开始用着感受确实不错,没出过什么问题,后来用了没多久,突然所有设备上的app都打不开了,找服务商才说,做签名的个人开发者账号被封了,所以全掉了,要重新补签,所有设备都得重新下载,折腾了好久,而且超级签名按设备收费,我们这边测试设备不少,算下来成本挺高的,只适合小范围少数人测试用,人多了真的扛不住,长期用下来压力很大。
后来又试了TF签名,这个是苹果官方的测试渠道,我当时做对外小范围测试,想着官方的肯定稳定,就弄了。上传包之后也要等审核,虽然比AppStore松,但还是被拒了一次,调整了内容之后才过,然后给测试用户发邀请链接,用户要先下载TestFlight才能再装我的app,不少不太熟悉手机操作的测试人员,折腾半天都不会弄,还要我一步一步教,挺麻烦的。用下来TF确实稳定,只要不违规,几乎不会掉,但是有不少限制,包大了传不上去,测试人数也有限制,后来我的工具加了不少离线内容,包变大了,就没法再用TF了,只能换别的方案继续试。
这也是我现在一直在用的企业签名,这次找的是能做批量企业签名生成的服务商,因为我每周都要发好几个不同的内测版本给不同的测试组,需要批量弄签名,能省不少时间。最早我图便宜,弄了共享的企业签名,就是很多开发者共用一个企业证书,价格很低,结果用了没几天就开始掉签,隔三差五就掉一次,每次掉了都要重新发链接让大家重新装,有时候刚把链接发出去,第二天就掉了,测试的同事怨声载道,我也天天忙着处理掉签的问题,啥别的事都干不了。最尴尬的一次是要给客户做现场演示,前一天晚上用着还好好的,第二天到了现场,客户手机上的app全打不开了,服务商那天又联系不上,差点把项目搞砸,从那之后我才知道,稳定比价格重要多了,省的那点钱不够折腾的。后来听人说,要稳定就得用独立证书,最好是用自己的P12,我就换成了独立企业签名,用自己之前弄好的P12,找服务商做批量企业签名生成,每次要发新版本,把包和P12发过去,没多久就能批量生成好所有链接,直接转发到各个测试群就行。用了这么久,真的稳定太多,很少掉签,就算偶尔掉了,服务商也能很快处理补签,不会耽误事。其实原理也很简单,共享证书是好多人共用,只要其中有一个人的app违规,整个证书都会被封,所有人的签名都会掉,而独立证书只有你自己用,别人的包不会影响到你,用自己的P12更是把证书握在自己手里,就算服务商出问题,你也可以拿着P12去别的地方签名,不会受制于人,这是我觉得企业签名最稳定靠谱的方法,试过之后就再也没换过。
掉签后的解决办法,我踩了这么多坑,也总结了不少实用的经验,一般掉签之后,首先要联系服务商问清楚情况,如果是共享证书掉签,我现在基本不会再补签了,直接换稳定的独立证书,长久来看更划算,也省得天天掉天天折腾。如果是独立证书掉签,一般都是证书出了点小问题,服务商会很快给你补签,重新发链接就能下载,要是不想重新下载丢失原来的数据,也可以用一些续签工具,在手机上点一下就能完成续签,不用重新安装,数据也能保留,我试过很多次,大部分时候都能用,偶尔工具不稳定,再重新下载也不迟。还有就是如果证书本身过期了,就要重新去开发者后台生成新的证书,导出新的P12重新签名,这个我也遇到过,自己忘了证书到期时间,签名一直失败,服务商提醒之后才想起来,更新完就好了,都是不难解决的小问题。
我这么多签名都用过,最大的感受就是一分钱一分货,便宜的渠道大多坑很多,有的报价特别低,说稳定不掉签,付了钱没几天就联系不上人了,掉签了都找不到地方补,有的用黑号做签名,没几天就被封,全掉了,找谁说理都没用。所以找渠道一定要找正规靠谱的,不要只看价格,便宜没好货这句话在这个行业真的挺对的。然后说各个签名的适用情况,AppStore上架当然是最好的,用户下载方便,也最稳定,只要能过审肯定优先上架,要是过不了审再考虑别的方案。TF签名是官方的,稳定性仅次于上架,只要能满足审核和大小人数要求,用着也很舒服,就是安装对用户来说多了一步,有点麻烦。超级签名适合小团队少数人测试用,安装方便,不用折腾,人多了成本太高不划算。企业签名适合人数多,过不了审,包也大的情况,选对独立证书和自己的P12,稳定性完全够用,批量生成版本也方便,适合经常发内测版的开发者。H5封装只适合临时用几天的简单网页套壳,功能限制太多,体验太差,不推荐长期用。
关于信任证书的流程,我遇到很多第一次用的用户都找不到入口,新系统把这个入口藏得很深,一般都是装完app之后,打开设置,找到通用,拉到最下方找到VPN与设备管理,然后就能看到企业级分类下对应的证书,点进去选信任就能正常打开了,如果找不到的话,一般都是开了描述文件屏蔽,关掉之后重启手机就能出来,这个小问题我遇到太多次,现在都会提前给用户准备好简易教程,省得大家找不到麻烦。这段时间用下来,稳定的独立企业签名配合批量生成服务,真的帮我省了太多时间,不用天天盯着掉签的问题,也能安心做开发测试,总算不用再踩之前的那些坑了。