我做独立iOS开发快五年了,大大小小做过十多个工具类产品,大部分都没能顺利登上AppStore,所以一路跟苹果签名打交道,踩过的坑能绕我出租屋三圈。
最早接触签名的时候,连P12证书是什么都不知道。那时候做了第一个微信清理缓存的小工具,提交AppStore四次全被打回,说我功能不符合规范,无奈只能找签名。找了个朋友圈的小代理,给我发了个后缀p12的文件,让我自己导入钥匙串,生成描述文件再给IPA重签。那时候我连Xcode刚用熟,捣鼓了一下午,把自己的个人开发证书都弄冲突了,连编译都通不过,急得我那天晚上吃泡面都加不上肠。
后来才弄明白,P12证书其实就是把开发证书和对应的私钥打包导出的文件,用来给IPA重签名用。P12的使用说简单也简单,导入苹果电脑的钥匙串访问,找到对应的证书导出描述文件,再用签名工具替换原来包里面的描述文件和权限,就能生成签好的IPA。说麻烦也真麻烦,要是路径不对,或者权限没开,签出来也用不了,而且P12本身包含私钥,一旦泄露出去,别人拿着就能用你的证书签名,整个证书很快就会被苹果封掉。我之前贪便宜拿过P12自己存,结果不小心同步到公共网盘里,没半个月证书就被封了,所有用户全掉签,我找服务商,服务商说我自己泄露的,不给补签,白白亏了小两千,还跑了一百多种子用户。现在我从来都不要求拿P12,都是存在服务商后台,我只需要上传IPA,他们后台签好给我分发链接,省心也安全。
说点实在的,不同渠道不同签名类型的真实价格,我这些年摸的门清,绝对不是网上那些乱喊的价格。共享企业签名,就是好多不同开发者的APP共用一个企业证书的那种,现在市场价格一般包月在100到300之间,按年付的话差不多1000到2000,那种包月几十块的我也买过,基本不到一周就掉签,都是代理倒的二手单。独享企业签名,就是整个证书只签你一个APP,价格一年差不多4000到12000,要看证书的类型,稳定的大证书贵一些,小证书便宜点,但也比共享贵好多。
超级签名,也就是绑定UDID的设备签名,按设备数收费,正规服务商的价格一般是4到6块钱一台设备一年,那种两块三块一台的,基本都是用的黑号或者被苹果标记过的号,用不了几天就全封。我之前买过2.5一台的一百台,才12天就全掉了,服务商直接拉黑我,连人都找不到。还有按月算的超级签,一般一个月一百多到三百多,适合用户流动大的产品。
TF签名就更透明了,一般一个IPA按年收费,价格在300到800之间,也有按安装次数卖的,一百块钱一千次安装,正规服务商基本都是这个价,不会差太多,TF本身是苹果官方的,价格稳,不会乱开价。
说到超级签名,就得说设备签名的原理和UDID绑定,我也是踩了坑才搞明白这里面的逻辑。每台苹果设备都有一个独一无二的识别码,就是UDID,相当于设备的身份证。苹果的个人开发者账号,一年交99美元,允许开发者最多添加100台测试设备,用这个账号签名的APP,只有添加了UDID的设备才能安装,这就是设备签名的核心原理。超级签名说白了就是服务商攒了几百上千个个人开发者账号,把用户的UDID添加到不同的账号里,然后给IPA签名,这样就能实现多设备安装。所以整个过程都绕不开UDID绑定,你不绑定UDID,苹果就不认,设备就装不了。
最早我做超级签名的时候,还要用户自己找UDID,发我,我再一个个发给服务商添加,一天加两三百个,我手都磨出茧子了,后来才知道正规服务商的分发平台都自带自动获取UDID的功能,用户点一下链接就能自动获取,自动绑定,自动签名,我根本不用管,省了太多事。而且UDID绑定之后,只要对应的账号不被封,这个设备就能一直用,换IPA更新都不影响,还是很方便的。
苹果的证书分发机制其实分好几种,我捋清楚也花了好久。第一种就是AppStore上架,这个是苹果官方正式的分发渠道,所有用户都能直接下载,只要你能过审,只要你愿意交30%的苹果税,当然稳定不会掉签,但是过审真的太难了,对于我们独立开发者来说,很多小工具、内测版产品,根本过不了审,我前后十几个产品,只上去了两个,还是改了无数次的结果。第二种就是企业证书分发,苹果给企业开发的内部APP用的,允许不限制设备安装,不用绑定UDID,用户直接点链接就能装,本来是给企业内部用的,我们拿来做外部分发就是打擦边球,所以苹果查的严,只要下载量太大或者被举报,证书就会被封,一掉全掉。第三种就是个人开发者账号的设备分发,也就是超级签名用的,本来是给开发者测试用的,我们拿来做正式分发,也是打擦边球,最多一个账号100台,所以要攒很多号,只要账号不被封就稳定。第四种就是TF分发,也就是TestFlight,苹果官方做的内测分发平台,允许最多一万个测试用户,这个是苹果官方认可的,所以基本不会掉签,只要你的APP不违规到苹果直接下架,就能一直用。
我做过好多个H5封装的IPA,很多人不知道H5封装是什么,就是你本来是一个手机网页,把它打包成iOS的IPA安装包,就能当APP用,不用写原生代码,开发快成本低,特别适合我们独立开发者试错。我去年做的那个小说阅读工具,就是H5写的,花了一百多块钱封装成IPA,然后再做IPA签名,整个下来不到一千块,一周就上线给用户用了,要是做原生开发再上架AppStore,不知道要折腾几个月。IPA签名就是所有不上AppStore的IPA包必须走的一步,苹果的机制就是这样,任何没经过官方签名的APP,都没法在iOS设备上打开,哪怕你把安装包装进去了,也会提示“未受信任的开发者”,根本用不了。
掉签这个事,我估计每个做签名分发的开发者都被折磨疯过。我最早用共享企业签,平均半个月掉一次,掉一次就得等补签,那些小代理补签要等两三天,我那时候用户群里全是问“为什么打不开了”,我天天蹲在服务商微信下面催,睡觉都手机放枕头边,就怕漏了消息,那段时间掉发都严重了,去医院看医生说焦虑导致的。掉签的原因也分很多种,共享企业签是因为同一个证书上有别的APP违规,被苹果查了,连带着你也遭殃,独享企业签一般是自己被举报了才会掉,超级签掉签一般是服务商的个人账号被苹果封了, TF签我用了快两年,只掉过一次,还是因为我那个工具涉及了一点版权内容,苹果给下架了,不然根本不会掉。
补签这个事,最能看出服务商靠不靠谱。差的服务商,掉签了要么不理你,要么说你违规了,要加钱才给补,好的服务商,只要你没做违规的事,服务期内免费补签,最慢一天就能弄好。我现在用的这家,上次我那个工具被举报掉了企业签,上午说的,下午就给我补好新的证书了,分发链接都不用换,用户重新下载一下就能用,根本不用我折腾,这钱花的就值。
我其实一直没放弃冲AppStore上架,毕竟上架了之后用户信任度高,也方便推广,但是过审真的太难了,我那个日程管理工具,来回改了八次,还是因为“功能过于简单,与网页重复”被打回,我干脆先做了TF签名,现在已经积累了三千多用户,等后续加上更多功能再去提交,反正签名分发试错成本低,哪怕做坏了也亏不了多少钱,比硬磕上架划算多了。
现在我选苹果签名证书服务商,就认一个理,稳定比什么都重要。之前总想着能省一点是一点,结果掉一次签,跑一堆用户,亏的比省的多得多。现在新做的产品,用户量不大的时候我直接上TF签名,价格不贵,还从来不用操心掉签的事,用户多了再考虑独享企业签或者冲AppStore,省心很多,我也能多花点时间改改产品,回应用户的需求,不用天天跟掉签补签较劲。傍晚吃完晚饭下楼遛弯,吹着风想着,做独立开发本来就是慢慢熬的事,少踩点不必要的坑,才能走得更远一点。