我自己捣鼓了一款小工具,本来想着直接放出去给身边朋友用,结果折腾半天才发现,苹果这边不上架的话根本没法正常安装,问了一圈才知道还有苹果签名这种方式,专门用来做内部测试,这大半年来我差不多把市面上所有类型的签名都试了一遍,踩了不少坑,也摸出了不少门道,今天就说说我真实的使用感受。
最开始我找了个商家,对方给我发了一个安装链接,说用自带的浏览器打开就能点安装,我照着做,点完安装之后看到桌面多了图标,以为就好了,结果点上去根本没反应,图标还是灰扑扑的,我当时慌得不行,以为手机出问题了,删了重下好几次还是这样,赶紧找商家问,商家说我忘了信任证书,这一步是绕不开的,我那时候才知道原来装完签名app还要单独去设置里弄信任。最开始我用的系统版本,信任证书的入口在通用下面的设备管理里,后来我更新了系统,入口改了位置,我翻了半天都没找到,后来还是商家告诉我现在改到VPN与设备管理那个分类里了,进去就能看到对应的描述文件,点进去选信任,确认之后才能正常打开app。我那时候还遇到过一个问题,就是网不好的时候描述文件根本加载不出来,我连着wifi等了好久一直转圈,换了移动流量一下子就出来了,后来再装我都直接用流量,再也没遇到过加载不出来的情况。有时候描述文件下载完了,系统会提示不受信任的开发者,这时候去设置搜索栏搜描述文件,直接跳转到对应页面比一个个翻菜单方便太多,我之前笨,每次都翻半天,后来才发现设置里有搜索,直接搜就能出来,省了好多事。
后来折腾熟了才知道P12证书这么回事,最开始商家问我要用他们的证书还是自己提供P12,我一脸懵,什么是P12,查了好久才弄明白,就是开发者账号导出的带密钥的证书文件,要是自己有开发者账号,可以导出P12给签名商,用自己的证书签名,我那时候刚好有注册好的账号,想着用自己的会不会更稳,就想着导出给商家。结果导出的时候折腾了快一下午,一开始我只会导出证书,不会导密钥,导出来的文件商家说用不了,我又对着网上的教程重新来,在钥匙串里找到对应的证书,展开之后连证书带私钥一起选中,右键导出,还要设置密码,我一开始密码设得太乱,输的时候好几次都错,签名一直失败,后来改了简单好记的密码才顺利弄好。用自己P12的好处我后来才感受到,证书是自己拿着的,不会随便被别人拿去签别的app,也不用担心别人把违规的app和我的放在同一个证书里,连累我的app掉签,相对来说稳很多,就是导出的时候要多折腾几步,弄明白之后其实也不难。
我最开始用的是企业签名,那时候什么都不懂,就看那个报价低,选了共享的那种,装上之后一开始用着挺顺的,没几天就出问题了,突然所有打开的app都用不了,图标直接变灰,点都点不开,测试的朋友都来找我问怎么回事,我当时急得满头汗,赶紧找商家,商家说掉签了,共享签都是这样,好多app共用一个证书,只要有一个app被苹果查到,整个证书上所有的app都会掉签。后来我才知道掉签之后的解决办法,一般就是找签名商重新补签,补完之后用户要重新下载安装,原来的安装包就没用了,那时候我朋友里好几个人的测试数据都存在本地,重新装之后数据都没了,大家都挺不愉快的。后来商家说要不加钱做独立的企业签名,就是一个证书只放我的app,不会被别的app连累,我想着已经折腾成这样了,就加钱换了独立的,换完之后确实稳了很多,好久都没掉过,就是预算要高出不少,而且就算是独立签,也没法保证绝对不掉,苹果哪天查到企业证书,还是会掉,掉了还是要补,还是要重新装。
后来我测试的范围不大,就换成了超级签名,超级签名是用个人开发者账号来签名的,要绑定设备的UDID,适合小范围的内部测试,安装的时候比企业签名方便很多,一般装完之后直接就能打开,不用再去设置里手动信任证书,这点我挺喜欢的,不用一个个教朋友怎么找信任入口。超级签名我一开始找的那家特别便宜,结果用了没多久,账号就被封了,所有设备都用不了,商家也联系不上了,我才知道好多不良商家用的是黑卡买的账号,用几天就被苹果封了,根本没保障。后来我换了一家正规点的,用自己的P12做,就稳多了,只要账号没问题,基本不会掉,就算换设备重新装,只要重新绑定UDID就行,就是用户多了之后成本会高很多,而且只要重新安装就算新的设备,不太适合大范围用,小范围测试新功能还是挺合适的。
再后来测试的人多了,我就换成了TF签名,也就是TestFlight,是苹果官方出的内测渠道,这个我用下来是真的稳,因为是官方的,所以基本不会掉签,只要不上传违规的内容,审核过了就能一直用,用户也很少出问题。TF的流程就是把安装包上传到平台,然后给用户发邀请链接,用户先在App Store下好TestFlight的客户端,然后打开邀请链接就能安装我的app了。当然也不是一点问题都没有,首先就是还是要过审核,虽然审核比App Store的松,但有些不合规的内容还是过不了,我第一次上传就被拒了,改了好久才过,然后就是用户安装要多走一步,先要下载TestFlight,好多不太会玩手机的朋友搞不明白,我那段时间天天给人发教程,一步步截图标注,挺费精力的,还有就是链接到期之后要重新上传,不过到期之前会有提示,提前弄好也不麻烦,整体用下来,除了安装步骤多一点,稳定性真的没的说,我用了这么久,从来没掉过签,也不用天天盯着补签,太省心了。
我还试过一次H5封装,就是把做好的网页套个原生壳,做成苹果app然后签名,那时候想着我的工具本来就是网页改的,封装起来应该很快,价格也便宜,就试了一次,装好之后能用是能用,但是体验真的太差了,动不动就卡顿,调用手机的原生功能比如相机啊存储啊都特别慢,推送也经常收不到,用了没几天我就换掉了,感觉这种也就适合临时用一阵子,做个临时展示什么的,长期内部测试真的不行,体验太差了。
其实我后来也改过功能,试着上架App Store,改了好多次才过审核,上架之后才知道,能上架真的是最稳的,用户直接在App Store搜就能下载,更新也方便,也不用弄任何证书信任,也不会掉签,什么麻烦事都没有,就是审核真的太严了,很多做内部测试的app或者有些功能不符合要求的app根本过不了审核,没办法才用各种签名,要是能改得上架,真的优先上架,省了太多麻烦事。
折腾了这么久,我也摸出了能让签名稳定流畅的方法,首先就是一定不要贪便宜,那种报价低得离谱的基本都是坑,要么是共享证书天天掉签,要么就是黑号用几天就没,找靠谱一点的渠道比什么都重要。然后要是能用自己的P12证书就一定要用自己的,自己握着证书,不会被别的app连累,也不用担心商家跑了自己拿不到证书,稳很多。然后就是看自己的用户规模选对应的渠道,能上架App Store肯定优先选上架,这是最稳定的,没有之一,要是没法上架,小范围测试就用超级签名,自己提供P12,找正规商家,基本不会出问题,中等规模的内部测试就用TF签名,官方渠道,稳定又省心,只要过了审核基本不用管,就算到期重新传一下也很简单,大规模的话预算够就用独立企业签名,千万别用共享企业签名,掉签掉得让你没办法安心做测试,天天补签都来不及。
我还遇到过好多奇奇怪怪的小问题,比如有时候安装完描述文件,信任按钮是灰的点不动,后来才知道是系统时间不对,调对正确的时间就好了,还有就是掉签之后有人说改系统时间能继续用,我试过,改完之后别的app都用不了,还容易出bug,根本没用,还是重新安装最靠谱,要是怕用户丢数据,提前做好云备份,让用户同步一下数据,重新装完导回去就好了,也不会有什么损失。还有就是不管用什么渠道,都要自己备份好安装包和证书文件,别把所有东西都放在商家那边,商家要是联系不上了,你自己手里有东西还能找别的商家重新签,不至于全凉了。
这段时间用下来,我现在内部测试一直用TF签名,新功能小范围测试用超级签名,一直都挺稳定的,很少出问题,最开始的时候什么都不懂,踩了好多坑,现在慢慢摸出门道了,也就省心多了,其实苹果签名就是给没法上架的app做内部测试用的,选对适合自己的方式,找靠谱的渠道,其实也没有那么多麻烦事,哪怕遇到问题,一步步解决也就好了,不用太慌,多试两次也就摸清楚规律了。