苹果企业签名二维码 解决我的分发难题

作为做了五年的独立iOS开发者,我大部分没上AppStore的小工具,都是靠签名分发出去,其中用得最多的就是企业签,生成个苹果企业签名二维码贴在个人网站或者社交主页,用户扫了直接安装,不用折腾半天找UDID,体验好到没话说。

刚入行的时候我什么都不懂,那时候做了个本地美食优惠的集成工具,改了三版都过不了AppStore审核,说我内容同质化、套壳聚合,不给过,没办法才开始找签名渠道。那时候连P12证书是什么都不知道,商家给我发了个后缀p12的文件,我问他这是什么,他说你自己导进去签名就行,我瞎折腾半天把Xcode里原来的开发证书都删了,搞崩了打包环境,整整一天没弄出安装包。后来才慢慢搞懂,P12证书就是打包了开发者证书私钥的文件,想要给IPA重签名,必须要有对应的P12证书和配套的描述文件,不同类型的证书P12权限也不一样,企业证书的P12才能做企业分发,开发证书的P12只能用来调试。

现在我自己用的是独享企业证书,商家会把P12和描述文件都发给我,我更新版本的时候,自己用签名工具五分钟就能搞定重签名,不用每次找商家排队等,省了好多时间。但这里有个血的教训,P12绝对不能外泄,我之前刚拿到P12的时候,不小心把整个配置文件夹传到了公开的Github仓库,不到一周证书就被封了,掉签之后一百多个付费用户用不了,我亏了一千多块的退款,才知道原来爬虫会扫Github上的P12文件,拿到之后到处用,同一个证书签了上百个IPA,苹果很快就会封禁证书,掉签就是必然的。从那之后我存P12都只存在本地加密U盘里,连云盘都不敢传。

说起来大家肯定关心不同渠道的真实价格,我摸爬滚打这么多年,各个渠道的价格门清,绝对没有那些虚头巴脑的。最便宜的就是共享企业签,一般10块到50块一个月,价格越低,同一个证书共享的App越多,十几块的那种,一个证书里几百个App,掉签掉到你怀疑人生。然后是独享企业签,也就是一个证书只给你一个App用,价格一般200到600块一个月,我现在用的靠谱渠道是399一个月,价格不算最低,但稳。然后是超级签,本质是用多个个人开发者账号做UDID绑定签名,按设备收费,一般3块到8块一个设备,掉了可以补绑,但是麻烦。TF签名,就是上架TestFlight的官方签名,一般包成功上架是200到400块,按设备算的话就是1块到3块一个,基本不会掉。还有个人AdHoc签名,就是用99美元的个人开发者账号绑UDID,最多绑100台,一般8块到15块一台,只适合小范围测试。

很多刚接触签名的朋友搞不懂设备签名原理,其实说穿了很简单。苹果的iOS系统安装第三方App,必须要有合法的签名授权,签名就是把你的App和开发者账号的权限绑定,告诉iOS这个App是被允许安装的。需要UDID绑定的签名,不管是AdHoc还是超级签,原理都是把用户设备的唯一识别码也就是UDID,提前加到苹果开发者账号的授权设备列表里,签名出来的描述文件里包含了这些授权设备信息,只有列表里的设备才能安装运行,没绑定的装了也打不开。

企业签名就不一样了,企业签名用的是苹果299美元的企业开发者账号,这个账号本身就是给企业内部员工分发App用的,天生就支持不限设备安装,不需要提前绑定任何UDID,所以才可以生成苹果企业签名二维码,用户扫了直接下载安装,不需要给你发UDID,体验好太多,这也是企业签名这么受欢迎的原因。

至于证书分发机制,苹果本身就给不同的开发者账号分了不同的分发权限,99美元的个人和公司开发者账号,只能走AppStore上架或者AdHoc测试分发,AdHoc最多只能绑100台设备,不能做大规模分发。299美元的企业开发者账号,不能上AppStore,但是可以做不限数量的企业内部分发,所以才衍生出了现在的企业签名行业。TF签名其实是苹果官方的测试分发渠道,不管什么类型的账号都能用,把App放到TestFlight里面,用户通过TF客户端安装,相当于苹果官方给你背书,所以基本不会掉签,只是有下载次数限制,最多一万次测试下载,更新版本也要重新走审核。

