我做独立iOS开发快四年,大半时间都在和苹果签名打交道。

最早刚做出来第一个小工具,满心欢喜提交AppStore上架,结果因为涉及修改网络配置,连着被打回三次,审核条款抠来抠去,就是不让过。那时候才知道,原来不上架也能让用户安装,靠的就是苹果签名。

那时候什么都不懂,连什么是UDID都不知道,更别说苹果签名UDID绑定的逻辑了,踩的第一个坑就是贪便宜。

最先在淘宝找了个30块钱一个月的共享企业签,老板拍胸脯说包补签,绝对稳定。我当时用户也就几十个,觉得够用来了,结果第三天早上醒过来,一半用户在群里说App打不开了,提示证书不受信任。我赶紧去找商家,商家隔了半天才回,说证书被封了,正在补,补完发我。结果等了整整一天才拿到新的安装包,发出去没一个星期,又掉了。那次之后商家干脆就不回消息了,我看着群里用户的抱怨,真想把电脑砸了。

后来慢慢摸,才搞懂设备签名原理。每一台iOS设备都有一个独有的识别码,就是UDID,相当于设备的身份证。苹果的签名机制,本质就是要把允许安装这个App的设备,录入到苹果认可的允许列表里,让iOS系统验证的时候,确认这个App是被允许装在这台设备上的,才能正常打开运行。而UDID绑定,就是把每一台要安装的设备UDID加到允许列表里的过程,这也是苹果签名最核心的一步。

我也慢慢摸清楚了苹果的证书分发机制,非AppStore的分发,一共就那么几种路数。第一种是个人或者公司开发者账号的Ad Hoc证书,也就是大家常说的P12证书,必须绑定UDID才能用,一个个人开发者账号最多绑100台设备,符合苹果的测试分发规则,本身是合规的。第二种是企业开发者账号的In-House证书,本来是给企业内部员工分发应用用的,不需要绑定UDID,任何设备都能装,但是苹果明确禁止给外部用户用,所以查到就封证书,掉签率特别高。第三种就是TF签名,也就是TestFlight签名,本质是走苹果官方的测试分发通道,完全符合规则,所以稳定性最高。

说回P12证书的使用体验,我后来自己花六百多块钱买了一年的个人开发者账号,自己生成了P12证书存在电脑钥匙串里,那体验真的和第三方共享签天差地别。整个证书完全掌握在自己手里,只要我不删证书,苹果不封我的账号,就永远不会掉签。我那几十个用户的UDID,我手动导进去,花了不到二十分钟,弄好之后打包签名,发出去给用户安装,用了快半年,从来没出过任何问题。唯一一次出问题还是我自己操作失误,删了一个UDID,用户打不开,我重新加上之后立马就好,前后十分钟搞定。这种稳定的感觉,是之前找那些低价第三方从来没有过的。

当然,P12证书也有限制,一个账号最多100个设备名额,删除了已绑定的UDID也照样占用名额,用户一多就不够用了。这时候就得换其他方式,我也用过大大小小各种渠道,给大家说下我接触到的真实价格,绝对是我自己踩过坑摸出来的。

共享企业签名,就是很多个App共用同一个企业P12证书,价格一般在30到80块钱一个月,是最便宜的,但是也是最不稳定的,刚才说了我踩的坑,基本一周一掉都是常态,碰到苹果严查证书的时候,一天掉几次都有可能。掉了补签虽说大多说免费,但是等半天补不出来是常事,真的耽误事。

独立企业签名,就是一个证书只给你一个App用,价格一般在200到500块钱一个月,稳定性比共享签好很多,掉签概率低很多,掉了之后商家也会快速给你补签,大部分都是免费补,适合用户多又不想用TF的,但是毕竟还是违规用企业证书,苹果查到还是会掉,只是概率低一点。

超级签名,其实就是用一堆个人开发者账号的Ad Hoc证书,自动给每个新用户绑定UDID,按设备收费,价格一般在1块钱到6块钱一个设备,同一个UDID重复安装不收费。稳定性比共享企业签好,但是只要其中一个个人账号被封,这个账号下所有绑定的设备都会掉签,还是要补。而且用户量大了之后成本特别高,一千个用户就是几千块,比自己买好几个账号都贵。

