我做独立iOS开发快五年了,最早捣鼓出第一个能用的小工具,是给身边做手作的朋友们管订单用的。那时候一门心思只想上架AppStore,改了三版还是被打回,一会说我隐私政策不清晰,一会说我功能不符合上架规范,来回折腾了一个多月,急着给朋友们先用,才不得不开始研究各种签名方案。

那时候连P12证书是什么都搞不清,只听人说自己弄签名要用到这个文件。自己花六百多买了一年的个人开发者账号,跟着网上的教程导出证书,折腾了一下午,签出来的IPA放到手机上就是装不上。后来才搞明白,P12证书是把证书和对应的私钥打包在一起的文件,导出的时候必须在钥匙串里同时选中证书和私钥,不然导出来的文件根本没法用,还要设置访问密码,不然签名工具读不出来。我那时候就是只导了证书没导私钥,白忙了一下午,差点把键盘砸了。

后来慢慢摸懂了设备签名的原理,才知道苹果这套规则其实说穿了也简单。苹果给开发者开放的测试权限里,本来就允许开发者给绑定了UDID的设备安装测试应用,说白了就是你每加一台设备,就得把这台设备的UDID手动绑定到你对应的开发者账号的设备列表里,苹果认了这个绑定,才会允许对应的应用在这台设备上安装运行。这就是UDID绑定的本质,也是所有超级签名的基础。最早我不懂怎么自动获取UDID,让每个要装的朋友自己去设置里找UDID,十几个用户弄了一下午,一半的人找不到,折腾得我够呛,后来才知道现在的签名平台都做了自动获取UDID的H5页面,用户点一下就能自动拿到,省了不知道多少事。

苹果的证书分发机制其实一共就三类,摸清楚了就不会乱选。第一类就是AppStore上架的公开分发,用的是专门的发布证书,你打包签名上传之后,苹果会再做一次签名,所有用户都能下载安装,但是要过审核,还要抽成,规则多。第二类就是Ad Hoc分发,也就是我们说的设备签名,绑定UDID才能装,用的是Ad Hoc证书,本来就是给开发者测试用的,超级签名就是走的这个渠道。第三类就是企业内部分发,用的是企业开发者账号的企业证书,不需要绑定UDID,任何设备都能装,本来是给企业做内部应用用的,现在很多人拿来做外部分发。

不同渠道我都试过,给你们说点真实的价格,别被那些卖签名的坑了。自己弄个人开发者账号,现在一年大概六百多人民币,最多绑定100台设备,算下来一台设备一年才六块多,是最便宜的,就是要自己折腾,加设备改签名都要自己弄,用户多了根本忙不过来。然后是超级签名,平台给你弄,一般按设备收费,现在正规用个人账号的,差不多一块五到三块钱一个设备一个月,也有按年卖的,一年十块钱左右一个设备,那种几块钱一百台设备的,基本都是黑号,别碰。然后是企业签名,共享版的就是很多人共用一个证书,一个月几十块到一百多,便宜是真便宜,掉签也是真能掉,我见过一周掉三次的。独立企业证书就是一个你自己用,一个月大几百到一千多,稳定很多,但还是有被吊销的风险。然后是TF签名,就是走TestFlight官方渠道的,现在一般一个月三百到一千多,看应用类型,不违规的话基本三百多就能拿下,一万个测试名额,小范围用完全够。

不管什么签名,IPA签名都是基础,哪怕你是H5封装出来的安装包,也得做IPA签名才能安装,苹果的系统不认没有签名的安装包,这是死规则。我之前给客户做过几个展示类的小APP,客户预算低,不想花太多时间上架,我就用H5把网页封装成IPA,再做签名,成本低,交付快,改内容直接改网页就行,不用重新发版签名,客户特别满意。H5封装其实就是把网页套个原生壳,体验肯定不如纯原生,但是对于展示类、宣传类的小应用来说,完全够用,也不用写那么多原生代码,省时间省成本,缺点就是离线用不了,加载慢点,看需求来。

我踩过最大的坑就是掉签,说出来都是泪。最早贪便宜买了八十块一个月的共享企业签名,二十多个用户刚装上,第三天就掉签了,所有应用都打不开,找卖家补签,卖家拖了一天才弄好,一半的朋友都嫌麻烦不用了,我本来就是免费给大家用的,结果落了一身埋怨。后来又碰见过便宜的超级签名,卖家说都是正规个人账号,结果用了不到一周,账号被封了,所有设备全掉,补都补不了,找卖家已经被拉黑了,钱也打了水漂。去年做推广那回更坑,活动推了一天新增了一百多个用户,我想着活动就半个月,贪便宜买了199的共享签,结果活动第二天一醒,所有人都来找我说打不开,证书被苹果吊销了,找卖家,卖家说共享签就是这样,补不了,要补就得加钱换独立签,我那时候急得满头汗,赶紧转钱换了,一个个给用户发新链接,折腾到半夜,一半的新增用户都走了,本来想涨点用户,结果砸了招牌。

从那以后我就认准了稳定好用的,贵点真没关系,掉一次签损失的远比你省的那点钱多。我现在用的最多的就是TF签名,真的稳,它是苹果官方的TestFlight测试渠道,相当于你把应用放到苹果自己的平台上给用户下载,根本不会掉签,除非你应用本身违规被苹果下架,不然放一年都没事。我那个内测版放了快一年,只掉过一次,还是我自己改了包名的问题,重新传一下就好了,从来没有莫名其妙掉签的情况。唯一的限制就是一个应用最多一万个测试名额,我这种独立开发者,用户几千个,完全够用,真要是用户多了,多弄几个TF就行,也不麻烦。

其次就是正规渠道的超级签名,现在我用的那个平台都是用的正规个人开发者账号,一个设备一年十二块钱,大半年了只掉过三个,还是用户换了手机,UDID变了,后台重新绑定一下补签就好了,五分钟就能弄完。自己做个人开发,用户不多的话,用这个也很方便,比企业签名稳定太多,也不用绑UDID让用户麻烦,平台都做了自动获取,用户点两步就装上了。

P12证书用久了我也摸出规律,自己用的话一定要备份好,导出之后存到云盘里,别只存在本地电脑,我之前换电脑没备份P12,结果原来的证书废了,所有绑定的设备都得重新签,折腾了好几天。还有就是别随便把自己的P12证书给陌生人,很多黑心签名平台就是收个人的P12去做共享签名,一不小心你的账号就被苹果封了,哭都没地方哭。

后来我那个订单工具改了五次,把不必要的权限都清了,隐私政策也按照苹果要求写得明明白白,最终还是上架AppStore了。上架之后确实流量多了不少,但是也有麻烦,更新个版本要审核好几天,苹果还时不时抽查,要是碰到审核严的时候,一个版本卡半个月都出不来,所以现在我都是正式版放AppStore,内测的测试版用TF签名,小范围给老用户提前更试用,收集完反馈改好了再上正式版,这样配合着用,特别顺。

做独立开发这么久,什么坑都踩过,签名这块真的是一分钱一分货,别想着贪小便宜吃大亏,稳定才是最值钱的,用户用着舒服,你也不用天天盯着后台补签,能省出很多时间改功能做开发。前几天刚给新版的订单工具弄完内测,加了大家催了很久的库存预警功能,传到TF不到十分钟,所有测试用户都装上了,晚上约了几个做手作的朋友出来喝茶,他们说新版本用着特别顺手,没人提打不开的问题,我端着冰奶茶吹着晚风,终于不用睡前还刷着后台看有没有掉签提醒了。