我是做了五年的独立iOS开发者,最早做一些便民小工具、本地生活插件,一开始一门心思想上AppStore,结果改了四五个版本还是因为资质问题过不了审,才不得不转做签名分发,这一路踩的坑,能绕我出租屋三圈。
第一次接触个人企业签名证书,还是在淘宝,那时候纯小白,看到商家挂的99元包一年不限安装,觉得捡了天大的漏,立马付钱下单。对方给我发了一个p12证书文件,我对着网上的教程捣鼓半天才弄明白,原来P12证书不是直接拖进Xcode就能用,得先导入电脑的钥匙串访问,还要手动设置信任权限。
我第一次弄的时候就是没开信任,打包出来的IPA不管怎么调试,用户手机就是装不上,一直弹“无法验证应用”,折腾到凌晨两点,才找到问题出在哪,对着钥匙串里的证书点显示简介,把所有信任选项改成“始终信任”,才终于弄对。从那之后我每次导入新的P12,第一件事就是检查信任设置,再也没犯过这种低级错误。
跑了这么多年渠道,各种签名的真实价格我门儿清,给新手捋捋真实行情,别再踩我踩过的坑:淘宝那种超便宜的,基本都是共享个人企业签名证书,几十块钱一个月,99块一年的比比皆是,本质就是几百个APP共用一个证书,成本摊下来很低,但坑能把你埋了;然后是独立个人企业签名,一个证书只给你自己的APP用,目前行情一般是一个月150到300块,根据证书稳定性略有浮动;超级签名按设备数收费,现在普遍是一块到两块钱一个设备,一千个设备就是一千多,设备满了就得再重新购买;TF签名一般是一个安装包200到500块,有效期一年,中间更新版本一般再加收一百到两百块。
如果想自己弄AppStore上架,每年交99美元的个人开发者年费就行,找第三方代上架,行情是一千到三千块包过,当然大部分说包过的其实都是碰运气,真过不了全款退的没几家;IPA签名如果自己没证书找别人代签,一次十块到五十块不等,自己有证书的话,用个免费工具就能签,不用花一分冤枉钱。
我一开始以为签名是什么黑科技,后来摸懂了才知道,设备签名原理说穿了很简单,苹果对iOS设备安装第三方应用,本身就留了合法口子,设备签名就是用苹果开发者账号生成的合法证书,把你的APP信息和允许安装的设备UDID绑定进去,让iOS系统认为这个APP是经过苹果授权的,就能正常安装打开了。
每台iOS设备都有一个独一无二的UDID编码,相当于设备的身份证,不管是超级签名还是TF签名,本质都是要把你的设备UDID加到证书允许的安装列表里,只有列表里有的设备才能成功装APP。我一开始做签名的时候,没做H5封装,每次都要用户自己去Safari搜UDID获取,复制了再发给我,我手动加到证书列表里,一天下来光处理UDID都能忙死,连改代码的时间都没有。
后来学会做H5封装,把UDID自动获取、安装引导都嵌到分发页里,用户扫个码进去,点一下就能自动获取UDID,自动绑定,直接跳转下载安装,整个流程一分钟都不用,省了我大把时间,用户体验也好了太多,再也不会有一大堆用户跑来问我怎么找UDID了。
苹果的证书分发机制其实很清晰,苹果开发者证书本来就分两种,一种是给个人开发者的,一年99美元,最多绑定100台设备,主要用来做内测;一种是给企业的,一年299美元,不限制绑定设备数量,可以做企业内部应用分发。我们现在常说的个人企业签名证书,大多是个人手里持有的这种企业开发者证书,拿来给未上架的APP做分发。
和AppStore上架的公域分发不一样,签名分发属于私下的内测分发,苹果本来就不允许公开给外部用户使用,所以才会有掉签的风险,这点从一开始就要心里有数,别想着找什么绝对不会掉签的签名,只要是绕开AppStore的分发,都不可能百分百不掉。
我印象最深的一次掉签,是前年做了一个职业考证的答题小工具,临考试前一天晚上,我正躺着刷手机攒素材,突然微信消息炸了,几十条消息都说APP打不开。我爬起来一看,原来用的那个共享个人企业签名证书被苹果封了,整个证书直接废掉,所有签过的APP都打不开。我找卖家补签,卖家半天不回消息,说晚上不处理,要等第二天白天。
那时候用户都等着第二天考试用,一堆人要求退款,我急得满头汗,到处找临时补签的渠道,问了好几个都是要等两三个小时,最后花了三倍的价钱找了个能连夜处理的,折腾到凌晨三点才弄好,重新打包IPA,更新H5下载链接,一个个给用户发通知,那天晚上结束的时候,咖啡都喝了四杯,最后还是退了快一半的款,攒了大半年的口碑也坏了。从那之后我就再也不敢碰共享证书,打死都不贪那个便宜。
其实补签说难也不难,如果是自己握证书,掉签了只要重新生成描述文件,给IPA重新签名,换个下载链接就行,快的话十分钟就能搞定。如果是用别人的共享证书,就得等渠道给你重签,遇上不靠谱的渠道,拖个大半天甚至一两天都很正常,等你补好,用户早就流失完了。所以我一直觉得,稳定好用的签名,核心就是自己掌控证书,现在我攒了两年钱,自己注册了企业开发者账号,握了两个个人企业签名证书,都是我自己一个人用,每个证书只签两三个APP,平时注意不碰违规内容,很少被苹果查,掉签的概率比共享证书低了不知道多少。
我现在新做的APP,都会先做TF签名测试,毕竟TF是苹果官方的TestFlight内测渠道,本身就是苹果认可的,只要你的APP不碰太违规的内容,基本不会掉签。我有一个工具包的TF签名,做了一年多了,从来没掉过,比企业签名还稳。唯一的缺点就是TF一个APP最多只能加一万个测试设备,用户满了就得再建新的包,而且每次更新版本也要等TF审核,虽然比AppStore快,但也得等几个小时,不像企业签名,改完就能签,签完就能更,用户马上就能用上新版本。
IPA签名其实就是给未签名的安装包重新替换签名信息,我一开始不会弄,每次改完版本都要找别人代签,前前后后花了不少冤枉钱,后来自己下了个免费的签名工具,有了自己的P12证书之后,一分钟就能签好一个IPA,然后上传到服务器,更新H5的链接就行,根本不用麻烦别人。而且P12证书我现在也做了好多备份,本地存一份,加密云盘存一份,密码记在好几个地方,之前有一次电脑硬盘坏了,我还怕P12丢了,后来从云盘下下来就能用,一点事都没有,原来装了APP的用户也不用重新签,这点太重要了,很多新手不知道保管P12,丢了之后所有用户都得掉签,损失真的大了。
其实我一开始也不是不想上AppStore,谁不想上架让所有用户都能搜到,不用天天折腾签名补签?可是我做的好多便民工具,需要对应资质,我一个个人开发者,个体户身份根本办不下来要求的资质,改了五六次,每次都被拒,说我功能不符合规范,没有相应资质,最后才彻底放弃了上架,走签名分发,其实很多独立开发者都是这样,不是技术不行,是门槛卡着,没办法。
今天下午刚给一个小工具更了新版本,重新签好名更了H5链接,晚上泡了杯热茶坐在电脑前,翻了翻之前的聊天记录,都是当年掉签时候用户的投诉消息,想想也挺感慨,对于我们这种小开发者来说,能安安稳稳让信任我的用户用上APP,就已经够了。