苹果企业签名版本更新 开发者避坑经验分享
做独立iOS开发快五年,接私活做自用工具,大半时间都在跟签名打交道。这次苹果更新企业签名的检测规则,我又踩了个大坑,索性把这些年攒的经验全写出来,给同行避避坑。
先从最基础的P12证书说吧,刚入行那会我根本不懂什么是P12,只知道是给IPA签名用的文件。那时候为了省麻烦,导出P12之后直接存在公共网盘,还随手分享给刚入行的学弟帮我打包测试。结果不到半个月,我的证书被苹果封了,那个学弟拿我的P12给好几个违规APP签名,苹果一扫到直接连锅端,我当时三个正在内测的项目全掉签,硬生生赔了甲方三千多块的违约金。
现在我对P12的保管谨慎到离谱,导出的时候一定要设强密码,存在加密本地U盘,从来不上传公共云,找第三方服务商帮忙签名,也尽量不把自己的P12交出去。如果是自己做签名,一定要记住,P12就是你开发者账号的私钥,谁拿到谁就能用你的账号签任何APP,出了事全算在你头上,千万不能大意。
再给大家报一下现在不同渠道签名的真实价格,都是我这两年亲身踩过点的,没有虚价。首先是大家最常问的企业签名,分共享和独享两种。共享企业签名就是几十上百个APP共用一个企业证书,现在市场价大概是一百到三百一个月,那种喊你九十块钱包年的,不用想,百分百是骗子,要么就是给你签完半个月跑路,掉签找不到人。独享企业签名就是一个证书只放几个合规的APP,不对外接杂活,现在价格大概是一千五到两千五一个月,下载量超过一万的还要再加钱,贵是贵点,稳定度确实差很多。
然后是超级签名,本质就是个人开发者证书拼额度的设备签名,这里刚好说下设备签名原理和UDID绑定。苹果的规则里,个人开发者账号一年只需要交99美元年费,最多可以绑定100台设备的UDID,绑定之后就能直接在这些设备上安装你签名的APP,不用过AppStore审核。UDID就是每台iOS设备唯一的识别码,相当于设备的身份证,只有把UDID录入苹果开发者后台,你的证书才能给这个设备授权,没绑定的设备就算装了IPA也打不开。超级签名就是服务商收了几百个个人开发者的100台额度,拼起来给用户签名,按设备数收费,现在市场价大概是一台设备一年10到15块,一百台设备就是一千到一千五,设备少的话挺划算,设备多了成本比企业签名还高。
再就是TF签名,TF签名其实就是把你的IPA放到苹果官方的TestFlight测试平台,用户通过TestFlight下载安装,现在市场价一般是三百到八百包一年更新,一次性收费,比企业签名便宜还稳定,我现在大部分没法上架的项目都转TF了。最后还有AppStore上架的签名,那是苹果官方给你签的,只要你过审了,基本不会有掉签问题,价格的话就是自己交99美元的个人开发者年费,找代上架的话,一般一千到三千不等,看APP的类型,合规的便宜,有点擦边的贵。
这里再说说证书分发机制,苹果的所有IPA分发本质都是靠证书的信任链,你用的P12证书是苹果开发者后台颁发给你的,苹果如果检测到证书违规,直接吊销证书,你的签名就失效了,手机就不再信任这个APP,自然也就打不开了,这就是大家常说的掉签。
掉签真的是iOS开发者的噩梦,我上个月刚经历一次,客户的内部员工打卡APP,用了大半年的老企业签名,这次苹果更新规则之后,批量检测违规证书,客户刚好最近扩编,一周新增两百多台设备下载,直接触发了苹果的风控,证书说没就没了,两百多员工早上上班全打不开打卡界面,客户老板一个小时打了我七个电话,我那天早上连饭都没吃,到处找证书补签,折腾到下午才搞定,整个人都快散架了。
掉签的原因说来说去也就几种,第一种就是你自己的APP违规,被苹果举报检测到,吊销证书。第二种就是共享证书,同一个证书上别的APP违规,把你牵连了,这种最冤,你什么都没做,躺着中枪。第三种就是这次更新之后,苹果对企业证书的下载量监控更严了,就算你合规,下载量突然涨太多,也会触发风控吊销,我那次就是栽在这。
补签说起来也简单,就是重新找一个有效的P12证书,给你的IPA重新签名,然后换掉原来的下载链接,用户重新下载安装就能用了。正规一点的服务商,签的时候都会说好免费补签,但是碰到批量掉签的时候,服务商手里证书也不够,补签拖个两三天都是常事,要是你是对外的引流APP,两三天打不开,用户基本都流失完了,损失根本补不回来。我之前碰到过那种便宜的共享签名,掉签之后找服务商补签,直接说补签要加钱,不加就不给弄,简直就是明着宰人。
很多人找我做H5封装的APP,都是说要不上架,直接分发,我一般都会优先推荐TF签名,什么是H5封装?就是把本来的网页H5,套个iOS的壳,打包成IPA安装包,本质还是网页,很多这种套壳APP不符合AppStore的上架规则,没法上架,所以需要做IPA签名之后分发。之前有个开生鲜店的老板找我,把他的点单H5做成了APP,原来图便宜找了一百块一个月的共享企业签名,半个月掉了四次,每次掉签用户都要重新下载,半个月跑了三分之一的点单用户,急得不行找我改。我给他做了TF签名,才花了四百多,用到现在三个多月,一次都没掉过,他现在逢人就给我介绍活。
其实如果你的APP合规,能做AppStore上架,尽量还是上架,上架之后用户从AppStore下载,不用信任证书,不会掉签,体验是最好的,也不用天天担心签名的问题。但是确实很多APP没法上架,比如企业内部用的办公APP,比如还在公测阶段的项目,比如一些套壳H5的工具,不符合苹果的上架规则,那就要选合适的签名方式。
我现在给客户推荐签名,都是按需求来,要是企业内部几百台设备用,需要直接下载不用跳TestFlight,那就选正规的独享企业签名,贵点但是体验好,只要不违规,一个季度掉一次就算多的,补签也方便。要是几十台设备内测,那就选超级签名,按设备收费,一百台也就一千多,比按月付企业签名划算。要是对外发布没法上架的,直接推TF签名,苹果官方的渠道,只要你APP不违规,基本不会掉,就算90天测试到期,重新上架一次也就十几分钟的事,花几百块包一年,比什么都稳。
UDID绑定这块我也踩过坑,最早找第三方做超级签名,服务商说什么无限绑定,价格比市场价便宜一半,我贪便宜签了,结果不到一个月全掉了,一问才知道,服务商用的是黑卡买的开发者账号,苹果批量封黑卡账号,所有绑定的UDID全失效了,那次又赔了客户两千多,从那之后我再也不找那种比市场价低太多的签名,一分钱一分货,永远不会错。
现在苹果对企业签名的管控越来越严,这次版本更新之后,原来那种共享证书赚快钱的路子越来越难走,好多小服务商卷了年付的钱就跑路,留下开发者和客户擦屁股。我身边好几个朋友,去年贪便宜买了五百块一年的共享企业签名,不到三个月服务商就找不到了,APP掉了只能自己重新花钱签,亏了钱还耽误事。
做独立开发这么久,我最大的感受就是,签名这块永远是稳定优先,别贪那点差价,掉一次签损失的客户和违约金,远比你省的那几百块签名费多得多。慢慢摸爬滚打这么久,现在也攒了几个靠谱的合作渠道,自己手里也囤了两个正规的企业开发者账号,给老客户用,很少再因为签名的事熬夜救火了。