苹果企业签名用于教育行业App分发实战

我是做了快六年的独立iOS开发者,前两年接了本地一家中型教培机构的定制App需求,做内部刷题、学员管理用,只给内部学员和老师开放,不需要对外公开下载。那时候我才真正沉下心摸透了苹果签名的各种门道,踩过的坑能堆一箩筐,今天就实打实给大家唠唠。

一开始我也想过,干脆直接上架AppStore算了,省得折腾签名的事。但客户明确说了,App里放的是机构独家的内部讲义、历年真题,不对外开放,也不想走苹果内购抽成,每一分学费都是机构自己收,上架之后任何人都能搜到下载,完全不符合需求,于是只能走不上架的签名分发路子。

最先搞懂的就是P12证书,之前我一直以为这就是个普通的配置文件,后来才明白,P12其实是把苹果颁发的企业证书和对应的私钥打包加密后的文件,不管做哪种IPA签名,只要是用自己的证书,导出可用的P12是第一步。我第一次导出P12的时候没设强密码,存在网盘里还泄露过,幸好那时候还没正式用,后来才知道,P12一旦泄露,别人拿去签违规App,苹果追查下来会直接封掉整个证书,所有用这个证书签的App都会掉签,后果不堪设想。现在我不管是自己用还是给客户做独立证书,导出P12必然用16位以上的混合密码,加密后存在本地加密硬盘,从来不随便传。

说到不同渠道的真实价格,我摸了这么久也算门清,绝对不是网上那些乱喊的价格。自己申请苹果企业开发者账号,官方定价是299美元一年,折合人民币大概两千出头,这是资质本身的成本。如果找第三方签名服务商,不同类型的签名差价很大:共享企业签名就是几百个App共用一个P12证书,一般月付在100到300块之间,最便宜的我见过80块一个月的;独立企业签名就是一个证书只给你一个App用,不签其他第三方应用,月费大概在800到1500块之间,按年付还能砍点优惠;超级签名是按绑定的UDID设备算钱,单个设备一年大概3到8块,一百个设备就是几百块;TF签名一般按年收费,中小型额度的大多在300到800块一年,不限安装次数,只要不超苹果的测试名额就能一直用。

很多人刚接触苹果签名,搞不懂设备签名原理和UDID绑定,其实说穿了也简单,UDID就是每台苹果设备独有的识别码,相当于设备的身份证,苹果就是靠这个来校验你这台设备有没有被授权安装对应的应用。最早的超级签名,本质就是用个人开发者账号的100个设备绑定名额,把每台要安装的设备UDID加到开发者账号的设备列表里,再重新打包签名,相当于每个设备都提前获得了苹果的授权,所以只要账号不被封,就不会轻易掉签。但缺点也很明显,每个个人账号最多绑100个设备,人数多的教育机构要开好几个账号,新学员来了还要重新收集UDID重新签名,折腾死人,流动性大的教培机构根本不合适。

苹果的证书分发机制其实分了好几种,本来就不是只有AppStore上架这一条路。AppStore上架是官方公发,所有用户都能下载,签名由苹果官方校验,只要你不上架违规内容,基本不会掉签,但门槛就是要过官方审核,还要遵守苹果的规则,抽成、公开这些都是绕不开的。企业分发是苹果给299美元企业账号开放的通道,本来就是设计给企业内部员工用的内部应用,不需要绑定UDID,任何设备只要安装了就能用,只要证书不被苹果吊销就能一直用。TestFlight也就是我们说的TF签名,其实是苹果官方的内测分发通道,相当于把你的App放在官方的内测平台里,用户通过邀请链接就能下载,签名是苹果官方出的,所以稳定性要比第三方企业签名高很多。

我给那个第一个教培客户踩的第一个坑,就是贪便宜选了150块一个月的共享企业签名。当时刚上线半个月,用着好好的,某天早上一睁眼,五六个老师同时发消息说App打不开,点进去就弹“未受信任的企业开发者”,就算手动点了信任也进不去,这就是掉签了。我赶紧找服务商,服务商说证书被苹果封了,安排补签,等了大半天补好,我重新做了安装链接,通知所有学员删掉重下,折腾了整整一天才搞定。结果不到十天,又掉了,这次服务商直接失联,我当时整个人都傻了,客户那边马上要组织学员模考,App打不开,负责人找到我,脸色别提多难看了。我赶紧自己垫钱找了个靠谱的服务商做临时补签,才稳住局面。

