我做独立iOS开发快六年了,接各种各样的中小项目,大半客户都没办法上架AppStore,要么是企业内部应用不想公开,要么是资质不全卡审核,要么就是项目本身就是小范围测试用,这么多年跟苹果签名打交道,踩过的坑比我写过的代码都多,从最早找第三方签名被坑,到现在自己做苹果签名证书定制开发,慢慢摸透了这里面的门道。
最早接触P12证书的时候,我根本没当回事,以为就是个导出的普通证书文件而已,第一次帮客户签名,导出的时候只选了cer证书,没带对应的私钥,折腾一下午,签出来的IPA包用户安装完直接提示“无法验证应用”,打不开直接闪退,后来翻了好几天苹果开发者文档才搞明白,P12证书本质是把开发者证书和对应私钥打包加密后的文件,签名的时候必须用私钥给IPA做加密校验,缺了私钥的P12就是个废文件,根本用不了。还有个坑我至今印象深刻,那时候刚入行,为了省麻烦把自己个人开发的P12证书发给小平台帮忙代签,结果半个月不到证书就被苹果封了,后来才知道那个平台偷偷拿我的证书给十几个别的IPA签名,被苹果检测到违规,直接封号,我自己那半年的测试包都装不了,还亏了一年的99美元开发者年费,从那以后我再也不随便把自己的P12发给外人,自己做定制证书的时候也会提醒客户,P12私钥一定要保管好,不能随便共享。
现在市面上不同渠道的苹果签名价格差得离谱,我接触过的从几块钱到几千块一年的都有。那种自助平台上9.9元一个月的,基本都是共享企业证书,几百个APP挤一个证书,掉掉到你怀疑人生,我之前帮客户试了一次,第一天签完第二天就掉了,找客服补签等了整整三天,补完不到一周又掉,客户差点跟我解约。然后是普通的共享企业签名,一般一个应用一个月大概100到200块,稍微好点,但也还是容易被牵连掉签。接下来是超级签名,按设备收费,一个设备一年大概3到8块钱,量大还能砍价,适合小范围几百台设备的场景,但是很多商家用共享开发者账号,一个账号绑上千台设备,很快就被封,全掉签。然后是TF签名,也就是TestFlight签名,一般一个应用打包上架是300到800块一年,按下载次数算的话一般一百块一千次下载,这个价格现在挺透明的。我自己做的独享证书定制开发,就是一个客户一本证书,只放客户自己的应用,一年下来大概1200到2500不等,比共享的贵,但是稳定太多,适合正经用应用的客户,不会天天被掉签折腾。
很多刚接触苹果签名的客户都问我,为什么一定要UDID绑定,设备签名到底是什么原理,其实说穿了很简单,苹果iOS本身的安全机制就是这样,只有经过苹果信任的证书签名,并且绑定了设备UDID的应用,才能正常安装打开。设备签名的原理就是,苹果给开发者开放了开发设备权限,开发者需要把要安装应用的设备唯一标识符也就是UDID,提前上传到苹果开发者后台,绑定到对应证书和描述文件里,用户安装应用的时候,苹果的验签服务器会校验设备UDID是不是在允许列表里,在列表里就通过验证,应用就能正常打开,不在列表里就会提示未授权,直接闪退。UDID绑定就是这么个流程,说白了就是给你的设备开个安装权限,没有这个权限,再怎么签名都没用。我最早做自动签名的时候,就是做了个自动获取UDID的页面,用户扫码就能自动获取UDID,自动绑定自动重签名,不用手动收集,方便了很多,但是苹果对每个99美元的个人开发者账号,最多只允许绑定100台设备,就算你删除旧设备,也要等一年才能重置设备数量,所以很多不良商家用共享账号,超量绑定,很快就被封,掉签就是早晚的事。
说到证书分发机制,苹果现在其实分好几种正规的路径,第一种就是大家都知道的AppStore上架,这个是官方最稳定的分发方式,用苹果官方生产证书签名,所有用户都能下载,只要不违规下架,永远不会掉签,用户信任度也最高,还能搜索获客,但是门槛太高了,审核严格,很多应用根本上不去,比如企业内部的OA、考勤应用,或者一些小范围的测试项目,还有一些功能不符合苹果规范的应用,折腾好几个月都过不了审核,所以才需要第三方签名分发。第二种就是企业签名,用苹果299美元一年的企业开发者证书分发,不需要绑定UDID,任何设备都能装,本来是给企业分发内部应用用的,不需要过AppStore审核,上线快,但是苹果现在查得越来越严,只要证书分发了外部应用,被举报或者被检测到,直接封证书,一死全死。第三种就是TF签名,也就是TestFlight签名,本质是苹果官方的测试分发渠道,这个是苹果承认的合法分发方式,只要审核过了,基本不会掉签,稳定性仅次于AppStore上架,审核比AppStore松很多,大部分应用都能过,缺点就是一个测试版本有效期只有90天,到期要重新上架,而且一个版本最多只能一万次下载,用户多的话就得不停更版本。第四种就是我现在做的定制独享证书签名分发,就是给客户做专属的证书,只放客户自己的应用,UDID可以自己管理添加,不会被别的应用牵连,稳定性比共享签名高太多,适合那些没办法上架AppStore,又想要稳定运行的客户。
掉签补签这个事,我真的太有发言权了,这么多年见过太多客户因为贪便宜用低价共享签名,掉签掉得心态爆炸。最早我接了一个企业内部考勤APP的单子,客户不想上架,我图便宜找了个一百块钱包一年的共享签名,结果用了不到半个月,客户早上九点给我打电话,说全公司两百多个人的APP全都打不开了,全掉签了。我找那个商家,商家说证书被封了,补签要等三天,结果等了三天补完,不到一个星期又掉了,客户当时就要跟我解约,说我给他找的什么破东西,那次我赔了客户五百块违约金,才把事情摆平,从那以后我就下定决心,要么给客户做稳定的,要么不接这个活。为什么共享签名这么容易掉?道理很简单,一个共享证书上面挂了几十个甚至上百个APP,只要有一个APP被用户举报,或者被苹果检测到违规,整个证书就会被封,所有挂在上面的APP全都会掉签,跑都跑不掉。补签的时候也只能换个新证书重新签名,用户还要重新下载安装包重新安装,非常麻烦,很多用户嫌麻烦就直接不用了,对客户来说损失的都是真实用户。
现在很多客户找我做H5封装的IPA包,就是把移动端网站封装成原生APP壳,不需要上架AppStore,直接分发安装,这种需求现在特别多,成本低,上线快,很多小创业项目都喜欢做。我记得有个做社区团购的客户,一开始舍不得花钱做定制签名,找了个十五块钱一个月的自助签名,结果平均三天掉一次,用户每次打开都闪退,一个月下来新用户留不住,老用户都跑光了,后来来找我做定制独享证书签名,做了快两年了,就掉过一次,还是客户自己误删了描述文件,我半个小时就帮他补好了,用户都不用重新安装,打开直接就能用,现在这个客户每年都续费用,还给我介绍了好几个新客户。IPA签名其实是所有苹果应用安装的基础,不管你是什么应用,打包出来的IPA包必须经过苹果信任的证书签名才能安装,这个是iOS的安全机制,根本绕不开,就算你上架AppStore,也是苹果给你做官方签名,本质上都是一回事。
我现在一般给客户推荐方案的时候,能做AppStore上架的,我都会劝客户尽量上架,毕竟上架之后永远不用操心掉签的问题,用户也信任,还能获客,但是真的上不去的,我会根据客户的需求推荐,要是用户量不大,想要稳定,就做定制UDID签名,要是用户量大,就做TF签名,TF签名现在真的是性价比很高的选择,我做过一个本地美食预约的客户,上架AppStore因为没有餐饮资质被拒了三次,后来走TF签名,一次就过审,用到现在快一年了,一次都没掉过签,用户安装也方便,点个链接跳转到TestFlight下载就行,都不用手动信任证书,体验非常好。当然TF也不是万能的,90天就要续一次,下载次数也有限制,真的不符合TF审核规则的,还是得做定制企业签名,独享证书的那种,虽然贵一点,但是稳定。
做苹果签名证书定制开发这么久,我最深的感受就是,这个行业拼的不是价格,是稳定,客户要的就是应用能正常打开,不耽误事,你便宜个几百块,天天掉签,客户照样不满意,你贵一点,一年半载不出问题,客户年年都给你续费。我现在自己维护了几十本独享证书,每个客户的证书都是分开的,互不影响,就算真的出问题掉签了,我这边也有备用证书,几个小时就能补签完成,大部分情况都不用用户重新安装,直接就能恢复使用,这么多年口碑做出来了,老客户介绍新客户,生意一直都挺稳定的。遇到过不少客户,之前被低价签名坑过,交了一年的钱,用了半个月商家都跑路了,最后花两份钱来找我重做,其实真的犯不上,选签名的时候,稳定永远比低价重要。
我平时没事就在后台维护证书,更新UDID,处理客户的补签请求,做独立开发久了,这种慢节奏其实也挺好,帮客户解决实际问题,自己也能养活自己,不用看老板脸色,遇到合得来的客户,还能长期合作,这么多年跟苹果签名打交道,坑踩够了,也慢慢摸出了自己的路子,给客户做定制证书,稳定靠谱比什么都强。