我最早接触区块链相关的小工具和测试应用的时候,因为这类应用大多还在快速迭代,或是因为一些规则原因没法直接上架AppStore,所以才开始跟各种各样的苹果签名打交道。最开始我什么都不懂,踩了数不清的坑,用了大半年时间,市面上能见到的签名类型我几乎都试过,才有了现在相对稳定的使用习惯,说起来都是实打实的亲身感受。
最开始第一次拿签名包,是一个做区块链开发的朋友给我发了一个网页链接,告诉我要用苹果自带的Safari打开,不能用第三方浏览器,不然没法下载描述文件。我照着做,点了网页上的安装按钮,屏幕上立刻跳出是否允许安装描述文件的提示,我点了同意,退回到主屏幕就看到应用图标在慢慢加载下载,等下载完成我兴冲冲点进去,结果直接弹出提示说未受信任的开发者,应用直接退了出来,根本打不开。那时候我完全懵了,赶紧去问朋友,才知道这是苹果的默认规则,所有未上架的签名应用都需要手动信任证书才能打开。朋友一步步教我,打开手机设置,找到通用,往下翻找到设备管理,不同版本iOS路径还不太一样,我那时候用旧系统是直接在通用里就能找到,换了新手机之后路径改成了VPN与设备管理里面,找起来还要多拐一步。进去之后就能看到对应开发者的描述文件,点进去之后点信任按钮,还要再确认一次授权,做完这一步再退出来点应用,就能正常打开了。我那时候还闹过笑话,一次性装了两个不同开发者的签名应用,结果信任错了描述文件,折腾了半个多小时还是打不开,后来重新核对了开发者名称才弄对,现在想想都觉得好笑。
用的时间久了,自然碰到过很多次掉签的问题,最开始我碰到掉签就是应用点开闪一下就退出去,或是直接提示无法验证应用,根本进不去界面。那时候不知道怎么解决,只会慌慌张张找给我签名的商家或是开发者,次数多了也就摸出了解决的门道。一般来说,碰到掉签我都会先退出应用,关掉后台重启一下手机,有时候只是系统缓存出了问题,重启之后就能正常打开了。如果重启之后还是不行,那就是真的掉签了,不同类型的签名解决办法也不一样,企业签名和超级签名掉签之后,一般都是服务商重新做签名发新的安装链接,删掉旧应用重新安装就好,只要应用数据是存在云端的,重新登录账号就能找回,要是存在本地就很麻烦,我之前就吃过一次亏,本地存的助记词没备份,掉签重下之后数据全没了,急得我到处想办法找了好久才找回来,从那之后我用任何未上架的应用,都会把数据同步到云端,再也不敢把重要数据存在本地。
说到P12证书,我之前自己折腾签名的时候好好研究过,也踩过不少坑。其实不管哪一种苹果签名,本质上都是用开发者账号出的P12证书给应用包签名,拿到苹果的授权才能安装,所以P12证书相当于开发者的身份凭证,使用的时候有很多要注意的地方。我最早自己注册了开发者账号,想导出P12自己签名用,结果第一次导出的时候没记对密码,后来再导入的时候一直提示证书无效,折腾了大半天只能重新生成证书重新导出。还有一次朋友让我帮忙签名,给我发了他的P12,我导入一直报错,后来才知道他导出的时候选错了格式,在钥匙串导出的时候必须选对交换格式,不然导出来的文件根本用不了。还有最重要的一点,P12证书不能随便发给不认识的人,我身边有朋友把自己的P12给了陌生的签名商家,结果商家拿他的证书给很多违规应用签名,没多久整个开发者账号就被苹果封了,白花了注册账号的钱,还找不回来,所以自己的P12一定要保管好,不能随便外泄,如果用服务商的P12,也一定要找靠谱正规的渠道,不然很容易出问题。
这么久下来,超级签名、企业签名、TF签名、H5封装还有AppStore上架我都试过,每个都有不一样的感受,也摸出了怎么选才能稳定流畅。最早我用的是共享企业签名,那时候不懂,觉得门槛低,什么应用都能签,拿到就能装,结果用了没多久就开始频繁掉签,有时候一天能掉好几次,打开应用发现用不了是常有的事,出门在外要用钱包的时候打不开,急得我满头大汗。后来才知道,共享企业签名是很多个不同开发者的应用共用同一个企业证书,只要其中有一个应用违规,整个证书都会被苹果封掉,所有签过的应用都会掉签,所以才这么不稳定。后来我加钱换了独立企业签名,整个证书只给我自己的应用用,掉签的概率一下子低了很多,虽然成本高不少,但是不用天天提心吊胆等补签,体验好了太多。
之后我也用过一段时间超级签名,超级签名安装起来比企业签名方便很多,下载完成之后直接就能打开,不用手动去设置里面信任证书,省了好多步骤,对新手特别友好。超级签名其实就是用个人开发者账号来签名,掉签概率比共享企业签名低很多,一般只有账号出问题才会掉签。我也碰到过小问题,有一次超级签名一直装不上,我以为是签名出了问题,折腾了半天,结果是我手机登录了多个苹果ID,系统验证不通过,把多余的ID退出去重启手机之后就顺利装上了。还有一次装了半天装不上,最后发现是手机内存满了,清理了好半天缓存才装进去,这些小坑都是踩过一次才记住。超级签名的成本比较高,适合小范围一起用,人多了就不太划算。
再后来我开始用TF签名,也就是TestFlight签名,这也是我用到现在觉得最稳定的一种,是苹果官方的测试渠道,签名本身就是官方认可的,所以几乎不会掉签,除非开发者自己下架了测试版本,不然一直都能正常用。TF签名的安装流程也很简单,先从AppStore下载TestFlight官方应用,然后打开邀请链接,会自动跳转到TestFlight里面,点安装就能直接放到桌面,打开就能用,也不用信任证书,体验和AppStore下载的应用几乎没区别。我现在长期用的区块链钱包就是放在TF里面,用了快半年,从来没出过问题,也没掉过签,体验特别好。TF签名唯一的门槛就是需要过苹果的审核,虽然审核比AppStore上架宽松很多,但是不符合规则的应用还是过不了,能过审的话用着真的省心。
我也用过H5封装的签名应用,就是把网页版的区块链应用套个原生壳,做成应用的样子,这种好处就是开发者更新特别方便,改完网页不用重新发包签名,用户打开就能用到最新版本,但是体验真的很差,我用的那个H5封装的行情工具,动不动就卡顿,推送也不准,有时候网络稍微差一点就打不开,调用手机权限也特别麻烦,我要导入密钥弹了半天权限都出不来,而且H5封装也需要签名才能安装,掉不掉签还是看你用的什么签名类型,本身只是包的形式,我用了不到一周就换回了原生包,再也不想用H5封装了,只能临时凑合用,不适合长期用。
说到AppStore上架,这当然是体验最好的,能上架的应用直接从AppStore搜索下载,更新自动更,从来不会掉签,也不用任何额外操作,打开就能用,什么问题都没有。但是很多区块链相关的应用,尤其是测试版本的小工具,根本过不了AppStore的审核,没法上架,我现在只有几个正规大平台的应用是从AppStore下载的,其他的小工具测试应用都只能用各种签名。
这么久用下来,我也摸出了让签名稳定流畅的方法,能上架AppStore肯定优先选上架,不行的话只要能过审,优先选TF签名,官方背书稳定又省心,长期用的应用放TF绝对没错。如果TF过不了审,就选独立企业签名,不要贪便宜用共享签名,共享签名看着划算,天天掉签折腾下来反而更闹心,花点钱用独立签名稳定太多。如果只是几个人小范围用,也可以用自己的P12做超级签名,自己控制账号,也很稳定。不管选什么类型,都要找靠谱的渠道,不要贪便宜找那种价格低得离谱的,我之前贪便宜找过一次,当天就掉签,再找商家已经联系不上了,钱打了水漂,还耽误事。
我之前还碰到过一个很无语的小问题,新装了企业签名应用之后,翻遍设置都找不到对应的描述文件,折腾了快一个小时才弄明白,新的iOS系统只有在你点击过应用、弹出未受信任的提示之后,才会把对应的描述文件显示在设备管理里,不然你根本找不到,这个坑我踩了两次,换手机的时候又忘了,又折腾了好久。还有一次iOS大版本更新之后,我两个旧的企业签名应用直接打不开了,原来苹果更新了验证机制,旧的签名失效了,只能重新签名安装,好在数据都存在云端,登录就找回来了,没什么损失。
用到现在,我也从最开始碰到问题就慌的新手,变成了出什么问题都能快速解决的老用户,其实只要选对了类型和渠道,苹果安装未上架的区块链应用也能很稳定,只是刚开始要踩一些坑,踩得多了自然就找到适合自己的方式了。现在我平时测试新出的小工具,就临时整个共享签名,测完不用就删了,也不心疼,长期用的核心工具都放在TF,日常用着和上架应用没什么区别,省心又舒服,再也不用像最开始那样天天担心掉签耽误事了。