后来我才搞懂,共享签名为什么掉签这么频繁,就是因为一个P12证书要签几百个不同的IPA,什么乱七八糟的应用都有,有很多还是违规的,苹果的检测机制一查到同一个证书签了大量不合规的外部应用,直接就吊销证书,所有签过的App全掉,无一例外。补签其实就是换个新证书重新给你的IPA签一遍,本质上没什么技术含量,就是换证书而已,小服务商本来就是走量,证书被封是常事,补签不及时甚至跑路太正常了。

其实现在很多教育机构做内部App,都喜欢用H5封装成IPA,一来开发快成本低,二来能脱离微信,避免域名被封,还能做推送通知,提醒学员上课刷题。但哪怕是H5封装的IPA,只要不上AppStore,就必须做IPA签名才能装到苹果设备上,不管是封装的还是原生的,签名要求都是一样的,没有区别。我上个月刚接了一个做注册会计师培训的客户,就是把微信端的H5刷题页面封装成IPA,不想上架,最后选了TF签名,用到现在一点问题都没有。

那次掉签风波之后,我开始给客户找真正稳定的方案,试了一圈下来,对于教育行业来说,真的是分情况选:如果是百人以内的中小型教培机构,学员人数不多,预算有限,TF签名绝对是性价比最高的。TF签名我用了这么久,只要你的App内容合规,就是普通的内部教育内容,审核基本都能过,过了之后用的是苹果官方的签名,根本不会掉签,我那个第一个客户转成TF之后,用到现在快两年了,一次掉签都没有,六百块一年,比月月掉签的共享签名划算太多了。唯一的小缺点就是用户下载的时候需要先装一个TestFlightApp,有些年龄大的老师一开始不会弄,我做个一步一步的截图教程,教两次就会了,用习惯了根本不觉得麻烦。

如果是千人以上的大型教育机构,想要更好的用户体验,不想让用户跳TestFlight,那就选独立企业签名,一个P12证书只签你这一个教育App,不签其他第三方应用,只要内容合规,不滥用,基本大半年甚至一年都不会掉一次,就算掉了,补签也很快,重新发个安装包就能用。价格虽然高,一年下来一万左右,但对于大机构来说,用户体验好,稳定,这个成本完全能接受,比天天掉签影响学员上课强太多了。

UDID绑定的超级签名其实也能用,适合那种只有几十个内部员工,学员流动性很低的小型工作室,一次收集完所有UDID,一次签名就能用一年,成本也不高,几百块搞定。但如果学员每个学期都有新来的走的,每次都要收集UDID重新签名,太折腾,效率太低,不如TF和企业签名方便。

我之前也有客户问过,既然都做了,为什么不直接上架AppStore?其实很多教育机构的内部App都有自己的考虑,要么是不想对外公开,只想给内部学员用,要么是不想给苹果抽30%的内购费用,还有的就是里面有一些定制化的内部管理功能,不符合AppStore的审核规则,所以才选择不上架走签名分发。苹果企业签名用于教育行业本身其实是符合规则的,本来企业证书就是给内部应用用的,教育机构的内部教学App完全契合苹果的定位,只要不滥用证书,稳定性根本没问题。

做独立开发这么久,接了不下几十个教育行业的内部App需求,我最大的感受就是,签名这块真的不能贪便宜,你省个百八十块,掉签一次耽误学员上课,得罪的是客户,最后补锅花的钱精力比省的那点多太多了。选对适合自己规模的稳定方案,比什么都重要,毕竟教育行业拼的就是口碑,连App都天天打不开,再好的内容也留不住用户。前阵子还有个做考研辅导的客户找我,说之前找个人做的共享签名,三个月掉了五次,学生都闹着要退费,找到我转了TF,现在用了三个多月,安安稳稳,客户满意得不行,还给我介绍了好几个新客户。其实哪是我有多厉害,不过是选对了路,踩过了坑,把稳当的方案给客户而已。