做独立iOS开发快六年,每天都能收到三五个新手开发者的私信,问得最多的问题就是TF苹果签名掉签吗。说真的,每次翻聊天记录重复说一遍太累,不如把我这些年踩过的坑、摸出来的经验都写出来,给刚入行的朋友做个参考。

我最早入行的时候,自己写了一个本地隐私打卡小工具,想给身边做新媒体的朋友用,那时候工具涉及本地存私密内容,提交了三次AppStore都被拒,说不符合数据收集规范。没办法只能找未上架的签名方式,那时候啥都不懂,搜IPA签名出来一堆广告,挑了个最便宜的,99块钱包年,结果签完第三天早上起来,所有朋友都跟我说打不开,掉签了,再找那个商家,人家已经把我拉黑了,钱打了水漂,那时候刚出来做开发,一周饭钱都没了,印象特别深。

后来慢慢摸懂了苹果签名的底层逻辑,其实设备签名原理说穿了很简单:苹果本身的生态规则就是,没有上架AppStore的应用,不能直接安装到iOS设备上,必须要有苹果官方认可的签名,证明这个应用是被允许在对应设备上运行的,说白了就是给应用开个准入证明。

那UDID绑定又是怎么回事?每个苹果设备都有一个唯一的设备识别码,叫UDID,相当于设备的身份证。苹果对于未上架的AdHoc分发应用,要求开发者必须明确登记哪些设备可以安装,所以就要把每个要装应用的设备UDID绑定到你的证书描述文件里,只有绑定过的设备,才能安装签好名的IPA包。最早超级签名刚出来的时候,还要手动抓UDID,我给客户加一百多个设备,一个个复制粘贴,输错了三个,结果三个用户装不上,又重新改描述文件重新签名,折腾了整整两天,腰都坐僵了,现在都是自动化获取了,但是底层原理还是UDID绑定,这个没变。

说到证书就不得不提P12证书,我刚自己弄签名的时候,踩过一个超大的坑。在苹果开发者后台生成证书之后,导出的时候没注意,导成了cer格式,以为就能用了,结果导入签名工具一直提示错误,说找不到私钥,折腾了一下午,问了好几个大佬才搞明白:P12证书才是同时包含公钥和私钥的文件,cer只有公钥,没有私钥根本没办法完成签名。导出P12的时候还要设密码,一定要把这个密码记好,同时把P12文件多备份几份,我之前电脑重装系统,忘了备份P12,结果自己用了一年的个人工具证书直接废了,想更新版本都没办法,只能重新申请证书重新签名,通知所有用户重新安装,折腾了整整一周,从那以后我所有的P12都分别存在三个云盘,还有一份备份在U盘里,就怕丢。

现在很多人找我做H5封装,说能不能不用签名直接装,这肯定是不可能的。不管你是原生开发的IPA,还是H5封装套壳出来的IPA,只要是没上架AppStore,要装到iOS设备上,就必须做IPA签名,这个规则逃不开。上个月刚接了一个本地生鲜商的单,把他的配送H5封装成IPA,一开始想上架AppStore,结果他没有对应的增值电信业务资质,被拒了四次,最后只能转签名,选了TF签名,用到现在快五个月,一点问题都没有。

说回大家最关心的价格,我给大家报一下现在市场上的真实价格,别被那些黑心商家坑了。现在市面上的签名主要分三类,价格差得很大:第一种是超级签名,用的是个人99美元开发者账号的100台设备名额,现在正规平台的价格大概是1-2元每台设备,按设备收费,一年内掉签免费补,要是找个人开发者出闲置名额,大概1元每台就能拿到,那种低于一块钱的基本都是坑,别碰。第二种是企业签名,用的是299美元的企业开发者账号,分共享证书和独享证书,共享证书就是几百个应用共用一个证书,一年也就几百块,看起来很便宜,但是我奉劝大家千万别碰,我四年前接了一个教育机构的单,图便宜用了800块一年的共享企业签,结果不到一周,证书因为上面有违规应用被苹果封了,几百个老师等着用刷题系统,全打不开,客户老板直接打电话骂我,我连夜自己垫了两千多换了个独享证书才搞定,从那以后我碰都不碰共享企业签。独享企业签名现在的价格大概是一个应用一年3000到8000不等,应用越敏感价格越高,稳定性比共享好很多,但还是比TF容易掉。第三种就是TF签名,也就是TestFlight签名,正规平台的价格,不违规的普通应用,大概一个月200到500,包一万次安装的话大概1000到1500,无限安装包年的话大概1500到2500,要是涉及一些敏感内容,价格会翻一倍左右,别信那种几十块钱包年的TF签名,要么是套路,要么就是共享的测试资格,用不了半个月就掉,商家转头就跑路。

说回证书分发机制,苹果官方本来就有几种分发渠道,AppStore上架是正式分发,面向所有用户,稳定性是最高的,用户下载也最方便,我一般都会劝客户,能上架AppStore绝对优先上架,掉签的问题根本不存在,还能被用户搜索到,赚点曝光不好吗?但确实有很多应用上不了,比如企业内部用的OA、内测应用、不符合苹果审核规则的应用,才会走其他渠道。剩下的渠道里,企业分发是给企业内部员工用的,AdHoc分发是给测试设备用的,TF分发本质就是苹果官方提供的应用测试分发渠道,本身就是苹果认可的,所以稳定性才会这么高。

那回到最开始的问题,TF苹果签名掉签吗?我说实话,TF不是百分之百不会掉,我做了这么多年,经手的几十个TF应用,也遇到过两次掉签。第一次是去年给一个客户做的社区应用,因为有用户发违规内容被举报,苹果查到之后直接把TF测试链接下架了,就掉了。第二次是一个客户自己的开发者账号到期忘了续费,账号被封了,关联的TF测试自然也用不了。除了这两种情况,我剩下的所有TF应用,最长的一个个人工具已经用了快两年,都没掉过。

和其他签名比起来,TF掉签的概率真的低太多了,而且TF还有个好处,不用用户手动去设置里信任证书,企业签很多用户不会弄这个步骤,一半的售后问题都是问怎么打不开,TF是用户从官方的TestFlight应用下载,装完直接就能打开,体验好太多了。我那个生鲜客户之前用企业签,客服每天要处理十几个咨询安装的问题,换了TF之后,再也没人问过安装的事。

掉签之后补签也分情况,超级签名掉签,只要不是你自己违规,一般平台都会免费补,用户重新安装一次就行。企业共享签名掉签,补签要等很久,有时候还要加钱,独享企业签掉签一般免费补。TF掉签补签也很简单,只要重新打包提交TF审核,一般几个小时就能过,审核过了发新链接给用户,用户重新下载就能用,大部分情况数据都不会丢,我之前那个掉签的社区应用,补签也就花了大半天,就恢复正常了。

我一直跟身边的开发者说,签名这块永远是一分钱一分货,贪便宜最后吃亏的还是自己。我现在给客户推方案,永远是能上架AppStore就上架,上不了就优先选TF签名,只要应用本身不碰违规内容,基本不会出问题,省了多少掉签补签的麻烦,也少了很多和客户的纠纷。做独立开发本来就不容易,少踩一个坑,就能多省出很多时间写代码,不用天天围着补签的事转。