我接触苹果签名至今快八年了,从最早企业签名刚兴起的时候就入坑,帮身边开发者朋友、本地商家做过无数次IPA签名、H5封装,也帮不少团队对接过官方上架、TF签名流程,踩过的坑比我经手的证书还多,今天就把这些年摸透的干货用真实体验讲出来。
先从最基础的签名技术原理说起,很多刚接触iOS开发的朋友搞不懂为什么一定要签名,本质上这是苹果闭源生态的安全机制:所有能在iOS设备上运行的APP,都必须经过苹果官方的签名授权,系统会通过非对称加密验证签名的合法性,没有合法签名的IPA包,要么根本装不上,要么安装后打开就会提示“未受信任的开发者”直接闪退。不管是我们常说的超级签名、企业签名还是TF签名,本质都是拿到苹果官方颁发的合法证书,给IPA包做授权签名,让iOS系统认可这个APP可以运行,不存在什么绕开苹果验证的黑科技,只是不同签名用的证书类型和权限不一样而已。
接下来聊大家问得很多的证书池机制,其实这个机制完全是为了适配超级签名设备数量限制诞生的。苹果规则里明确规定,一个个人开发者账号,最多只能绑定100台测试设备,也就是单张个人开发证书最多只能给100台设备做超级签名,那如果我们要做几百上千台设备的签名怎么办?服务商就会把大量不同身份注册的个人开发者证书统一放到一个服务器集群里,自动根据设备需求调配有空余配额的证书,哪张证书还有空位就用哪张签,满了就自动换池子里下一张可用证书,这就是完整的证书池机制。我最早自己搭过小证书池,只攒了10张正规注册的个人证书,最多也就承接900多台设备的签名需求,现在正规大服务商的证书池有几千张正规证书,总的可用配额能到几十万,看起来就像没有设备数量限制,实际本质还是多张证书拼出来的总配额。
然后说UDID绑定,这是超级签名的核心环节,很多新手搞不懂为什么超级签名要获取UDID,其实还是苹果的规则要求:个人开发者做Ad Hoc模式发布,必须提前把要安装APP的设备UDID添加到证书的设备列表里,只有在列表里的设备才能安装签名后的APP。所以完整的UDID绑定流程是:用户点击安装链接的时候,先自动获取设备的UDID,发送到签名服务器,服务器从证书池里找到有空余配额的证书,把这台设备的UDID添加到证书的设备列表中,重新生成对应的描述文件,之后才会做签名生成安装包,这个绑定过程是不可逆的,绑定一台就占一个证书配额,所以也进一步坐实了超级签名的设备数量限制,不存在真的无限制超级签名,都是证书池堆出来的。
聊完基础机制,再说说我天天做的重签流程,这么多年我手动签过、自动化脚本签过,完整的重签流程其实非常清晰:第一步拿到用户提供的原始IPA包,不管是原生开发的IPA还是H5封装生成的IPA,第一步都是先解压,移除原包自带的旧签名信息,也就是行业里说的脱签;第二步根据签名类型匹配对应的证书和描述文件,如果是超级签名,就先完成刚才说的UDID绑定,生成新的描述文件;第三步用新证书和新描述文件,对解压后的APP内容重新做加密签名计算,生成新的签名文件;第四步重新打包成符合要求的IPA,上传到下载服务器生成安装链接,用户就能直接在Safari点击安装了。如果遇到掉签需要补签,其实就是完整走一遍重签流程,换一张有效的可用证书重新签名就行,现在都是自动化脚本处理,几分钟就能搞定,早年手动用Xcode签一次要十几分钟,现在效率高太多了。
接下来就是大家最关心的超级签名与企业签名的真实稳定性对比,还有不同渠道的价格,我先明说,我经手过近千个客户的签名需求,80%以上只要选对正规渠道,不管是超级还是企业签名都好用稳定,只有不到两成的掉签问题,基本都是贪便宜选了劣质渠道导致的。先给大家报一下我这些年接触到的真实市场价,大家可以做参考:企业签名一般分三个等级,最便宜的是共享企业证书签名,几十个上百个APP共用一张企业证书,报价一般是一个月50到150元,很多小平台甚至打出9.9元一个月的低价;然后是独立企业证书签名,一张证书只放5到10个APP,不会滥接,报价一般一个月300到600元;最贵的是专有企业证书签名,一张证书只给一个APP用,报价一个月1000到2500元。然后是超级签名,因为受设备数量限制,都是按设备收费,正规渠道的报价一般是单个设备一年8到15元,一千台设备打包就是5000到10000元,量大还能优惠,小批量不满一百台的话单设备会贵一点,大概15到20元一台一年。然后是TF签名,也就是TestFlight官方测试签名,一般是按名额收费,一个TF链接最多10000个安装名额,打包价大概1500到3000元,按次安装的话是2到5元一次。官方上架的话,苹果开发者年费是99美元一年,代上架服务费根据APP类型从3000到几万元不等,过不了审一般退一半或者不退,这个大家都知道。
说回稳定性,我这么多年的真实感受是,正规超级签名的稳定性,比普通共享企业签名高太多,甚至不输中高端的独立企业签名。我有个本地餐饮客户,三年前做了H5封装的点餐APP,因为没有相关资质没法官方上架,就做了正规证书池的超级签名,一共不到600台设备,到现在只掉过一次签,还是因为其中一张证书的注册人换了手机号,证书被吊销了,当天就换了新证书补签完成,用户重新安装一次就恢复使用,到现在两年多一直稳定运行。还有很多创业团队的内测APP,几十台测试设备,用超级签名测一年都不会掉签,体验非常好。当然我也遇到过掉签坑,前两年有个客户贪便宜找了第三方小平台,超级报价才2元一台一年,比市价低了四倍多,结果不到一个月,对方所有证书都是黑卡注册的,被苹果批量封号,几百台设备全部掉签,服务商直接卷钱跑了,最后还是我帮他转了正规证书池,重新做IPA签名才恢复,折腾了整整三天,损失了不少订单,这个教训真的很深。
那企业签名的稳定性呢?其实正规的独立或者专有企业签名也很稳定,我有一个做企业内部办公系统的客户,三百多员工用,用的是专有企业证书签名,两年多只掉过一次,还是因为苹果更新了企业证书的验证规则,补签之后就一直稳定用到现在。不稳定的都是共享证书签名,我见过最夸张的一个客户,找了9.9元的共享企业签名,一周掉了三次,每次补签要等大半天,最后受不了转了超级签名才安稳。所以说真的稳定性对比下来:设备数量在一万台以内,选正规超级签名或者TF签名,稳定性是最高的,超级签名按设备收费,成本透明,补签快,唯一的问题就是受超级签名设备数量限制,规模越大成本越高;如果设备数量超过十万台,超级签名的成本就上去了,选正规的独立企业签名性价比更高,只要不选共享证书,稳定性也能满足需求。
现在很多人问我,签名和官方上架、TF签名选哪个,我的建议一直是:能做官方上架一定要优先做官方上架,官方上架的APP是苹果官方认可的,最稳定,不会掉签,用户直接从App Store下载,信任度最高,所有H5封装也好,原生IPA也好,符合苹果规则的一定要上,不要嫌麻烦。要是确实不符合上架规则,比如是企业内部APP、内测APP,或者特殊类目过不了审,那再考虑第三方签名,一万个设备以内优先选TF签名,TF是苹果官方的测试渠道,基本不会掉签,稳定性比超级签名还高,唯一的限制就是一万个名额,满了重新发就行;要是超过一万个名额,或者没法过TF审核,再选超级签名,设备再多就选正规独立企业签名,绝对不要贪便宜选共享证书或者黑卡证书。
我做签名这么多年,碰到的证书问题其实都大同小异,无非就是苹果风控封证书,或者证书到期,只要服务商有提前储备的备用证书,补签都很快,不会耽误太久,大部分问题都能解决。这么多年下来,我经手的客户,掉签率不到10%,九成以上的APP都能稳定运行一年以上,所以说大部分正规签名都是好用稳定的,那些说签名动不动就掉的,基本都是选了劣质渠道踩了坑,只要选对正规服务商,不做违规内容,完全能满足使用需求。