做独立iOS开发快五年,大部分时间都在做小工具类应用,不是所有应用都能符合AppStore的上架规则,绕开官方商店做分发的这几年,签名踩过的坑能堆满满一文件夹。
最早接触IPA签名的时候,我连基本的规则都搞不懂,只知道iOS安装包必须签名才能安装,不然就算你导出了IPA包,用户下载了也没法点安装。一开始我自己买了99美元的个人开发者账号,想学着自己签名,第一步导出P12证书就卡了我整整一晚上。那时候不知道导出P12必须包含私钥,只导了个证书文件出来,签出来的包要么验不过,要么装到一半闪退,折腾到凌晨三点才搞明白,P12本质就是打包了证书和私钥的文件,给IPA签名的时候,苹果就是靠P12里的信息验证这个包是不是经过授权的。后来吃了一次亏,导出P12的时候我都特意备份,密码记在专门的笔记里,就怕哪天忘了密码,整个证书直接废掉。P12还有个要注意的点,绝对不能随便外流,我之前听说有开发者把自己的P12发给第三方签名商家帮忙签名,结果商家拿这个P12给几十款违规应用签名,没半个月账号就被苹果封了,自己的正经应用也跟着掉签,找谁说理都没用。
说回设备签名的原理,其实不管是超级签名、企业签名还是TF签名,本质都是用苹果开放给开发者的合法授权权限来分发应用。超级签名的核心就是UDID绑定,苹果给个人开发者的权限里,允许最多绑定100台测试设备,你开发的应用,可以直接安装在你绑定过的设备上。超级签名就是把这个权限做成了自动分发的服务,你放一个超级签名链接分发出来,用户点链接的时候,后台会自动获取用户设备的UDID,自动把这个UDID添加到对应的开发者账号设备列表里,再用对应P12证书和描述文件给你的IPA重新签名,生成可以直接安装的下载链接,整个过程都是自动的,开发者不用手动操作,用户也不用懂什么技术,点几下就能装。
苹果的证书分发机制其实卡的很严,所有能正常安装的IPA,都必须经过苹果官方授权的证书签名,任何破解或者伪造的证书,都撑不了几天就会被封。这也是为什么很多便宜签名掉签掉的那么频繁,本质就是证书本身就有问题,或者一堆违规应用挤一个证书,随便一个被举报,整个证书就没了。
不同渠道的签名价格我摸的门清,给你们说点真实的,市面上那些打着几分钱一个UDID、几十块钱无限签的,基本都是引流割韭菜的,我最早贪便宜试过99块钱一千次超级签名下载,结果第三天整个证书就没了,商家直接拉黑,连补签的人都找不到。现在正规的超级签名,一般按UDID年费算,单个UDID一年1.5到3块钱,按下载次数算的话,一千次下载大概150到300块,正规商家同一个UDID一年内重装不重复扣费,这个价格是合理的,毕竟服务商拿一个99刀的个人账号,成本就要七百多人民币,摊下来每个UDID本身就有成本,不可能卖的太便宜。然后是企业签名,共享企业签现在一个月大概100到300块,一个证书签几百个应用,掉签概率极高,独立企业签就是一个证书只给你一个应用用,一个月大概1000到1800块,比共享稳,但还是比超级签名掉的概率高,毕竟企业证书本身就是苹果监控的重点。然后是TF签名,也就是TestFlight签名,这个是苹果官方的测试分发渠道,正规代上架TF的费用大概一次200到500块,有效期90天,到期可以续,一个TF应用最多支持一万个测试用户,基本不会掉签,但是安装需要跳转TestFlight,很多普通用户嫌麻烦不愿意装,而且审核比超级签名严很多,有些不符合规则的应用根本过不了。至于AppStore上架,自己有账号可以弄,找第三方代上架的话,普通应用大概1000到3000块,过了才收钱,但是很多工具类、涉及自定义接口的应用,本身就不符合上架规则,再怎么弄也过不了,只能走第三方签名分发。
我前两个月帮朋友做了个小区业主的便民工具,就是把原本放在公众号里的H5功能,直接H5封装成了IPA包,因为里面涉及到物业服务的缴费接口,资质不全,根本过不了AppStore审核,最后就选了超级签名链接分发,整个下来成本才几百块,用户扫码点链接就能直接安装,不用跳转任何第三方,放在小区群里推广,两个多月了,没掉过一次签,用户用着都挺顺的。
掉签补签这个事,我是真的有阴影。去年圣诞节前,我做的那个本地停车缴费的小工具,那时候图便宜找了个120块一个月的共享企业签,结果平安夜那天突然全掉了,几百个用户在群里喊打不开,我凌晨一点联系商家补签,商家半天不回消息,我自己急的满头汗,到处找新的签名渠道,重新打包重新签名,折腾到天亮才把新链接发出去,最后还是跑了三分之一的用户,之前花的推广费直接打了水漂,那半个月我都提不起精神做新功能。从那之后我就再也不用便宜的共享签了,老老实实选稳定的独立超级签名。
其实超级签名也不是说完全不会掉签,要是开发者账号被苹果封了,或者应用本身违规被举报,还是会掉,但是正规的服务商掉签补签都做的很好。我现在用的这家,只要不是应用本身违规被封,掉签之后两个小时内就能补好,而且原来的超级签名链接不用换,用户只要不删应用,重启一下就能用,根本不用重新下载,对用户来说几乎没影响。上个月服务商那边有个账号被苹果抽风封了,我有三百多个用户在那个账号上,服务商没等我找过去,当天就把所有UDID移到了新的备用账号上,我都没发通知说掉签的事,大部分用户根本没发现异常,这种稳定才是真的好用。
说到UDID绑定,这里还有个坑要提,很多不良商家,只要用户重新安装一次,就算一个新的UDID,重新扣你的名额,我之前就吃过这个亏,一个一百多用户的小工具,不到三个月就用了三百多名额,平白多花了好几百。正规的商家都是同一个UDID一年内只扣一次,不管你重装多少次,还原手机多少次,都不会重复扣费,这个才是合理的规则。
AppStore上架一直是所有独立开发者的心病,我前两年花了大功夫改了一个记账工具,改了三次,被拒了三次,理由就是包含未备案的第三方功能,最后实在折腾不动了,就签了超级,放我自己博客分发,现在每个月也有小几千用户用,比上架了没流量香多了。
我也试过TF签名,之前有个几千用户的工具,想转TF稳一点,结果提交三次都被拒了,说应用包含不符合测试规范的内容,最后还是转回了超级签名。其实各有各的好,用户量小的时候,一万名额以内其实TF也能用,但是用户体验确实不如超级签名直接安装来的爽,大部分用户听到要下TestFlight,转头就走了,下载转化率要比超级签名低不少。
现在做独立开发,本来就是小打小闹,赚点零花钱,没必要为了省几十块钱签名费,天天提心吊胆的。找对稳定的渠道,选适合自己应用的签名方式,比什么都重要。
前几天刚给新做的一个私密记事小工具签完,把超级签名链接放在了博客侧边栏,每天都有几十个用户自行下载安装,这几天天气转凉,晚上改完bug,泡一杯热茶坐在窗边,不用盯着用户群等消息,不用怕突然掉签要熬夜补,这种踏踏实实的感觉,比什么都重要。