TF签名,就是我们说的TestFlight签名,价格一般在150到600块钱一次,一次可以用到你版本更新,或者直接用一年,价格不算贵,稳定性是所有签名里面最高的,因为是苹果官方的通道,只要你的App不违规,基本不会掉签。唯一的限制就是一个App最多一万个测试设备,用户下载需要跳转到TestFlight,有的用户嫌麻烦,但是用习惯了其实也没什么。

我自己弄P12证书的话,成本就是每年六百八十八块钱的苹果开发者账号费用,合下来每个月五十多块钱,比大部分第三方签名都便宜,只要用户不超过一百个,绝对是最划算最稳定的选择。

我这些年接了不少私活,很多客户都是把做好的H5给我,让我做H5封装,做成IPA包之后再做IPA签名,给内部员工或者客户用。每次我都会根据客户的用户量给他们推荐方案,用户不到一百个的,我都劝他们自己买个开发者账号,我帮他们弄P12,绑定UDID,一年六百多,自己掌握证书,永远不会掉签,比找第三方签一年划算太多。用户两三百到几千的,我都推荐TF签名,几百块钱一次,稳一年,基本不用管,特别省心。

之前帮本地一家培训机构做了一个内部刷题的App,就是H5封装的,一共两百六十多个学员,我给弄了TF签名,现在用了快八个月了,就版本更新的时候重新签了一次,从来没出过错,客户特别满意,后来还给我介绍了两个新的私活。

掉签补签的糟心事,我真的经历太多了。印象最深的是去年,我做了一个省考刷题的小App,当时快到考试了,用户快两百了,那时候我还抱着侥幸心理,找了个50块钱一个月的共享签,想省点钱,结果刚好赶上苹果严查企业证书,三天掉了两次。第一次掉了商家半天补好,第二次掉了之后商家说整个证书被封了,新证书要等三四天才能下来。那时候离考试只剩半个月,用户天天在群里催,说要刷题看课,打不开怎么考,我急得嘴上起了三个泡,整夜整夜睡不着。最后没办法,找朋友借了一个闲置的个人开发者账号,我把所有用户的UDID导出来,一个个核对,连夜重新打包签名,发新链接,整整折腾了两天才搞定,最后还是走了差不多三分之一的用户,损失不说,那种无力感真的不想再体验第二次。从那之后,我再也没碰过低于一百块钱的共享企业签,稳比什么都重要。

现在我也摸出规律了,小工具用户不到一百,就自己用P12证书,一个个绑UDID,自己掌控,想怎么弄就怎么弄,从来不会掉签,加设备换设备都自己说了算,体验真的太好了。用户在一千到一万之间,我就用TF签名,上传之后生成链接,用户自己点进去就能下载,我不用管UDID,也不用天天盯着掉不掉签,省出好多时间改功能更版本。AppStore上架我也一直在做,现在已经有两个合规的小工具上去了,上架之后确实方便,用户直接搜就能下,不用折腾签名的事,但是很多功能苹果就是不让上,所以大部分测试版或者不符合规则的App,还是得靠签名分发。

之前也用过那种在线自动签名平台,上传IPA就能自动生成下载链接,确实方便,但是大多用的都是共享证书,掉签率还是高。后来我把自己的P12证书上传到平台,让平台帮我自动管理UDID,自动打包签名,一个月收十几块钱服务费,省了我好多手动操作的时间,证书还是我自己的,照样稳定,从来不会掉签,体验特别好。

其实很多刚入行的独立开发者,一开始都和我一样,觉得苹果签名就是一件很麻烦的事,到处踩坑,到处找便宜渠道,结果最后亏的更多。我折腾了这么多年,最大的感受就是,稳定才是最重要的,用户用得舒服,不会动不动打不开,才会留得住,你也少折腾少生气。现在我很少再因为签名的事熬夜,每天改改bug,更更新功能,回回用户的消息,日子舒服多了。春天的时候新做了一个记录日常开销的小工具,现在在内测,一百多个用户都是用我自己的P12绑的UDID,没人说打不开,闲了我就加几个新功能,慢慢打磨,等着改到满意了再碰AppStore上架的事,这样的状态,比之前天天补掉签舒服太多了。