作为做了五年的独立iOS开发,我大半的签名经验都是泡ios签名社区论坛攒下来的,从一开始连P12证书是什么都不知道,到现在能自己搞定各种场景的签名,中间踩的坑能绕我出租屋三圈。
一开始我做了个本地商户收藏的小工具,满心欢喜申请AppStore上架,结果因为涉及第三方地图接口的未授权使用,两次被苹果打回,个人开发者资质也没办法申请到相关权限,只能放弃上架,转做IPA签名私下分发。 那时候真的是两眼一抹黑,只会写代码,签名相关的知识一点都没有,只能天天泡论坛翻老贴,一点点啃。
最先搞懂的就是P12证书使用,原来P12就是把开发者证书和对应的私钥打包导出的文件,是签名的核心。 我一开始自己导出p12,只会导出证书,忘了把私钥一起导出来,结果拿去做签名,连续十几次都提示签名失败,我还以为是签名工具坏了,折腾了整整一天,才在论坛的老贴里看到,导出的时候要同时选证书和私钥,导出成p12还要设置密码,这个密码签名的时候必须用,错一次都不行。 后来我自己帮朋友签名,遇到过好多人给的p12是错的,都是当初导出的时候漏了私钥,想想那时候的自己,真的是又笨又执着。
设备签名原理说复杂也简单,本质就是苹果的机制允许开发者给特定设备开放安装权限,不管哪种签名,本质都是绕开AppStore的校验,让未上架的包能装到手机上。 这里就绕不开UDID绑定,每台iOS设备都有一个唯一的UDID编码,苹果只认你加到开发者账号设备列表里的UDID,只有绑定了UDID的设备,才能安装对应签名的包。 我一开始自己用个人开发者账号做Ad Hoc分发,就是一个个找用户要UDID,复制粘贴到苹果开发者后台,加完之后再用自己的p12证书打包,那时候才五十多个用户,整理UDID都整理了我一晚上,真的麻烦。
说一下我这几年遇到的不同渠道的真实价格,给想做签名的朋友做个参考,别像我一开始一样被坑。 共享企业IPA签名,就是好多开发者共用一个企业证书那种,小渠道一般是30到100块一个月,口碑好点的大渠道稳定款,大概是80到150一个月;独享企业签名就是一个证书只给你一个人用,价格从300到1500一个月不等,证书越新越稳定价格越高,我见过最夸张的有人报2000一个月,完全是坐地起价。 然后是超级签名,超级签名按设备收费,一般一个设备一年是3到10块钱,那种卖两块多一个设备的,基本都是用盗来的黑开发者账号做的,便宜是便宜,哪天苹果一封号全掉完,我就踩过这个坑。 然后是TF签名,TF就是TestFlight签名,苹果官方的内测渠道,现在市面上一般两种收费,一种是按月付,一个月100到400块,另一种是一次性收费帮你上架,一次100到200块,只要苹果不下架一直能用,我现在用的就是这种,性价比真的高。 要是你找第三方帮忙做AppStore上架,一般服务费是500到2000块,过审再收钱,不过审退大部分,这个也是行情价,不会差太多。
再说说苹果的证书分发机制,苹果本来就给开发者开放了三种分发途径,第一种就是大家熟悉的AppStore分发,给正式用户下载,审核最严;第二种就是Ad Hoc分发,也就是内测用的,需要绑定UDID,用个人或者公司开发者证书就能签,个人账号最多绑100台设备,刚好适合小范围内测;第三种就是企业内部分发,用企业开发者证书,不需要绑定UDID,任何设备都能装,本来是给企业内部开发的应用用的,现在很多未上架的应用都用这个方式分发。 掉签其实就是苹果把你的证书吊销了,要么是苹果查到证书用来给外部应用签名了,要么是证书本身是黑号被封号了,证书失效了,签名自然也就没用了,应用就变成灰图标打不开了。
掉签的糟心我真的太有体会了,我之前刚做起来一个小区门禁查询的小工具,积累了两千多用户,那时候刚起步没钱,贪便宜找了个29块一个月的共享企业签,想着能省一点是一点,结果用了一个多月,周末我出去爬山,手机不停地震,打开一看几十条用户消息,全说应用打不开了,图标灰了。 我赶紧联系卖签名的商家,结果商家周末不回消息,等到周一才说证书被苹果吊销了,要补签,补签完还要我通知所有用户重新下载安装。 那时候我没做推送,只能在用户群一个个喊,好多用户嫌麻烦,直接就删了应用,那一次掉了快三分之一的用户,我心疼了好几天,连饭都吃不下,从那以后我就认了,签名一定要选稳定的,千万不能贪便宜。
补签其实也分好多情况,靠谱的商家掉签了会免费给你补签,不靠谱的收了钱就找不到人,掉了也没人管,我之前在论坛被一个私信打广告的坑过,他说一年签名才200块,绝对稳定,我付了钱,第三个月掉签就联系不上人了,钱也打了水漂。 后来我只找论坛里大家口碑推的,做了好几年的老商家,掉签了几个小时就能补好,不会让你等太久。
说到我那个门禁工具,本来就是个H5页面,大家嫌每次开微信麻烦,让我做成本地APP,我不想花太多时间写原生,就找在线工具把H5封装成了IPA包,封装完就是未签名的文件,必须做IPA签名才能安装。 一开始用那个便宜企业签掉了之后,我就在论坛问大家有没有稳定的签名推荐,好多老开发者给我推TF签名,说苹果官方的,基本不会掉。 我当时就找了个商家,花了120块一次性帮我上架TF,弄完之后给我一个安装链接,用户点一下就能直接安装,到现在快一年了,一次都没掉过,真的太省心了。
TF签名我现在也推荐给所有中小独立开发者,真的比企业签稳定太多了,唯一的缺点就是审核比企业签严一点,但是比AppStore上架松太多了,我那个门禁包一次就过了,只要不做违规的内容,基本都能过。 而且成本真的不高,一百多块一次性搞定,比每个月给企业签交租金划算太多了。 当然如果用户量很大,超级签其实也挺稳定的,就是要找那种用正规实名个人开发者账号做的渠道,虽然价格贵一点,一个设备八块十块的,但是不会批量掉签,用着放心。
我现在自己有个人开发者账号,做小范围内测的时候都是自己签名,一年交688的苹果开发者年费,能绑100台设备,算下来一个设备才六块多,比找外面签名便宜多了,就是每次加新用户都要重新绑定UDID,重新打包,稍微麻烦一点,用户少的时候完全够用。 之前有个刚做开发的学弟问我,能不能自己弄签名不用找第三方,我就告诉他,用户少于100个的话,自己买个开发者账号自己签最划算,也最稳定,不会有掉签找不到人补签的问题,只要自己不吊销证书,一直能用。
我还记得有一次帮朋友做一个活动的临时应用,就用三天,只需要给几十个内部员工用,我就是帮他导出自己的p12证书,收集了所有人的UDID,加进去之后打包签名,直接发安装包,三天下来一点问题都没有,成本就是我已经交过的年费,相当于没花钱,比找第三方签名划算太多了。 那时候我才发现,很多人都不知道p12证书可以自己导出自己用,只要你有开发者账号,就能给任何IPA包签名,只要不超设备数量就行。
现在我也经常泡在ios签名社区论坛,有时候遇到新人问签名的问题,都会把自己踩过的坑说给他们听,毕竟自己当初也是从那个阶段过来的,知道找不到方向到处踩坑的难受。 上个月还有个刚毕业的学生开发者找我,说他做了个背单词的小工具,AppStore上架被打回,问我怎么办,我就让他先做TF签名,先积累用户,用户多了再调整内容重新申请AppStore上架,他听完说一下子就清楚了,我也挺开心的。
其实做独立开发这么久,签名就是个必经的过程,不管你最后上不上AppStore,内测阶段都少不了要用签名,选对适合自己的签名方式,能少好多掉签补签的糟心事,把更多时间花在做产品上就好。