我做独立iOS开发快四年了,接过二十多个定制开发项目,也上架过五款自己的工具类产品,从最开始碰分发授权就接连踩坑,掉签、封号、客户投诉赔保证金这些糟心事我都经历过,最近后台总有新手开发者问我超级签名证书多少钱一年,各类分发方案怎么选才稳定,索性把这几年的实战避坑经验整理出来,给刚入行的朋友做个参考。
P12证书是给IPA签名的核心凭证,本质是导出苹果开发者后台证书后,包含证书和私钥的加密文件,很多新手刚接触的时候对P12的使用规范完全没概念,我第一次做项目就是因为不规范,不到半个月账号就被标记风险,掉了所有签好的包。 我总结下来,P12的使用规范核心有四点:第一,导出P12必须设置强密码,绝对不能不设密码或者用弱密码,更不能随便把带私钥的P12发给不相关的人,一旦私钥泄露,被别人拿去签违规应用,你的整个开发者账号都会被苹果封禁,申诉几乎不可能通过,我之前有个同行朋友把P12放在公共云盘里共享,结果被人拉去签违规应用,账号直接被封,里面所有的应用都掉了,损失了十几万的客户款。 第二,一个P12尽量只对应一个应用,不要用同一个P12批量签多个不同的IPA包,苹果的风控系统会检测到异常批量签名,很容易触发证书吊销,我最早就是把同一个P12给三个不同的定制项目签名,结果三天后证书直接被撤,所有用户都打不开应用,我挨个给客户道歉补发,还赔了一个客户的违约金。 第三,不用的过期P12一定要及时在开发者后台 revoke 吊销,不要留在账号里占名额,也避免被苹果检测到无效证书引发风险,很多新手开发者不注意这个,时间长了账号里堆了几十个没用的证书,苹果很容易判定账号异常。 第四,绝对不要把P12文件上传到公共代码仓库或者公开可访问的网络空间,Github上每年都有大量被爬走的P12,很多开发者大意上传,最后账号被封,这个坑真的是防不胜防。
讲完P12的规范,得先给大家理清iOS设备授权的基本原理:iOS系统本身是封闭的,所有能在设备上正常打开的应用,都必须经过苹果信任的证书授权,只有你的应用的安装设备UDID被添加到了证书对应的授权设备列表里,应用才能正常启动,不同的分发方式,授权逻辑不一样:AppStore上架的应用是苹果官方给所有设备公开授权,所以不需要用户绑定UDID,这是最省心的;而其他非上架的分发方式,都需要提前把用户设备的UDID加到授权列表里才能正常使用。
UDID绑定的实操流程我做了不下几百次,总结出来最顺畅的流程是这样的:我们首先需要做一个H5封装的分发落地页,也就是大家常说的下载页,页面里要放应用介绍、安装指引和获取UDID的入口,用户点击获取UDID后,会引导用户安装苹果官方的描述文件,安装完成后就能获取到用户设备的唯一UDID,然后回传到我们的签名后台。 这里要注意,H5封装的时候一定要准备至少一个备用域名,苹果经常会拦截分发用的域名,如果只有一个主域名,被封之后所有用户都没法下载,我之前吃过大亏,最早做一个节日活动类的H5封装应用,主域名被封后没有备用域名,活动三天,我花了一天时间才把域名解析换好,客户直接扣了我三成尾款。 拿到UDID之后,我们的后台会自动把UDID分配给对应的个人开发者账号,添加到授权设备列表里,接着用对应账号的P12给原IPA重签名,生成专属的下载链接,用户安装就能打开。 这里有两个实操坑一定要避开:第一,苹果服务器同步UDID信息需要10到30分钟,一定要等同步完成再重签名,不然绑定的UDID还没出现在证书里,用户装完也会提示未授权,打不开,我之前刚做的时候就是急着出包,绑完就签,结果近一半用户安装失败,折腾了整整一天才重新补发完。 第二,每个个人开发者账号最多只能绑定100台设备,所以我们一定要在后台做限制,单个账号绑定到90台就不要再加新设备了,超过100台之后,新绑定的设备会挤掉最早绑定的设备,被挤掉的设备就会掉签失效,非常影响用户体验。
现在主流的四种分发方式分别是企业证书分发、超级签名、TF内测、AppStore上架,我挨个说优劣和价格体验,也给大家说清楚超级签名证书多少钱一年。 首先是企业证书分发,用企业开发者账号的P12签名,优势是不限设备数量,价格看起来便宜,一般稳定版企业签名一个月几百到一千多,劣势是现在苹果对企业证书查得非常严,很容易掉签,动不动就全量失效,需要频繁补发,我现在除了临时上线的测试项目,绝对不用企业证书,稳定性太差了。 然后是超级签名,也就是我们刚才说的用个人开发者账号绑定UDID签名的方式,这也是现在很多非上架项目的首选,超级签名证书多少钱一年其实分两种情况:如果你是自己囤号自己做,苹果官方的个人开发者账号一年是99美元,折算成人民币大概700元左右一个,一个账号最多绑定100台设备,平均下来每台设备一年成本大概7块钱;如果你找第三方平台做超级签名服务,一般是按绑定设备收费,价格从1元到3元每台设备一年不等。 这里我踩过的坑非常多,最早找过个人中间商,99块钱包年给我用证书,结果不到一个月账号被封,对方直接失联,不给补发,我所有用户都掉签,赔了客户两千块钱,后来又碰到过那种300块钱一年不限设备量的超级签名,看起来很划算,其实用的是黑号、共享号,不到两个月全掉,还是不给补发,所以我给大家的提醒就是,超级签名绝对不要贪便宜,低于1元每台的基本都是用的违规证书,用不了多久就会全掉,算下来反而比正规证书贵很多。
接下来是TF内测,也就是TestFlight,苹果官方的内测分发渠道,优势太明显了,因为是苹果官方托管签名,只要审核过了,永远不会掉签,根本不需要做失效补发,稳定性比超级签名还高,审核比AppStore松很多,大部分合规的应用都能过,缺点就是每个应用最多只能绑定10000台测试设备,而且用户安装需要跳转TestFlight,多了一步操作,部分小白用户不会操作,如果你的用户量在1万以内,应用内容合规,我强烈推荐用TF,我有一个工具类应用在TF跑了两年多,从来没掉过签,省了无数事。 最后就是AppStore上架,这是最正规最稳定的方式,优势是所有用户都能下载,不需要绑定UDID,不会掉签,用户信任度最高,缺点就是审核非常严格,很多定制类、工具类应用不符合上架要求,过审难度大,上架成本也不低,找代上架一般都要大几百到上千,每年还要交99美元的开发者年费,如果你的应用符合上架要求,我一定劝你优先上AppStore,一劳永逸,根本不用管什么签名、掉签、补发的事。
我做了这么久,总结出来的稳定方案其实很简单,分场景选择就好,核心就是优先用官方渠道,遵守苹果规则,能不碰违规证书就不碰。 首先,如果你的应用符合AppStore上架要求,直接上AppStore,这是最稳定的方案,没有之一,除了每年交年费,完全不用管其他的,也不用做失效补发,用户体验最好。 如果你的应用不符合AppStore上架要求,用户量又在10000以内,直接做TF内测,这是第二稳定的方案,只要过审,根本不会掉签,我现在大部分非上架项目都用TF,省心程度比超级签名高太多。 如果你的用户量超过10000,或者内容过不了TF审核,那再选超级签名,超级签名要稳定,一定要记住这几点:第一,绝对不用共享P12,尽量用自己注册的正规个人账号,或者找平台用独立账号,一个账号绑定不超过90台设备,绝对不超量,超量就会挤掉旧设备,导致失效,一个P12只签一个应用,不跨应用签名,降低被苹果风控检测的概率。 第二,H5封装一定要做多域名备用,做好域名分流,主域名被封了马上切备用域名,不会影响用户下载,H5封装获取UDID要用适配最新iOS版本的描述文件,iOS16以后苹果调整了UDID获取的规则,旧模板很容易获取失败,一定要及时更新。 第三,一定要找支持失效补发的服务商,哪怕价格贵一点,也比掉签了没人管强,我现在合作的平台是掉签后2小时内免费补发,用户重新下载一次就能用,对体验影响很小,只要你按规范操作,超级签名的失效概率其实很低,我现在的超级签名项目,平均两三个月才会有一个账号出问题,补发一次就能解决,非常稳定。 第四,IPA授权一定要做好设备绑定,很多新手不做IPA授权,签好的包被到处分流,导致一个证书的设备量爆增,很快就超量掉签,我自己的做法是每个授权码对应一台设备的UDID,只有授权过的设备才能下载IPA,防止包被盗用,也能控制每个证书的设备数量,延长证书的使用时间。
其实做iOS非上架分发,没有什么百分百不掉签的方案,但是只要你遵守苹果的规则,选对适合自己的方案,就能把失效概率降到最低,也能给用户很好的体验,新手最容易犯的错就是只看价格,不看稳定性,贪便宜用低价的共享证书黑证书,最后掉签丢客户,反而亏了更多,大家可以根据自己的用户量来选择,量小找平台更划算,量大自己囤号更便宜,只要不走贪便宜的坑,就能少走很多弯路。