我接触iOS签名机制快十年了,从最早的越狱时代帮朋友绕开安装限制,到现在帮中小开发者做合规分发,踩过的坑比走过的路还多,最近不少刚入行的朋友找我问各种签名的问题,尤其是问到P12签名证书申请这块,十个人有八个踩过材料准备不对的坑,索性把我这么多年的实操经验整理出来,从底层逻辑到实际踩坑,全都说透。
先从最基础的设备签名逻辑说起,很多新手只知道要签名才能装App,却不知道为什么。iOS本身是闭源的沙盒机制,苹果为了控制恶意软件流入,要求所有能在iOS设备上运行的应用,必须经过苹果官方信任的证书签名,简单来说就是苹果给你盖个章,证明这个安装包是被允许运行的,手机内核验章通过才会让App启动。我们常说的IPA签名,本质就是把已经打包好的IPA安装包,用合法的P12证书和对应的描述文件重新签名,替换掉原来无效的开发者签名,让设备能正常识别安装,很多做H5封装的朋友应该对这个流程特别熟——不少中小开发者做内部工具、垂直业务App,不想或者不能上AppStore,都会先把做好的H5页面封装成IPA包,再做签名分发,我前两年帮本地好几家生鲜连锁做门店内部订货工具,走的就是这个流程。
接下来说说证书分发原理,苹果的开发者账号分为两种,一种是99美金的个人/公司开发者账号,一种是299美金的企业开发者账号,P12证书其实就是我们把苹果签发的证书和本地保存的私钥打包导出的文件,不同账号的证书分发权限不一样。99刀账号的证书只能用来上架AppStore,或者做TF签名,也就是苹果官方的TestFlight内测分发,不能做脱离AppStore的外部安装;299刀的企业账号证书,是苹果开放给企业做内部员工应用分发的,不需要经过AppStore审核,直接签名就能分发安装,这也是我们现在做线下分发最常用的证书来源。不管是哪种证书,分发的核心逻辑都是苹果授权证书的信任链,只要证书没被苹果吊销,签名过的App就能一直运行。
说到这里就不得不提大家最关心的Apple ID风控,这也是最近几年签名掉签、账号被封最主要的原因。苹果现在的风控机制已经非常智能了,不是你买个开发者账号就能一直用,它会持续监控你的账号行为:证书签了多少个App、总安装量有多大、签名的App有没有违规内容、账号登录IP是不是经常变动,任何一个环节异常都可能触发风控,轻一点吊销证书,重一点直接封掉整个开发者账号。我之前吃过不少风控的亏,最早贪便宜买过二手企业号,原号主的身份信息不全,申请P12证书的时候材料就不全,结果签完App不到一周,账号直接被封,所有用户的App都打不开,赔了客户不少违约金。说到这里就回到P12签名证书申请材料准备这块,很多新手容易在这里栽跟头,我整理了多年的经验,申请正规可用的P12证书,必须提前准备好这些材料:首先是开发者账号对应的Apple ID,必须是完整实名认证、绑定了双重认证、没有违规风控记录的,如果是企业账号,还要准备有效期内的企业营业执照、可查询的有效邓白氏编码,邓白氏编码一定要提前查清楚状态,无效的编码根本申请不下来账号;其次是CSR证书请求文件,这个必须是你自己本地用苹果钥匙串工具生成,绝对不能用网上下载的现成文件或者别人帮你生成的,不然私钥不匹配,导出的P12根本没法用,我第一次申请P12就是懒省事用了网上的CSR,折腾了整整一天才找到问题出在哪;最后如果是做开发调试证书,还要提前收集好测试设备的UUID,确认账号的设备限额够用,这些材料准备齐全,申请下来的P12才是稳定可用的,少一样都可能埋下隐患。
聊完基础逻辑,再说说大家选证书最关心的独享证书和共享证书,还有我自己做的稳定性实测,以及不同渠道的价格感受。现在签名市场上最常见的就是这两种证书,共享证书就是一个企业开发者账号生成的P12,分给几十上百个客户共用,不管是什么类型的App都往上签,价格非常便宜,我见过最便宜的共享证书签IPA,一个月只要几块钱,便宜一点的平台也就几十块钱一个月。我刚入行的时候贪便宜用过好长时间共享证书,那掉签掉的真的让人崩溃,最便宜的那种平均两三天掉一次,有时候一天掉两次,我天天啥也不用干,就给用户重新发安装包补签,后来有一次赶上苹果清查违规App,这个共享证书上签了好几个赌博类App,整个证书直接被吊销,我那个客户做的本地服务App五百多用户全部打不开,客户直接跟我终止了合作,我赔了小一万块钱,从此再也不敢碰低价共享证书。
那独享证书呢?就是一个P12证书只给一个客户用,或者只签客户的一个App,不会让其他人共用,价格当然要贵很多,我现在用的一手独享P12,按月付是五百多一个月,年付的话五千多,比共享证书贵了十倍都不止,但稳定性真的天差地别。我去年专门做过一次三个月的稳定性实测,同一个H5封装出来的IPA包,内容完全一致,分别用三块钱的共享证书、一百块钱的共享证书、五百块的独享证书做签名,投放到市场里跑数据:三块钱的共享证书,三个月一共掉签27次,平均不到四天掉一次,最高峰一天掉了两次;一百块钱的共享证书,三个月掉了6次,平均半个月掉一次,赶上苹果风控抽风的时候一周掉两次;而我的独享证书,三个月只掉了一次,还是因为客户更新版本的时候加了不合规的外链,被苹果扫到触发预警,调整内容重新签名之后,到现在快一年了都没掉过。
再说说不同渠道的价格感受,我接触过的签名渠道大概分三类:第一类是个人二手倒票,就是转手卖共享证书,价格最便宜,几十块钱就能包年,但基本没有售后,掉签了找不到人,我最早被坑过一次年付,不到半个月对方直接失联,钱也打了水漂;第二类是第三方自助签名平台,共享证书一般几十到一百多一个月,独享证书三百到八百一个月,平台有保障,掉签会给补签,但平台要赚差价,比一手资源贵不少;第三类就是直接跟做证书的工作室合作,拿一手独享证书,价格比平台便宜一百到两百一个月,出问题对接也快,我现在就是跟固定的工作室合作,三年多了一直很稳定。另外还有TF签名,也就是TestFlight签名,这个是苹果官方的内测渠道,价格一般是按次收费,一次三百到五百,有效期三个月,到期要重新上传,TF签名的优势是官方渠道,掉签率极低,只要内容合规基本不会掉,缺点是最多只能支持一万个测试设备,用户量超了就不行,而且还要过苹果的审核,违规App根本上不去。而上AppStore当然是最稳定的,只要你不违规永远不会掉签,用户下载也方便,但缺点也很明显,审核严,上架成本高,从几千到几万不等,每年还要交年费,很多做内部工具、小范围使用的App根本没必要,也过不了审核,所以才会选择企业签名或者TF签名。
我这些年遇到的问题真的不少,除了之前说的共享证书掉签、材料不对申请不了P12,还遇到过不少商家把共享证书冒充独享证书卖,收了独享的钱给共享,结果半个月掉好几次,很多新手分辨不出来就被骗了。还有就是闲置很久的开发者账号,突然拿出来申请P12签名,很容易触发Apple ID风控,我之前有个闲置了一年多的企业号,拿出来申请证书不到一周就被封了,后来才知道,闲置账号突然开始大量签名,苹果会判定为账号被盗或者违规使用,直接封号,现在我申请新证书都会先养号半个月,慢慢增加安装量,基本就不会触发风控了。
这么多年摸爬滚打下来,我最大的感受就是,签名这块真的是一分钱一分货,稳定永远是第一位的,想要长期用,真的不能贪便宜。不管是做IPA签名还是H5封装的App,选对证书比什么都重要,只要你把P12签名证书申请的材料准备齐全,选对正规的独享证书,避开共享证书的坑,做好内容合规,基本就能保证长期稳定运行,少了很多麻烦。