我是个做小工具的独立iOS开发者,没加入团队,就自己在家捣鼓。最早做出来第一款产品,是个本地加密的私人笔记工具,满心想的就是上架苹果签名AppStore,毕竟官方渠道最稳,用户信任,也不用天天操心签名的事。
结果连着被苹果拒了三次。第一次说我隐私政策写得不清不楚,第二次说我加密存储不符合数据规范,第三次直接说我隐私清单没填对必填项。那时候我对着被拒邮件坐了一下午,改来改去改到麻木,最后干脆放弃上架,转头研究起了外部分发用的苹果签名。
接触签名的第一天,先搞懂了P12证书怎么用。那时候我自己买了苹果个人开发者账号,一年99美元,折合人民币七百多。跟着教程在开发者后台生成证书,需要在本地钥匙串请求证书签名,生成之后导出文件。我第一次导出来的P12发给服务商,人家说用不了,说我没带私钥。我那时候哪懂这些,对着教程翻来覆去看,才发现导出的时候有个选项“包含私钥”,我根本没勾。不带私钥的P12就是个空文件,根本没法用来签名,我白白折腾了一下午,那天晚饭都没吃好。后来再导出,我第一件事就是确认勾了私钥,存云盘的时候还特意备份了两份,就怕再出问题。
P12搞懂了,再往下就是设备签名原理。说穿了其实也简单,iOS系统天生就封闭,没经过苹果授权签名的App,根本不让你安装,点一下就提示“无法验证开发者”。设备签名说白了就是,用有苹果官方授权的开发者账号证书,给你的IPA包加上合法签名,让系统认这个安装包。要拿到授权,就得做UDID绑定——UDID是每台苹果设备唯一的识别码,苹果给个人开发者的权限是最多绑定100台测试设备,所以你要让哪个用户装你的App,就得把那台设备的UDID加到账号的设备列表里,拿到授权才能签名。
我最早做签名选的是超级签名,就是靠这种UDID绑定的模式做的。那时候不懂行情,问了好几个渠道,记下来现在市面上真实的价格其实挺透明的:超级签名一般按设备数卖,一个UDID也就是一个安装点位,正常价格是一块到两块钱一个,量大会便宜一点,那种喊着几分钱一个点的,全是噱头,要么扣量要么很快封号,别信。然后是企业签名,分共享版和独立稳定版,共享版就是好几百个App共用一个企业证书,一个月五十到一百五十块,独立版就是一个证书只放几个App,一个月三百到一千块,看你的App类型,敏感一点的价格会更高。再就是TF签名,也就是TestFlight签名,官方的测试渠道,一般按安装量算,一个安装一块五到三块钱,也有包年的,几百块包一千个安装,上限是一万个设备,够小开发者用了。
我那时候刚起步,没多少预算,看共享企业签名便宜,六十块钱一个月,就贪便宜选了。结果没到三天,凌晨我起来喝水,拿手机点开自己的App,直接弹无法验证,掉签了。那时候我刚拉了用户群,五十多个种子用户,我赶紧爬起来找卖家,结果卖家说掉签补签要再加三十块,我那时候气的手都抖,说好的包月掉签免费补,转头就不认账。没办法,只能给钱补,结果过了四天又掉了,再找他,已经被拉黑了。五十多个用户,一半找不到了,好不容易攒的初始流量,就这么没了,那几天我连打开微信的勇气都没有。
后来找同行介绍了一个做稳定独立企业签名的,人家是一个证书只放三个App,不会像共享版那样几百个堆在一起,被苹果查到直接一锅端。报价一个月四百五,我那时候一个月靠会员费也就赚一千出头,咬咬牙还是付了钱。用到现在快半年,就掉过一次,还是去年苹果那波大规模封企业证书,人家当天上午就给我换了新证书重新签好,把新的安装链接发过来,我只需要转到用户群说一声,大部分用户都愿意重新安装,数据也都在本地,没受影响,那次之后我才知道,稳定好用的签名,贵一点真的值得。
说回证书分发机制,其实现在主流的就三种。第一种是企业证书分发,用299美元一年的企业开发者账号生成证书,不需要绑定UDID,任何设备都能装,本来是给企业做内部应用分发用的,现在大家拿来做外部发布,苹果查得严,所以共享证书很容易掉,独立证书就稳很多。第二种就是个人开发者的超级签名,靠UDID绑定,用的是个人账号的100台设备名额,市面上的超级签名其实就是很多个个人账号拼起来,凑出来几千几万个名额,掉签一般是账号被苹果封了,需要换账号重新签,靠谱的服务商都会免费补,不靠谱的收了钱就跑路。第三种就是TF签名,走苹果官方的TestFlight渠道,属于苹果允许的测试分发,只要审核过了,根本不会掉签,除非你自己下架,或者测试到期,三个月续一次就行,是现在最稳的签名方式。
我那个第二款工具,就是做快递聚合查询的,本来也想上架苹果签名AppStore,结果说我功能太简单,没有原创性,又被拒了。我干脆直接做了H5封装,把网页打包成IPA,然后做了TF签名,放上去了。H5封装对我这种半道转开发的太友好了,本来就会写网页,不用从头写原生,封装好直接做IPA签名就能用,成本低很多。
做TF签名真的省心,我那个快递工具现在快五百个用户,从来没掉过签,用户点一下链接跳转到TestFlight就能安装,官方渠道,也不会弹无法验证的提示,用户体验好太多。唯一的限制就是最多一万个测试设备,对我这种小开发者来说,完全够用了,就算以后到了一万,再弄一个TF账号就行,也不贵。
补签这块我也踩过不少坑,不同签名的补签规则不一样,一定要提前问清楚。企业签名正常都是包月,服务期内掉签免费补,那种掉签还要收钱的,百分百是坑,直接拉黑别犹豫。超级签名是按设备算,你买了多少个点位,掉签之后重新签不用再花钱买点位,只有加新设备才需要加钱,要是服务商说补签还要收钱,那也是坑。TF签名基本不需要补签,我用了快一年,就续过一次测试期,点几下就完事,根本不费劲。
UDID绑定这块,我也有经验,最早用的小平台,要用户自己去网页查UDID,手动复制粘贴过来,十个用户有三个填错,绑定错了UDID,那个点位就废了,我前前后后浪费了四十多个点位,小一百块钱没了,说多了都是泪。现在大一点的超级签名平台都做了自动获取UDID,用户打开下载页,点一下授权就能自动拿到,不用手动操作,出错率几乎为零,体验真的差很多。
我现在三个App,一个放TF,一个用独立企业签名,自己测试用的就用超级签名,很少再出掉签的问题了。其实做独立开发这么久,最大的感受就是,苹果签名这块水真的很深,好多服务商拿着共享签名当稳定签名卖,赚黑心钱,你不掉个两三次坑,根本摸不清门道。我也试过自己攒账号签名,自己买了三个个人开发者账号,才三百个点位,成本比找服务商还高,而且还要自己盯着封号,太费精力,不如找个靠谱的服务商,省心。
其实说来说去,能上架AppStore肯定还是最好的,不用操心掉签,用户能直接搜到,信任度也高。但就是像我们这种小开发者,做的都是小而美的工具,动不动就因为各种奇奇怪怪的原因被拒,根本上不了架,苹果签名就是我们这些人活下去的一条路。我现在还在改那个笔记工具的资质,调整隐私政策,慢慢磨,说不定哪天就过审了。
昨天晚上还收到一个老用户的私信,说用我的笔记工具快两年了,从来没出问题,数据也没丢过,问我能不能加个导出PDF的功能。我看着那条消息,给自己倒了杯热牛奶,窗外的风刮得阳台的花盆晃了晃,灯光暖融融的,之前踩过的那些坑,好像也都没那么难受了。