超级签名用于客户演示 我的独立开发踩坑记

我是个靠接定制开发活吃饭的独立iOS开发者,做这行快五年,大大小小的坑踩了不计其数,其中签名这块的坑,说出来能装满一箩筐。很多外行以为我们开发完App直接就能装,其实根本不是那回事,苹果的封闭规则摆在那,没经过签名的IPA包,别说给客户装,就是我自己装测试都不行。

最早刚出来接活的时候,我以为只有AppStore上架这一种签名方式,后来接了第一个本地餐饮老板的定制点单工具,功能还在调整阶段,天天改版本,总不能改一次就提交一次AppStore审核吧?那别说客户等疯,我自己都要疯。这时候才知道,原来做客户演示,大多用的就是超级签名。

先说说最基础的P12证书使用吧,我最早自己买了个人开发者账号,一年99刀折合人民币六百多,那时候第一次导出P12证书,折腾了一晚上都不对,签名工具一直提示证书无效。后来查了半天才知道,导出P12的时候必须勾选「包含私钥」,我那时候新手,哪懂这些,直接就导了,导出来的就是个没用的空文件。后来弄明白了,每次导出都牢记设置密码,还要把密码记在我的笔记里,就怕转头就忘,耽误事。还有个要注意的,带私钥的P12不能随便给陌生人,别人拿了你的证书,乱签名搞违规内容,你的整个开发者账号都会被封,得不偿失。

说回不同渠道签名的真实价格,我这些年接触过各种渠道,价格差得真不是一点半点。就说超级签名吧,按设备数收费,我见过最便宜的一块多钱一个设备,贵的能到八九块一个。企业签名分共享和独立,共享企业签名一般一个月一百多就能拿下来,独立证书要大几千一个月都有。TF签名大多是按月或者按次收费,包月一般一百多到三百多,包上架的话一次几百块。AppStore上架的话,自己弄就是每年六百多的账号费,找别人代上架几百到几千不等,看项目类型。我最早贪便宜拿过一块八一个设备的超级签名,充了一百块绑了二十多个演示设备,不到一周掉了一半,找商家补签,说我违规装机要再加钱,算下来比买四块钱一个的还贵,真的坑。

很多刚入行的朋友问我,设备签名到底是什么原理,其实说穿了很简单,核心就是UDID绑定。苹果对个人和公司开发者账号,都有一个100台测试设备的限制,也就是说,你一年最多可以给100个不同的苹果设备绑定UDID,绑定之后,就可以用这个账号的证书给IPA签名,这些绑定过的设备就能直接安装,不需要走AppStore审核。超级签名就是用的这个规则,把本来给内部测试用的机制,拿来给客户做演示分发。所以UDID绑定是必不可少的一步,没有绑定UDID的设备,就算签名了也装不上。我之前帮客户装演示包,客户不会获取UDID,我发了描述文件给他,他装完不知道复制,给我发了一串错的UDID,我前后签了三次都装不上,那天我急着赶去另一个客户那谈需求,满头大汗站在地铁站里折腾,差点误了约定的时间,从那以后我都给客户发一步一步的截图教程,就怕再出这种错。

说到证书分发机制,苹果本身分了好几种不同的证书和分发渠道。AppStore上架用的是发布证书,打包签名后上传到App Store Connect,审核通过后所有用户都能下载,这是最正规最稳定的,但是审核严,流程繁琐,根本不适合还在调整的演示项目。企业开发者账号的企业证书,不限制设备数量,本来是给企业内部做APP分发用的,现在很多人拿来做第三方签名,但是因为滥用的太多,苹果经常吊销证书,所以掉签特别频繁。超级签名用的就是个人开发者账号的测试证书,走UDID绑定的测试分发,只要账号是正规续费的,不超额加设备,一般很少掉签。

做演示这么多年,掉签补签的糟心事遇的太多了。上次有个做驾校管理系统的客户,约了三个股东看演示,前一天晚上我才签好五个设备,结果第二天早上客户说全点不开了。原来我图便宜找的那个签名商,用的是黑卡注册的开发者账号,苹果头天晚上批量封号,把那个账号封了,所有签过的App全掉了。我那时候离客户约定的时间还有不到一个小时,赶紧找相熟的朋友拿正规账号重新签,八块钱一个设备,五分钟就弄好了,才没耽误客户的演示,那次之后我就打定主意,做客户演示绝对不能贪便宜,掉一次签坏的是自己的口碑,省那几十块钱亏大了。

现在很多客户会拿做好的H5让我封装成IPA做演示,也就是常说的H5封装,很多人以为H5封装完不用签名,其实根本不是,不管是原生开发的IPA还是H5封装的IPA,只要要装到未越狱的iOS设备上,必须经过IPA签名,这个规则绕不开。我上个月刚接了一个这样的活,客户自己做了一个招商的H5,想做成App的样子给投资人看,我帮他换了客户要求的图标和启动页,封装完就是一个标准的IPA包,然后用超级签名绑定了三个演示设备,半个小时就弄好了,客户当天就发给了投资人,反馈特别好,后来还给我介绍了新的活。

如果客户演示的周期比较长,设备又多,我一般会推荐TF签名,TF就是TestFlight签名,是苹果官方的内测分发渠道,本身就是给开发者做内测用的,稳定性比超级签名还高,只要不违规,你放个一两年都不会掉签。价格也划算,一般一百多块钱一个月,十几二十个设备都能用,比按设备收费的超级签名划算。唯一的缺点就是要过苹果的审核,一般快的话十几分钟,慢的话要一天,如果你当天就要给客户演示,赶不上,这时候超级签名的优势就出来了,上传IPA,绑定完UDID,几分钟就能生成下载链接,客户点开就能装,特别方便。

很多人问我,为什么不直接上架AppStore做演示,其实原因很简单,演示阶段的产品功能天天改,今天加个模块,明天改个界面,你改一次就要提交AppStore审核一次,少则等一天多则等三天,客户根本等不了。而且AppStore上架需要准备一堆材料,关键词、描述、截图、权限说明,演示阶段根本没功夫弄这些,做好IPA签完名直接给客户装,改完版本重新签一次十几分钟就搞定,效率高太多。当然等产品最终定版,客户要正式上线,我还是会帮着走AppStore上架流程,正规上架对用户来说体验最好,也最容易推广。

我现在自己手头有三个正规续费的个人开发者账号,平时接小的客户演示活,都是自己用自己的证书签,导出P12自己签名,绑定UDID,成本可控,也稳定,用了快两年了账号都没出过问题,从来没掉过签。补签的话,只要不是客户违规,我都是免费补,客户也放心。碰到大一点的内测演示,十几台设备要用一两个月,我就帮客户做TF签名,价格透明,稳定靠谱,客户也都能接受。

今天刚给一个做建材的客户签完三个演示设备,改了新的报价模块,客户刚刚发了截图说装上能用了,约了明天到店谈最终的需求,我喝口热咖啡,点开Xcode继续调整剩下的功能,做我们这种小独立开发者,本来就是靠口碑吃饭,一点小事都不能马虎,签名这点事,踩过那么多坑才明白,稳定好用比什么都重要。