我做独立iOS开发快六年了,手里七八个不上架的工具类App,还有不少给本地中小企业做的内部管理App,全靠苹果签名分发,这么多年踩过的坑,说出来能攒成一本小册子。
最早接触签名的时候,连什么是P12证书都搞不懂。后来才慢慢明白,P12就是把苹果发给我们的开发证书和私钥打包在一起的文件,要给IPA签名,就得把P12导入到系统钥匙串,才能完成签名流程。我最早图省事,自己用个人开发者账号生成P12,那时候一个个人账号最多只能绑定100台设备,刚做的小工具涨了一百多用户就不够用了,一个个劝老用户卸载腾位置,别提多尴尬了。后来我把P12备份在电脑里,结果一次格式化忘了拷出来,备份云盘里的文件刚好损坏,之前所有签过的App全掉了,我蹲在电脑面前愣了半小时,最后只能重新生成证书,一个个通知用户重新安装,折腾了整整三天才搞定,从那之后我的P12最少存三个地方,本地U盘、云端网盘、甚至手机备忘录里都存了一份备份,就怕再出问题。
还有那种卖共享P12的商家,说九十块能用一年,随便签,我刚入行的时候买过一次,不到半个月就掉签了,找商家的时候发现已经被拉黑,人间蒸发。后来才知道,共享证书就是几十上百个开发者共用同一个P12,什么违规App都往里面塞,苹果风控一检测到异常,直接吊销证书,一掉就是一大片,根本跑不掉。
说到这里就得说说设备签名的原理了。其实不管什么签名,核心都绕不开UDID绑定,每一台iOS设备都有一个唯一的设备标识符,就是UDID,苹果的规则里,只有把设备的UDID加到对应证书的绑定设备列表里,你签好的App才能在这台设备上正常打开运行。最早没有自动获取UDID工具的时候,我得让用户自己连接电脑,从iTunes里抄UDID发给我,我再手动粘到苹果开发者后台,一百个用户我录了快两个小时,还总有用户抄错数字,绑上去之后还是装不上,来回核对折腾,那段时间看到UDID这四个字母都头疼。现在技术进步了,网页就能自动获取UDID,不用用户折腾,省了太多事。
说过原理,再给大家报报我这些年接触到的不同渠道的真实价格,避免新手再踩价格坑。最便宜的就是刚才说的共享企业签名,一般三十到五十块一个月,一百多块包年,这种就是纯靠走量,便宜是真便宜,掉得也是真频繁,我见过一周掉三次的,用户刚装好又要重新装,没几次用户就全跑光了。然后是独立P12的企业签名,就是一个证书只给你一个人用,不会和别人共享,现在市场价一般是两百到四百一个月,只要你的App内容正规不违规,很少掉,大部分靠谱商家都会承诺包月免费补签,掉了随时给你重新签,比共享的稳太多。再就是超级签名,其实就是用多个个人开发者的P12证书,自动给用户的UDID绑定签名,按设备收费,现在一般一个设备3到8块钱,一百个设备就是三百到八百,用户越多成本越高,一千个用户就要几千块,对于中小开发者来说真的扛不住。最后就是TF签名,很多刚入行的朋友都问TF签名哪里申请,我后面慢慢说,先报价格,TF签名如果自己申请,只需要你有每年交688年费的开发者账号,不用额外花钱,找第三方代申请的话,一般一百到两百块一次,有效期90天,到期重新发一次就行,长期用一年下来也就两三百,成本不算高。
苹果的证书分发机制其实很清晰,苹果官方只认三种分发方式。第一种就是AppStore上架,这个是最稳的,用户直接从AppStore下载更新,永远不会掉签,只要你能过审,那肯定优先上架,我有两个小工具过审了,放在AppStore上快三年了,除了每年交年费,什么都不用管,太省心。但问题就是审核太严,很多内部使用的工具、带轻度社交的小App,或者不符合苹果规范的工具,根本过不了审。我去年做了一个给钓鱼爱好者用的渔获记录工具,就是加了一个用户分享动态的圈子,苹果说我有用户生成内容需要ICP资质,我一个个人开发者哪里去弄这个资质,改了三版还是被拒,最后只能放弃上架,走签名分发。
第二种就是企业内部分发,也就是我们常说的企业签名,用苹果的企业级开发者账号生成证书,本来是给企业内部员工用的,我们拿来给外部用户分发,本来就是钻了规则的空子,所以苹果查到就会吊销证书,也就是我们说的掉签,这个没办法,是天生的问题。第三种就是TestFlight测试分发,也就是TF签名,这个是苹果官方承认的测试渠道,本身就是合规的,只要你的App不违规,苹果几乎不会动你的包,稳定性比企业签名高太多。
我接过不少H5封装的活,很多客户就是把手机网页封装成IPA,也就是我们说的H5封装,封装完了要给用户安装,必须得做IPA签名,很多客户不懂,觉得封装完就完事了,结果拿到IPA怎么都装不到手机上,才知道还要签名,图便宜找几十块的共享签名,用了没几天掉了,回头来找我帮忙弄稳的,白花了几十块冤枉钱。H5封装的IPA本身没什么问题,只要内容正规,签对了证书一样能用很久,就怕封装了违规内容,那不管签什么证,都撑不了多久,苹果一查一个准,我从来不碰这种活,所以我的签名大多能用很久都不掉。
说到掉签,我印象最深的一次坑,是四年前给本地一个餐饮连锁做了员工打卡的内部工具,两百多个员工要用,当时刚创业,手里紧,想着能省一点是一点,找了个八十块一年的共享签名,一开始半个月没事,结果某天早上七点多,老板连打我五个电话,说员工打卡都打不了,开早会都乱了,登不了考勤数据。我赶紧爬起来找商家,微信不回,电话关机,早就跑了。我当时急得满头汗,坐在电脑面前手都抖,最后没办法,自己掏腰包三百块买了一个月独立企业签名,重新打包,然后一个个给门店主管发安装链接,教员工重新安装,忙到中午十二点才全部弄完,老板差点扣了我三分之一的尾款,从那之后我再也不碰任何超便宜的共享签名,稳比什么都重要,省那几十块,出事的时候赔的更多。
还有补签的坑,很多商家宣传的时候都说免费补签,真掉签了,告诉你要排队,排三四个小时都是好的,有的排一天都排不到,用户这边急着用,你怎么催都没用。我现在合作的商家,掉签之后一般一两个小时就能补好,就算半夜掉了,第二天早上起来也弄好了,虽然比别家贵五十块一个月,但是用着省心,不用天天提心吊胆。
很多朋友问TF签名哪里申请,其实说穿了很简单,如果你自己有苹果开发者账号,每年交了688的年费,完全可以自己去App Store Connect里申请,流程不复杂,就是上传IPA,设置测试员,分享链接,审核一般一天内就能过,比AppStore上架松太多了,只要内容不违规,基本都能过。要是你没有开发者账号,或者懒得自己操作,找第三方平台代申请就行,现在很多平台都能做,一百多块就能搞定,人家帮你弄好直接给你链接,省不少事。
TF签名真的是我近几年用过最稳的,我那个钓鱼的工具,一千多用户,走TF签名快两年了,只掉过一次,还是我自己更新版本的时候传错了包,苹果打回来,我重新提交,当天就过了,新用户就能正常安装了,老用户根本不受影响,这种稳定性是企业签名比不了的。而且用户安装也方便,点击链接跳转到TestFlight就能下载,不用去设置里信任证书,也不会弹未验证开发者的提示,对新手用户太友好了。
当然TF也不是万能的,一个TF测试包最多只能绑定一万个测试设备,对于用户量几十万的大App肯定不够,但是对于我们独立开发者,还有中小企业的内部App,一万个名额完全够用了,就算真的不够用,多弄几个TF包就行,也没什么麻烦。要是TF审核过不了,那我再选独立企业签名,绝对不碰共享的,稳得住。
我现在做开发,每天打包签名,帮新手朋友答疑,慢慢就发现,其实选签名没什么秘诀,就是不贪小便宜,选适合自己用户量的,内容正规就选最稳的渠道,掉签补签能及时跟上就行。做独立开发本来就不容易,大部分时间都要花在打磨产品上,没必要为了省几十块钱,天天盯着签名掉没掉,折腾自己又折腾用户,得不偿失。
我前几天还帮一个刚毕业的小朋友看他的签名,他找了个四十块一年的共享签名,掉了三次,用户都走光了,产品做的其实不错,就是栽在签名上,我给他介绍了我用的TF代申请,花了一百多,现在用了快三个月,一次都没掉,用户也慢慢涨起来了。其实就是这样,踩过坑才知道,适合自己的稳定签名,真的能省很多心,能安安稳稳做产品,比什么都强。