我是一名做独立开发快三年的iOS小开发者,去年捣鼓出一款本地隐私相册工具,前后三次申请AppStore上架,全被打回,理由说功能单一,不符合应用上架规范,还说我这类工具同质化太严重,没有创新空间。申诉了两次也没用,没办法只能转头做场外签名分发,这一年多踩过的坑,能凑满一箩筐。
最开始连IPA签名是什么都搞不懂,只知道打包出来的IPA包,不经过苹果信任的证书签名,iOS设备根本没法安装,点了安装直接弹“未受信任的开发者”,根本用不了。
最先接触的是P12证书,那时候找了个网上的小教程学导出,折腾了一晚上才弄明白,P12其实就是把开发者证书和对应的私钥打包导出的文件,不管你是用自己的个人开发者账号,还是找签名商提供证书,P12都是核心。我第一次导出P12,嫌麻烦没设密码,拿到签名商那边人家说根本用不了,私钥没导出成功,只能回去重新弄。后来我才知道,P12导出必须同时选证书和私钥,一定要设置密码,更重要的是,P12不能随便给陌生人,更不能给多个签名商共用,我同社群一个开发者,把自己99刀个人账号的P12同时给了三个签名商,结果其中一家拿着他的证书超额签名,不到半个月账号就被苹果封了,里面绑定的几百个UDID全废了,所有用户的APP一夜之间全掉签,他攒了大半年的用户跑了一半,欲哭无泪。我现在学乖了,P12备份在三个不同的云盘里,只给长期合作的靠谱商家,从来不乱分享。
说说市面上不同渠道签名的真实价格吧,很多新手刚进来根本摸不清行情,容易被坑。超级签名现在主流是按绑定设备收费,价格从五毛钱一个设备到三块钱一个设备不等,那种喊着九十九块钱包月无限签名的,百分之一百是坑,我上个月贪便宜试过一次,付了九十九,第三天全掉签,商家直接拉黑跑路,连人都找不到。我现在长期用的稳定超级签名,是一块八一个设备,支持后台自主移除不活跃设备释放名额,算下来其实比包年的划算很多。然后是企业签名,共享企业证书的一般几十块钱一个月,独立企业证书的两三百一个月,共享的我之前用过,平均十天掉一次,根本没法用。再就是TF签名,TF签名一般按版本收费,过审的稳定TF一个版本两百到五百不等,那种一百多块钱的TF,大多是用共享名额,用不了半个月就会被下。最贵的就是直接找人包过AppStore上架,那价格从几千到几万不等,还不保过,我这种小开发者暂时掏不起这个钱。
很多人问我超级签名的设备签名原理到底是什么,其实说穿了也不复杂,就是用苹果给个人开发者开放的测试权限,每个个人开发者账号可以绑定最多一百台测试设备的UDID,把用户设备的UDID绑定到开发者账号的设备列表之后,就能生成对应的描述文件,再用对应的P12证书给IPA签名,这样用户设备就能直接安装,相当于把本来给内测用的测试权限拿来做长期分发,核心就是UDID绑定。
UDID绑定这里也有坑,我之前碰到过不良商家,为了少收我钱,把两百多个用户绑定成一百个UDID,造假蒙我,我当时还觉得捡了便宜,结果不到一个星期苹果就检测到账号数据异常,直接封了账号,全掉签,哭都来不及。正规的绑定都是一个设备一个UDID,不会造假,用户安装的时候,通过H5封装的分发页就能自动获取UDID,不用用户手动复制,操作很方便。说到H5封装,现在不管是超级签名还是企业签名,基本都是用H5做分发载体,把获取UDID、签名、下载安装整个流程都封装到适配移动端的网页里,用户点一下就能走完所有流程,不用懂任何技术,我一般都是让签名商帮我做好H5封装,我直接把链接放到我个人博客上,用户就能自己下载安装,省心很多,唯一的问题就是偶尔域名会被微信拦截,需要换个域名,靠谱的商家都会免费帮你换,这个也不是大问题。
苹果的证书分发机制其实分好几种,最正规的当然就是AppStore上架分发,开发者把签名好的应用上传AppStore,过审之后所有用户都能下载安装,苹果官方托管,最稳定也最权威,只是审核门槛太高,很多小工具、内测应用、特殊需求的应用根本过不了审,所以才会有其他的分发方式。第二种是企业级分发,用企业开发者账号的企业证书签名,不需要绑定UDID,任何设备都能安装,但是证书很容易被苹果封禁,掉签率极高,适合短期内测不适合长期用。第三种就是我现在用的超级签名,走个人开发者的测试设备通道,绑定UDID分发。第四种就是TF签名,也就是TestFlight签名,是苹果官方的内测分发渠道,这个我之前也用了快一年。
TF签名确实稳定,因为是苹果官方的,只要你不违规,基本不会掉签,我之前那批用户不到一万的时候,用TF真的很香,不用天天担心掉签。但是TF也有自己的问题,首先还是要过审核,虽然审核比AppStore松一点,但也不是什么应用都能过,我那个隐私相册后来被人举报,直接被TF下架了,再提交也过不了。其次就是TF一个应用最多只能容纳一万个测试用户,我现在用户快一万六了,根本不够用,而且更新版本也要等审核,最快也要一天,慢的时候要一个星期,对于我这种经常更功能的小开发者来说,太磨人了。
说到掉签和补签,我真的一肚子苦水,最开始贪便宜找那种五毛钱一个设备的超级签名,两百多个用户才花了一百多,我还沾沾自喜省了钱,结果不到一个星期,一大早起来就十几条用户消息,都说APP打不开,掉签了。我赶紧找那个商家,半天不回消息,过了整整一天才回我,说账号被苹果封了,补签要再收八毛钱一个设备的补签费,我当时气得直接拉黑,这不是明摆着割韭菜吗?连个基本的超级签名售后服务标准都没有,当时说的好听免费补签,出事了就不认账。
后来经社群朋友介绍换了现在这家,人家一上来就把超级签名售后服务标准写得明明白白:掉签十二小时内必须完成补签,非开发者自身原因导致的掉签,补签完全免费;一个自然月内同一应用掉签超过三次,可退还剩余设备的全部费用;如果账号被封,免费更换账号重新签名,不会额外收费。我用了快半年,总共就掉过两次,一次是苹果批量清理个人证书,一次是我自己改IPA包的时候弄错了签名配置,第一次我凌晨提交的补签申请,不到两个小时就弄好了,第二次是我自己的问题,人家也没多收钱,免费帮我重新签了,这个售后真的比之前那些小商家好太多。
为什么说现在控制设备量的超级签名才稳定,很多不良商家为了多赚钱,一个个人账号明明最多只能绑一百台设备,他非要绑两三百台,苹果的风控系统一检测到异常,直接就封账号,不掉签才怪。我现在合作的这家,每个账号最多绑九十台设备,留十台的余量,就是为了避开苹果的风控,所以掉签率特别低,稳定很多。就算掉了,按照售后服务标准免费补,也不用我花额外的钱,用户那边只要重新下载一次就能用,数据也不会丢,影响很小。
P12证书的使用还有很多小细节我也是踩坑才懂,比如导出的时候一定要在开发所用的电脑钥匙串里导出,如果你换了电脑,没有迁移私钥,就算你有证书文件也导不出可用的P12,之前我换MacBook Pro的时候,差点把旧电脑的P12弄没,还好当时做了云备份,才没出大事。还有,如果你是找签名商提供P12证书,一定要确认是独立给你用的,不是很多人共用的,共用的证书掉签概率比独立的高好几倍。
我现在还在改我的隐私相册,加了很多自定义壁纸和加密笔记功能,就是想着下次再申请AppStore上架,能顺利过审,真能上架当然最好,用户用着也方便,我也不用天天操心签名的事。但是在那之前,找个靠谱的,有明确售后服务标准的签名商,真的能省太多心,不用天天盯着用户消息,怕有人说APP打不开,也不用碰到掉签了就急得团团转,找不到人补签。做独立开发本来就不容易,大部分时间都要花在写代码改功能上,要是天天为签名的事折腾,根本没精力做产品。
出门倒了杯水,看到用户群里没人反馈打不开,又安心坐回来改新的交互,最近打算加一个人脸识别解锁的功能,很多用户都提了这个需求,慢慢做,总会越来越好。