我做独立iOS开发快三年了,踩过的签名坑,说出来能堆一箩筐。
最开始做了一款本地商家私域导流的工具APP,一心想上AppStore上架,前前后后改了三次,提交了三次,次次被打回。第一次说我隐私权限说明不全,改完之后第二次说我功能不符合苹果应用商店指南,第三次直接说我应用类别归类错误,不给过。那时候口袋里没多少钱,等着攒用户变现,只能转头找签名这条路,想着先跑起来再说。
那时候我连P12证书是什么都搞不懂,只知道要给IPA签名才能装。最早问了个网上的个人签名商,给我发了个几k的P12文件,说拿回去就能签名。我折腾了一下午,才搞明白P12是把开发者证书和私钥打包在一起的格式,苹果要求签名必须要有对应私钥才能给IPA包加有效信任签名,光有P12还不行,还得配对应描述文件,描述文件里写了你的APPID和绑定设备信息,两个缺一不可。
后来我自己买了个人开发者账号,学着自己导出P12,那时候不懂,导出的时候没设密码,存电脑里误删之后找都找不回来,重新申请证书折腾了三天,差点耽误了给用户交付测试版。现在我每次导出P12都会设强密码,加密备份到两个不同的云盘,就怕再出问题。而且我也知道了,P12绝对不能随便给外人,拿到你的P12就等于拿到了证书控制权,别人用你的证书签个违规APP,整个证书都会被苹果封,我身边有开发者朋友吃过这个亏,两千多买的企业账号,直接废了,损失大了去了。
最早贪便宜找签名,我算过不同渠道的真实价格,现在摸清楚了,市场上各个签名的价格其实很透明,坑都在看不见的地方。共享苹果企业签名,就是几十个人共用一个证书那种,一般一个月三十到八十,包年也就一百多到三百,是最便宜的,我最早找的就是八十块包年的,想着太划算了。超级签名按设备算,一般小量拿是三块到五块一个UDID,量大能谈到两块一个,那些几毛钱一个的,基本都是用黑号,用不了半个月就废。独立企业签名,就是一个证书只放你一个APP,还做通信加密的,一般一个月一百五到三百,包年一千五到两千五,贵是贵了点,稳很多。TF签名一般是一次上架收费一百到三百,成功了能用很久,更新版本一般收几十块,也有按安装量算的,一个安装一毛到五毛,适合用户量多的开发者。
那时候不懂,觉得不就是签名吗,能装就行,八十块包年还要什么自行车。用了不到半个月,第一次掉签。那天我早上起来打开自己的APP,直接提示无法验证应用,我懵了,赶紧找签名商,说要补签,结果他说整个证书被苹果封了,要等新证书下来,一等就是三天。那时候我刚攒了两百多用户,掉签之后所有人都打不开,三天掉了一半多,我天天在群里给用户道歉,那滋味真的不好受。
后来我才搞懂设备签名原理,不管是什么苹果签名,本质都是拿到苹果官方的授权,允许你的未上架APP在对应设备上安装,苹果的系统封闭,没有合法签名的安装包,手机根本不认,连安装都没法安装。掉签就是苹果收回了这个证书的授权,证书被封了,所以所有签过的APP都用不了。
像超级签名用的就是Ad Hoc分发机制,核心就是UDID绑定,每个苹果手机都有一个唯一的UDID标识,你要把这个UDID加到开发者账号的设备列表里,签名之后只有绑定了UDID的设备才能安装,一个个人开发者账号最多绑一百个设备,所以超级签名就是攒一堆个人账号,每个账号放一百个设备,按设备卖名额。我最早用超级签名的时候,让用户手动输UDID,好多用户不会查,输错一位就装不上,流失了好多用户,后来找人做了H5封装的UDID获取页,用户打开点一下就能自动获取复制,直接跳下载页,一下就少了好多麻烦,这个H5封装后来我一直留着,不管用什么签名,都把下载页封装好,用户操作起来方便太多。
苹果的证书分发机制其实就四种,最正规的就是AppStore上架分发,所有用户都能搜到,信任度最高,就是审核太严,很多APP过不了,我这种带点导流功能的工具,就是不好过。第二种就是企业级分发,用苹果给企业的299美元一年的企业开发者账号签名,不需要绑定UDID,任何用户都能装,放个链接就能下载,做个H5就能分发,方便是方便,但是苹果规定企业证书只能给企业内部员工用,对外分发被查到就会封证书,也就是掉签,共用证书的人越多,出违规APP的概率越大,掉签的概率就越高,我最早用的共享签名就是这个道理,八十块钱包年,看起来便宜,其实几十个人共用一个证书,只要有一个人签了赌博违规APP,整个证书就没了,所有人一起掉。第三种就是刚才说的Ad Hoc分发,就是超级签名用的,绑定UDID,一个账号最多一百个设备,掉签率比共享企业签低,但是用户多了成本太高。第四种就是TF签名,也就是TestFlight签名,是苹果官方的测试分发渠道,本质就是让开发者给测试用户装测试版,苹果官方允许的,规则松很多,只要不是太违规都能上,稳定性也高很多。
说到苹果企业签名通信加密,这个是我踩过最大的坑之后才懂的重要性。之前那个八十块一年的共享签名,我后来发现用户下载的IPA包被加了广告,我自己本地打包的包打开没有任何广告,但是从签名商给的链接下载下来的,打开就弹色情赌博广告,我反编译一看,签名的时候被加了壳,整个传输过程没有做加密,签名商随便就能改你的包,加广告赚差价,那一次我口碑掉了好多,用户都说我做的APP是病毒,我怎么解释都没用。从那以后我找签名,第一个要求就是做通信加密,整个签名和包传输过程都加密,不会被第三方篡改,哪怕多花一倍的钱,我也只找做加密的正规签名商,不然后果真的承担不起。
从那次掉签加被插广告之后,我就再也不贪便宜了,转用了独立加密企业签名,一个证书只有我这一个APP,掉签率低很多,而且签名商承诺掉签之后四小时内免费补签,有一次半夜掉签,我找客服,不到两小时就补好了,给用户发了新的下载链接,没怎么流失用户。用了大半年之后,用户攒到一千多了,我就转做了TF签名,找渠道花了两百块帮忙上架,一次就过了。TF签名是真的稳,我用了快一年了,除了我自己更新版本的时候重新传了一次,从来没掉过,也不用补签,用户只要装了TestFlight,就能直接下载,而且是苹果官方的链接,用户也放心,不会弹那个未受信任开发者的提示,体验比企业签好太多。
现在我一边用TF签名跑着用户,一边改APP的功能,删了不符合要求的内容,准备攒够了新版本,下次再提交AppStore上架,毕竟签名只是过渡,能上架才是长久之计,正规分发的流量和信任度都不是签名能比的。做独立开发这几年,我最大的感受就是,签名这种事,真的是一分钱一分货,贪便宜吃大亏,掉一次签损失的用户,比你省的那点签名钱多多了,稳定好用才是第一位的,尤其是做了通信加密的正规签名,能帮你省好多心,少掉好多坑。
昨天晚上又有个新用户找过来问安装的问题,我把做好的H5封装下载链接发给他,两分钟就装好了,他说用着比别的同类产品顺,我盯着屏幕笑了笑,泡了杯热奶茶,接着改下周要上线的商家管理新功能,窗外的风刮得梧桐叶晃,日子就这么慢慢往前走,踩过的坑多了,也就慢慢走出属于自己的路了。