我是个做小工具的独立iOS开发者,混这行快三年,踩过的签名坑能绕我出租屋三圈。最开始做了款自定义壁纸去水印工具,兴冲冲交了99美元苹果开发者年费,想上架AppStore,结果改了四版都没过审,说我工具涉及第三方内容解析,可能侵犯版权,直接打回。没办法,只能转做签名分发,先攒用户再说,这一弄,就摸透了苹果签名里大大小小的门道。
最早接触签名的时候,连P12证书是什么都不知道,找网上的免费教程看,才懂P12其实就是导出的带私钥的证书文件,不管是开发证书还是生产证书,要做IPA签名都得靠它。我第一次自己导出P12,没注意把私钥打包进去,导出来的文件只有证书,拿去签名的时候一直报错,折腾了整整一下午才弄明白,导出的时候必须勾选包含私钥,不然签出来的包根本没法用。后来找第三方平台做签名,图便宜用了共享P12,结果没到半个月,证书突然被苹果吊销了,所有用户的APP全部打不开,后来才知道,平台把我的P12存了副本,拿去给别的违规APP共用,别人被举报,连带着我的证书也被封了。从那之后我就知道,P12证书一定要自己保管,密码要设得复杂,能自己存就不要让第三方碰,要是用平台的,一定要问清是独享还是共享,共享的P12真的碰都碰不得。
说起来,很多新手刚接触超级签名,都搞不懂设备签名原理,也不明白什么是UDID绑定。我一开始也不懂,以为超级签名是苹果有什么漏洞,不用受限制,后来才搞懂,超级签名本质就是用个人苹果开发者账号的Ad Hoc分发,苹果本来就给个人开发者开放了100台设备的测试授权,你要安装这个APP,就得把你的设备唯一标识也就是UDID,绑定到开发者账号的设备列表里,拿到授权之后才能签名打包安装。超级签名只是把整个流程自动化了,原来老的签名方式要用户自己复制UDID发给开发者,开发者手动加到后台,超级签名是用户点安装链接,网页自动获取UDID,后台自动绑定打包,用户等着安装就行,省了超多事,所以才叫超级签名。UDID绑定这一步是绕不开的,苹果的机制就是这样,没有绑定UDID的设备,就算签了名也安装不上,我之前帮一个新手朋友改包,他漏了绑定UDID,一百多用户全装不上,急得他连夜找我帮忙,折腾到两点才弄好。
我前前后后对比过不下十家签名渠道,各个渠道的真实价格我门儿清,根本没有什么虚报价格的空间。先说企业签名,共享P12证书的,现在市面价一般一个月60到120块,不限下载量,听起来很划算,但是掉签率高得吓人,我见过最夸张的一周掉四次,补签到你怀疑人生。独立P12的企业签名,稳定性好一点,一个月大概300到800块,承诺掉签免费补,一般做的大一点的平台,独立企业签一个月掉个一两次顶天了,比共享的好太多。然后是超级签名,就是用个人苹果开发者账号做的这种,共享账号池混签的,一般一块到两块钱一个设备,一千台以上能砍到八毛到一块,真的便宜,但是稳定性极差,批量掉签是常事,我之前贪便宜用这种,半个月掉三次,一次掉三百多用户,损失惨重。独立账号的超级签名,也就是不混放其他APP,一个账号只放对应几个你的APP,价格一般三块到五块钱一个设备,一千台以上能谈到两块五左右,看起来贵,但是稳定性真的高很多,算下来,一个用户用一年,平均下来也才几块钱,比天天掉签跑用户划算多了。然后是TF签名,也就是TestFlight签名,这个是苹果官方的测试分发渠道,现在市面价一般一个版本两百到四百块,包上架,最多放一万个测试设备,能用三个月,要是审核不通过还退钱,超过下载量再额外加钱,那种说几十块给你做TF签名的,十有八九是坑,要么给你共享TF,要么掉了不管。TF签名确实稳定,因为是苹果官方签名,只要不被举报,基本不会掉,我之前用过三个多月都没掉过一次,但是缺点也明显,用户安装要跳TestFlight,很多普通用户嫌麻烦,不愿意多装一个APP,而且TF也有审核,虽然比AppStore松,但也有可能过不了,下载量还有限制,所以不太适合用户量增长快的产品。
说到证书分发机制,其实现在苹果也就几种正规的分发路径,第一种就是AppStore上架分发,这个是给正式上线的APP用的,签名是苹果官方的,用户直接从AppStore下载,最稳定,体验最好,但是审核太严,很多我们个人开发者做的小工具、定制类APP根本过不了,我那款去水印工具就是,折腾了一个多月还是没上去,只能先做线下分发。第二种就是企业开发者账号的In-House分发,也就是我们说的企业签名,企业账号一年299美元,本来是给企业做内部APP用的,不限设备数,也不需要绑定UDID,链接点了就能装,所以被拿来做外部分发,但是缺点就是证书容易被封,苹果查的越来越严。第三种就是Ad Hoc分发,也就是超级签名用的分发方式,用99美元一年的个人苹果开发者账号,每个账号最多绑定100台设备,走测试授权分发,稳定性比共享企业签好很多。第四种就是TestFlight也就是TF分发,属于官方测试分发,刚才也说过了,稳但是有诸多限制。
我自己也做过H5封装成IPA的活,最开始不会写原生,就是把做好的网页工具用封装工具转成IPA包,封装出来的IPA本身是未签名的,根本没法在苹果手机上安装,必须做IPA签名才能用,我第一次封装完,就是因为没签名,发出去用户全装不上,还以为我骗他,弄的我特别尴尬。封装的时候也提醒大家一句,别加没用的权限,我第一次封装默认加了读取通讯录、位置信息,其实我根本用不到,结果签名完安装的时候一直提示不被信任,后来删掉多余权限重新签名就好了。
掉签和补签这个事,我真的太有发言权了,被坑的最惨的一次,是去年做活动涨粉,一天新增了三百多用户,结果第二天苹果集中封禁一批共享证书,我那会用的共享超级签名,直接全掉了,三百多用户全部打不开APP,找平台补签,平台说当天封号太多,排队要等四个小时,我那会看着用户群里一堆问为什么打不开的,慌的要死,那天下来一半多用户直接删了APP,再也没回来,心疼了我好长时间。从那之后我就认准一个理,做分发,稳定比什么都重要,便宜那一块两块的,掉一次签损失的用户都赚不回来。我现在用的就是独立个人账号的超级签名,三块钱一个设备,承诺掉签免费补,用了快八个月,也就不到十个设备掉过,当天就能补好,用户基本没感觉,省了太多心。补签其实也不麻烦,现在大部分平台都会做自动跳转,旧的安装链接打开自动跳新签好的安装包,用户点一下覆盖安装就行,数据也不会丢,不像原来还要我一个个发链接,一个个教怎么装。
我身边还有不少同行,自己买苹果开发者账号做签名,成本其实也不高,一年99美元,折合下来也就七百多人民币,一个账号能绑100台设备,算下来一台设备成本才七块多,要是自己会搭签名系统,其实比找平台更划算,也更安全,毕竟P12证书和账号都在自己手里,不用担心被别人盗用,也不用担心别人拿你的证书签违规APP。我自己现在也备了三个个人开发者账号,偶尔帮朋友签点小工具,自己测试新版本也方便,不用次次找平台排队。
我现在一边更版本,一边改功能,删了一些容易触发审核的内容,等着哪天符合要求了再重新申请AppStore上架,平时就用现在的稳定签名放给老用户用,偶尔和同行交流签名的坑,都会提醒他们别贪便宜用共享签,一定要找稳定的独立证书渠道,毕竟我们做独立开发,攒个用户不容易,别因为掉签把用户都折腾没了。