我最早图便宜买过19块一个月的共享企业签,头三天用着好好的,第四天一早打开手机,我的App直接弹无法验证,我就知道坏事了,掉签了。找商家补签,商家说排队,排到下午才能弄,那一天我光处理用户退款和投诉就处理了十几个,本来刚拉的几十种子用户,掉一次签走了一半,心都凉了。后来国庆假期又掉过一次,商家直接放假七天,七天没人补签,我那七天天天睡不着,好多用户付了年费会员,天天发邮件骂我,那次之后我就下定决心,再也不买便宜的共享签了,宁愿多花几百块买稳定的,总比掉一次签亏的钱多。

我也试过把App改得干干净净去走AppStore上架,前前后后改了四版,花了一千多找第三方帮忙上架,最后还是因为有个跳转外链的功能被拒了,说我违反了苹果的内购规则,没办法,正规路走不通,只能继续靠签名分发。

我也接过一些小单子,比如给本地小商家做H5封装的点单App,商家不想做小程序,想要个独立的App让客户装,我就是把H5页面封装成IPA,然后做IPA签名,生成苹果企业签名二维码,商家打印出来贴在店里,客人扫了就能装,成本很低,商家也满意。H5封装出来的IPA,本身就是未签名的安装包,必须做IPA签名才能安装,不管你功能多好,没签名就是废包,所以签名这一步是绝对绕不开的。

后来用户慢慢多了,我也分了两条线,新用户先走TF签名,TF签名稳定,不会掉,只是更新慢,适合普通用户用。需要提前体验新版本的测试用户,就走企业签名,更新方便,我改完代码自己签好上传,用户扫原来的二维码就能用到新版本,不用等审核,太灵活了。TF签名我也用过好多次,确实稳,我两年前上架TF的一个工具,现在还能正常安装,从来没掉过,只是后来用户超过了一万次下载,就只能重新换个证书上架,也挺方便的,就是审核要等个两三天,着急更新的话不如企业签来得快。

UDID绑定我刚做开发的时候经常用,那时候没钱,找几个粉丝凑点钱买了个人开发者账号,一个个收集用户的UDID,手动加到苹果后台,然后签名,最多只能加100个,满了就得等一年重置计数,每次更新版本都要重新签,太麻烦了,用户要重新安装,体验很差,后来用户多了我就不用这种方式了,只有给身边朋友测试的时候才会用,胜在便宜稳定,只要账号不封,一辈子都能用。

我也碰到过补签的时候商家换了证书,要我重新换二维码的情况,后来我学聪明了,把二维码链接指向我自己服务器的安装包地址,不管怎么换证书补签,我只需要替换服务器上的IPA文件就行,二维码永远不用换,用户不管什么时候扫,拿到的都是最新签好的安装包,省了好多麻烦,也不用一次次重新发二维码给老用户。

现在我用的独享企业签,大半年才掉过一次,还是苹果那次清理企业证书,好多证书都被查了,商家当天就给我换了新的P12,帮我补签好了,我服务器上的安装包换一下,二维码都不用改,用户第二天打开自动就好了,根本没感觉到掉签,这种稳定对于我们小开发者来说太重要了,我们本来就是靠口碑拉用户,掉一次签,用户对我们的信任就少一分,稳定好用比什么都强。

平时更新完功能,我拿着P12自己签一下IPA,上传到服务器,就可以去忙别的了,用户扫原来的苹果企业签名二维码就能安装新版本,不用重新发链接改二维码,省了好多时间,我也能多抽点时间改bug加功能,不用天天围着签名补签转。遇到大版本更新,我会先把新版本放企业签给测试用户用几天,没问题了再提交TF审核,稳扎稳打,用户也满意,我自己也不用天天提心吊胆怕出问题。做独立开发本来就不容易,能少点糟心事,就能多花点心思把产品做好,这也是我这么多年用签名摸出来的最大心得。