我做独立iOS开发快六年了,刚做出来第一个工具应用的时候,满脑子都是赶紧给身边朋友用上,根本没想过签名这块能有这么多坑。
那时候一心想上AppStore,结果我做的是去广告的小插件,改了三版还是被拒,最后账号都收到了苹果的违规警告,才彻底死心转头找签名渠道,才算真正摸到了IPA签名这门“学问”。
第一次接触P12证书,还是找做开发的学长要的闲置证书,那时候根本不懂P12是什么,只知道有了它就能给我的IPA包签名。后来才明白,P12就是导出的带私钥的开发者证书文件,相当于你签名的钥匙,苹果的所有签名验证都要靠它。这么多年我见过太多人在P12上栽跟头,有人贪便宜买二手P12,用了三天就被原主人吊销,直接掉签;有人把自己个人账号的P12随便给签名商托管,结果对方拿你的P12签违规应用,直接把你整个开发者账号封了,之前上架的所有应用全下架,哭都没地方哭。我现在自己用的P12,都是自己的开发者账号生成的,导出必须设强密码,存在加密云盘里,从来不会转借任何人,这是最基本的安全常识。
说点干货吧,做了这么多年,各个渠道签名的真实价格我门清,别被那些低价营销坑了。正规超级签名,也就是大家说的设备签名,用正经个人开发者账号做的,一个设备年卡正常价格在15到30块之间,那些喊你几块钱终身签的,百分百是用黑号共享证书,不出半个月肯定掉。企业签名分两种,共享证书的便宜,几十块钱一个月,但就是几百个应用挤一个证书,只要有一个应用违规,整个证书全掉,我之前花60块买过一个月,不到一周掉了三次,折腾到最后用户全跑了;独立企业签名,一个证书只放你一个应用,稳定很多,正常价格一个月200到500块,看应用类型,包年的话稳定的一般两千多,毕竟苹果企业开发者账号年费就要299美元,人家不可能亏本做买卖。TF签名,也就是TestFlight签名,这是现在公认最稳的,正规做的话一个应用从提交到上架,价格在三五百到一千多不等,那些一百多给你做TF的,要么是用别人闲置名额挂你,随时给你踢下来,要么就是账号本身有违规记录,没几天就被封。
很多刚入行的朋友问我,设备签名到底是什么原理?其实说穿了很简单,苹果给每个个人开发者账号开放了测试设备绑定权限,一个账号最多可以绑100台设备,设备签名就是把用户设备的UDID提前加到你账号的设备列表里,再用你的P12证书给IPA签名,苹果验证到设备是开发者授权过的,就允许用户安装使用。这里就绕不开UDID绑定,每台iOS设备的UDID都是独一无二的,相当于设备的身份证,不绑定到开发者账号里,你签完名用户也装不上。我刚做的时候不懂,手动让用户去网页查UDID,一半用户嫌麻烦直接走了,后来才用平台自带的自动获取UDID功能,省了太多事。之前我贪便宜找过一个不限设备的超级签名,价格比正常低一半,用了才知道,他们就是把一堆快被封的账号拼起来,哪个账号掉了,绑定在上面的设备就全掉,半个月我一百多用户掉了八十多,补都补不完。
苹果现在的证书分发机制其实很清晰,一共三种主流的。第一种就是AppStore上架分发,用官方的发布证书,只要你能过审,所有用户都能下载,不需要绑定任何东西,是最稳定最合规的,我现在只要能改到符合上架要求的应用,都会优先改了上架,我那个笔记小工具改了三次过审,现在每天都有自然下载,根本不用操心掉签的问题,比什么签名都香。第二种就是Ad Hoc分发,也就是超级签名用的分发模式,绑定UDID,最多一百台设备,适合小范围内测,自己用自己的账号做,合规又稳定,成本也低,一个个人账号年费才六百多,一百台设备合下来一台一年才六块钱,比找外面签名商划算多了。第三种就是企业级分发,给企业内部员工用的,不需要绑定UDID,只要证书有效就能装,但是现在苹果查外部分发查的严,很容易掉签,只有那种用户量比较大,又实在没法上架和做TF的应用才会用。
我做H5封装的应用也有好几个了,很多人说H5封装的IPA签名容易掉,其实根本不是这样,掉不掉只看内容合不合规,证书稳不稳。我那个H5封装的本地书签工具,内容都是用户自己存在本地的,没有任何违规内容,用独立企业签名签了四个多月了,一次都没掉过。我之前认识一个开发者,封装盗版小说站,签完三天就掉了,证书直接被苹果吊销,那才是内容的问题,和H5封装本身没关系。
说起掉签补签,我可太有发言权了,掉不掉签真的能决定一个小开发者的生死。我刚做那会,用户都是一点点攒的,攒了大半年攒了八百多用户,贪便宜买了个99块包年的共享企业签名,结果每周掉两三次,每次掉签所有用户都打不开应用,我一个个发通知让用户重新装,好多用户直接就把应用删了,那段时间掉签掉的我都想放弃开发了。找商家补签,商家一会说证书在维护,要等一天,一会说你的应用违规要加钱换证书,折腾到最后,八百多用户剩不到一百,那种无力感真的忘不了。还有一次凌晨两点,我都睡了,十几个用户发消息说应用打不开,我爬起来找商家,商家根本不回消息,我蹲在厕所等到四点,最后还是找朋友借了临时证书才补上,从那之后我就下定决心,签名这块绝对不贪便宜,多少钱都要用稳定合规的。
现在我用签名其实分的很清楚,能上AppStore绝对不上架别的渠道,上架之后一劳永逸,不用天天盯着掉签提醒,用户体验也好。实在没法上架的,我优先选TF签名,TF本身就是苹果官方认可的测试分发方式,合规性完全没问题,只要内容不违规,基本不会掉,我那个去广告插件放TF快八个月了,一次都没掉过,用户安装也方便,点个链接就能跳TestFlight安装,不需要手动信任证书,也不用获取UDID,体验比别的签名好太多。唯一的限制就是一个TF最多一万个测试名额,对于我这种独立开发者来说完全够用,真的用户多了,多申请几个TF名额就好了。如果只是小范围内测,几十上百个朋友用,我就自己用个人账号做超级签名,自己绑UDID自己签名,自己掌控P12和账号,根本不会掉,成本也低,用着放心。企业签名我现在只用独立证书的,共享的碰都不碰,只要内容合规,掉签概率很低,就算掉了,正规商家也会免费快速补签,两个小时就能搞定,不会耽误用户使用。
其实苹果本身开放这些分发渠道,就是给开发者做内测用的,合规使用根本不会有问题,就怕有人钻空子,用黑号、盗来的证书签违规应用,最后不仅掉签封号,搞不好还要承担法律责任。我之前认识一个小签名商,收了一堆黑号给人做签名,最后被苹果起诉,赚的钱不够罚款,还留下了记录,真的得不偿失。做开发这么多年,我最大的感受就是,走合规的路子才能走得长远,不要想着赚快钱钻空子,省几十块几百块,最后把自己攒了很久的用户和账号都搭进去,太不值了。
现在我每次给新应用做签名,都会先理清楚需求,选合适的渠道,确认证书来源正规,内容合规,这么多年下来,很少再出乱七八糟的问题,不用半夜爬起来处理掉签,也不用担心用户突然全跑了,日子也慢慢稳了下来。