我做独立iOS开发快五年,大半时间都在跟各种不合规的小工具项目打交道,大多不符合AppStore上架规则,或是只面向小圈子用户不想折腾审核,所以从入行第一天起,就泡在苹果签名的坑里摸爬滚打,踩过的坑能绕出租屋三圈,今天说点掏心窝子的真话,全是自己实打实花过钱踩出来的经验。
刚入门的时候我连P12证书都搞不懂,以为就是个随便导的文件,第一次自己用个人开发者账号生成证书,导出的时候只导出了证书,没把钥匙串里对应的私钥一起打包,结果换到另一台电脑签名,怎么都成功不了,当时急着给客户交活,最后花了两百块找人救包,才搞明白P12证书的本质——它就是把公钥证书和对应的私钥加密打包在一起的文件,缺了私钥,根本没办法给IPA做签名,更别说过苹果的验证。那时候没钱,图便宜买过几块钱的共享P12,结果用了不到一周,原证书持有者直接 revoke 了证书,我那三百多已经安装了APP的用户,第二天起来全打不开,掉一次签跑了快一半用户,哭都没地方说理,从那之后我就认准了,P12要么自己用正规开发者账号生成,要么找靠谱服务商拿独立证书,绝对不碰几块钱共用的货色。
说到这里不得不提不同渠道的真实价格,这个行当水太深,新手很容易被坑,我把用过这么久的真实价格说给大家听。先说最常见的几种IPA签名:UDID个人签名,也就是绑定设备的那种,现在市场正常价格是一个设备一年5到12块,稳一点的服务商一般收8到10块,那些一两块一个设备的,别碰,基本都是用黑卡注册的开发者账号,说封就封,掉一次损失全是自己的。然后是企业签名,分共享企业签和独立企业签,共享签现在就是二三十一个月,五六十包季度,价格看着诱人,但掉签频率能让你崩溃,我最多一周掉过三次,每次都要通知用户重新安装,烦都烦死;独立企业签就不一样了,都是一个证书只给你一个APP用,价格一般一个月300到800不等,看你APP的类型,合规的工具类一般300多就能拿下,要是特殊类型可能上千,我用的一家靠谱服务商的独立签,大半年才掉过一次,补签也没额外收钱,稳定太多。然后是TF签名,也就是上架TestFlight的官方签名,现在市场价一般一个包三五百包上架,后续更新一次一百多,要是有人说一百块给你做TF签名,要么是骗钱,要么就是给你弄共享的,没几天就被苹果撤了。很多人做H5封装的IPA,很多服务商坑新手说H5封装要额外加签名费,其实H5封装完就是个正常IPA,签名价格和普通包没区别,我就被坑过一次,多收了两百,后来才知道都是套路。至于AppStore上架,自己有开发者账号的话就是每年99美元的成本,找别人帮忙上架,合规的普通APP一般一千到三千,那些说几百块包过的,基本都是无本买卖,过了收钱不过退钱,耽误的是你自己的时间。
很多新手问我设备签名到底是什么原理,说白了苹果的规则就是,没上架AppStore的APP,想要在iOS设备上打开,必须要有苹果官方的授权,UDID就是每台iOS设备唯一的身份标识,UDID绑定就是把用户设备的UDID提前加到开发者账号的授权设备列表里,然后用对应证书生成描述文件,打包进签名后的IPA里,苹果手机验证到这个设备在授权列表里,就允许你打开APP,这就是最基础的UDID签名原理。至于证书分发机制,苹果一共分几种:开发测试用的开发证书,只能给你自己测试用,给用户用很容易掉;AdHoc分发的发布证书,就是绑定UDID用的,个人开发者账号最多绑定100台设备,刚好够小团队内部用;企业证书是苹果发给企业做内部测试分发的,不需要绑定具体UDID,理论上可以无限安装,所以很多人拿来做对外分发,但苹果不允许对外商用,只要检测到违规使用,就会吊销证书,也就是我们常说的掉签;最后就是给AppStore上架用的发布证书,只有用这个证书签名的包才能上传AppStore审核,很多新手搞混了证书类型,拿开发证书签名给用户用,掉签都不知道原因。
我去年接过一个本地商圈的展示项目,客户不想放在微信里,要做独立APP,我就是用H5封装套了个原生壳,生成IPA之后要签名,客户有一千多会员,要长期稳定,我一开始想做企业签,怕掉签砸了自己的名声,最后就选了TF签名,一次性付费五百多上架,用到现在快一年了,一次问题都没出,TF毕竟是苹果官方认可的分发渠道,只要APP不违规,基本不会掉签,比企业签稳太多,这点真的没得说。
说到掉签补签,我这五年的怨气能写一本书,刚入行那两年穷,总想省钱,一直用几十块一个月的共享企业签,掉签掉的我都快神经衰弱了。有一次给一个小公司做内部打卡工具,一百多员工用,周一早上刚到公司,全掉签了,所有人打不了卡,客户老板直接打电话骂我,我那时候还在地铁挤着,蹲在站台给服务商发消息,等了两个小时才有人回,补签完还要我一个个通知员工重新下载安装,那一次客户直接扣了我三分之一的尾款,亏得我吃了一个月泡面,从那之后我就发誓,再也不碰共享签,宁愿多花十倍的钱买稳定,也不贪便宜吃大亏。掉签其实大多不是你的问题,共享签就是几百个APP共用一个证书,只要有一个APP违规被苹果查到,整个证书所有人都跟着遭殃,你好好的APP也得被牵连。补签这块也有坑,正规服务商掉签之后都是免费补,几个小时就能弄好,那种小服务商,掉签了找不到人,要么就是补签要额外收钱,我就遇到过一次,买了季度签,用了一个月掉签,服务商说补签要加两百,不然不给弄,说白了就是变相加价,遇到这种直接拉黑就行。
我现在做项目选签名,都是按用户量来分,要是用户不到一百个,内部自用,我就用自己的99美元个人开发者账号,自己生成P12证书,自己绑定UDID签名,一年才六百多块成本,平摊下来一个设备几块钱,完全自己掌控,根本不会掉签,太香了。要是用户几百到几千,就选靠谱的独立企业签,一个月几百块,稳定度够,成本也不高。要是用户过万,或者需要长期运营,我都会劝客户要么做TF签名,要么想办法走AppStore上架,AppStore上架虽然审核严,成本高,但是上架之后用户直接搜就能下,根本不用操心签名的事,一劳永逸,只是很多项目确实不符合规则,没办法上架才选其他方式。
说到P12证书使用我再多说两句,我现在自己生成的P12,导出的时候一定会加密码,加密存在本地和云盘双备份,绝对不随便给别人,之前我把自己个人账号的P12给朋友帮我签名,结果他拿来签了好几个其他的包,没多久苹果就发邮件警告我,说我的证书异常使用,差点给我封了账号,那可是我用了好几年的老账号,吓死我了,从那之后我的P12从来不给外人碰。还有就是不要把同一个P12放在多个地方用,很容易被苹果检测到异常,触发风控吊销证书,这点一定要注意。
很多新手不知道超级签名其实本质也是UDID绑定,就是服务商攒了很多个个人开发者账号,每个绑100个设备,拼起来给你做签名,原理没变,所以价格也差不多,别听那些服务商吹的多神,本质就是UDID签名,还是一分钱一分货。我前两个月还遇到一个客户,之前找小工作室做的签名,服务商跑了,证书掉了,自己没有源码也没有P12,只能重签,他的APP之前被AppStore下架过,有违规内容,TF上架两次都被拒,最后只能做独立企业签,多花了一倍的钱,所以说签名稳不稳,也跟你的APP内容有关,内容合规不碰红线,哪怕是企业签也能稳一年,内容违规,花多少钱都稳不了。
很多人说H5封装的IPA更容易掉签,其实根本不是这么回事,掉签只跟证书类型、APP内容有关系,跟你是不是H5封装一点关系都没有,我做过三个H5封装的本地服务APP,用独立企业签稳了一年多都没掉,都是被服务商瞎忽悠的,新手别信这套。
做独立开发这么久,我最深刻的感受就是,苹果签名这行,真的是一分钱一分货,你贪便宜省那几百块,最后掉签损失用户、损失项目尾款,亏的比省的多得多,我就是从穷过来的,太懂那种想省钱的心态,可偏偏这行便宜就是陷阱,掉一次坑就够你喝一壶的,与其天天盯着价格,不如先看稳定度,选做的久的靠谱服务商,比什么都强。毕竟我们小开发者,口碑就是饭碗,用户天天因为掉签用不了,用两次就走了,再也不会找你,那才是最大的损失。现在我接项目,都会提前跟客户说清楚不同签名的价格和风险,让客户自己选,再也不抱着省钱的心态给客户选便宜的,稳才是第一位的。