做了五年独立iOS开发,大半收入来自没法上架AppStore的小工具,苹果签名这块踩的坑,能装满我那块旧移动硬盘。
最早入行那年不懂事,听人说签名很简单,淘宝搜了个最便宜的,商家拍着胸脯说不限设备随便装,一年只要99块,我当时口袋紧,直接付钱拿了包。
结果不到一周,某个周一早上打开微信,九十多条未读,全是用户说App打不开,掉签了。
我赶紧找商家,商家半天回一句,证书被苹果封了,等补签。这一等就是一天,补完签不到三天,又掉了。一个月补了八次,我刚攒的几百种子用户,跑了快三分之二,那时候才搞懂,苹果签名证书设备数量限制,是苹果写在规则里的,哪来那么多不限设备的好事。
后来慢慢摸透了这里面的门道,从头理一遍,给和我一样的独立开发者提个醒。
先说说P12证书使用,我最早自己申请个人开发者账号,生成P12的时候捣鼓了整整三个通宵。很多新手不知道,P12本质就是把开发者证书和对应的私钥打包导出的文件,签IPA的时候必须要这个文件配合描述文件才行。我第一次导出P12,没勾选带私钥,导入钥匙串显示正常,签完包用户安装就是提示未受信任的开发者,折腾到凌晨两点才找到问题出在哪。现在我自己生成P12,一定会设强密码,之前见过同行的P12没设密码,被人盗走签违规App,最后证书被苹果吊销,自己手里所有的包全废了,损失好几万。
再说说不同渠道的真实价格,我摸爬滚打这么多年,各个渠道的价格门清,不会再被坑。现在市面上主流的几种签名,价格差很大:共享企业签名,就是好多开发者共用一个企业证书,现在市场价一般一个月50到200块,一年卡也就100多到300块,看起来便宜,但是稳定性极差,因为大家共用证书,只要有一个人签的App违规,或者证书绑的设备超过隐性限制,直接全掉,就是我最早踩的那个坑。独立企业签名,就是一个企业证书只给你一个人用,现在市场价一个月大概1000到1800块,根据证书的稳定性价格不一样,靠谱的渠道掉签后免费补签,两小时内就能搞定,适合用户量过千,又没法上TF的App。超级签名,用个人开发者证书绑定UDID分发,按设备收费,现在靠谱的渠道大概3到6块钱一台,终身绑定,适合小范围测试,或者用户量不多的产品。TF签名,就是上架苹果官方TestFlight的签名方式,现在市场价一个包大概200到500块,有效期90天,到期可以重新上架,苹果官方限制最多一万台测试设备,对于大部分独立开发者来说完全够用。
接下来讲讲设备签名原理,其实说穿了也不复杂。iOS系统的封闭性决定了,任何应用要安装,必须要有苹果官方认可的签名,证明这个应用是被允许在对应设备上安装的。设备签名就是,我们把用户设备的唯一识别码UDID绑定到开发者账号的授权设备列表里,再生成对应的描述文件,把描述文件打包进我们的IPA安装包,重新签名之后,苹果系统识别到这个设备在授权列表里,就会允许安装使用。
UDID绑定的逻辑我也踩过坑,很多不良商家做超级签名,一个个人开发者证书,苹果明明限制最多只能绑定100台设备,他非要绑个四五百台,超过苹果签名证书设备数量限制,苹果直接吊销证书,所有绑定的设备全掉签。靠谱的商家一般一个证书最多绑80台,留20台的余量做更换,不会触发苹果的风控,稳定性就高很多。个人开发者账号每年允许替换设备,就是绑满100台之后,你可以删掉旧的设备加新的,总配额还是100台,这个规则一定要记清楚,不要相信什么个人证书不限设备的鬼话。
然后说证书分发机制,现在市面上主流的分发机制其实分三种。第一种是企业证书分发,用企业开发者账号的证书给IPA签名,直接通过OTA链接分发,用户点击链接就能安装,不需要经过苹果审核,也不需要上架任何平台,适合没法过审的应用。第二种是超级签名分发,用多个个人开发者证书拼设备配额,自动获取用户UDID自动签名,不用用户手动操作,体验比老版的手动UDID绑定好很多。第三种就是TF分发,也就是TF签名,本质是把应用上架到苹果官方的TestFlight测试平台,用户通过邀请链接安装,是苹果官方认可的分发方式,稳定性是所有签名里最高的。不管哪一种分发,核心都是IPA签名,就是把我们打包好的原生IPA或者H5封装好的IPA,替换掉原来的签名信息,换成我们自己授权证书的签名,才能正常安装。
说到H5封装,我去年帮一个做本地同城服务的朋友做过,他不会写原生代码,把做好的H5页面封装成IPA,本来想上架AppStore,结果因为没有增值电信业务经营许可证,被苹果拒了五次,没办法只能走签名分发。一开始想做TF签名,结果内容里面有商家入驻的信息,TF审核也过不了,最后用了我长期合作的独立企业签,现在跑了快一年,只掉过一次签,商家补签半小时就好了,用户体验也还过得去,现在每个月流水都不错,也挺稳定。
其实我也不是所有App都走签名,能上架AppStore的我都尽量上架,毕竟上架之后没有设备数量限制,也不用操心掉签补签的问题,用户直接在AppStore搜索就能下载,转化率高很多。但是苹果的审核规则大家都懂,很多满足小众需求的工具,比如我做的本地加密备忘录、视频去水印工具,都因为各种原因被拒,根本上架不了,签名分发就是没办法的选择。
掉签和补签的苦,做过签名分发的开发者应该都懂。我印象最深的那次,前年冬天,我做的那个加密备忘录刚推广起来,攒了两千多用户,贪便宜换了个说不限设备的共享企业签,省了不少钱,结果圣诞节那天,我和朋友在外吃饭,手机震个不停,所有用户群全在说App打不开,证书被封了。我赶紧找商家,商家已经回老家过年了,过了三天才给我补签,那一波掉了快一千个活跃用户,我心疼了快半个月。从那以后,我再也不碰超便宜的不限设备签名,苹果的规则摆在那,超过证书设备数量限制必然触发风控,那些打破规则的承诺,本来就是骗新手的。
现在我选签名的逻辑很简单,能过TF审核就优先做TF签名,毕竟是苹果官方的,只要内容不违规,基本不会掉签,价格也不贵,一万台设备的限额对于大部分独立开发者来说完全够用。要是过不了TF,就用独立企业签,一个证书自己用,只要控制设备数量不超过隐性限制,一年也就掉个一两次,补签也快,不会出大问题。小范围测试就用超级签名,靠谱的渠道按设备收费,每个证书不超限额,稳定性也有保障。
昨天刚给新做的工具签完名,是个给摄影爱好者整理RAW格式文件的小工具,本来想上架AppStore,又因为文件管理的功能被拒了,还好TF审核过了,花了三百多块,现在已经放给用户测试了,这几天看下来,没有任何问题,用户安装也方便,点击链接跳转到TestFlight就搞定,不用像企业签那样还要装描述文件,省心太多。
做独立开发本来就难,要管开发还要管推广,还要应付苹果的各种规则,踩过的坑多了才明白,稳定比什么低价都重要,搞懂苹果签名证书设备数量限制的底层规则,就不会被那些乱七八糟的承诺骗到,选适合自己用户量的签名方式,少贪一点便宜,就能少很多糟心的事,能安心把更多精力放在做产品上。