做独立iOS开发快六年,前两年一直卡在上架这一步,做的几款工具类App,要么是涉及本地文件管理,要么是不符合AppStore的内容规范,前前后后被拒了快十次,改到最后心态都崩了,才转头研究各种IPA签名的路子,最早连两者的区别都搞不清,踩过的坑能装一箩筐,今天就把我这些年的真实经历写出来,给同路人做个参考。
最早找第三方做签名,对方说要提供P12证书,我那会哪懂这个,只知道在开发者中心生成了证书,导出的时候选了cer文件,给对方发过去,对方说不对,要p12格式,要带私钥才能签名。 我回去翻了半天教程才知道,生成证书之后,要在钥匙串里找到对应的证书,右键导出,才能存成带私钥的p12文件,还要设置独立密码,签名的时候需要输入密码验证。 那时候我还不知道p12的重要性,导出之后只存在了电脑桌面,后来电脑系统崩溃重装,啥备份都没做,那个p12就找不到了,之前签好的包,更新版本的时候只能重新生成证书重签,之前所有安装过的用户全部掉签,那段时间天天在用户群里道歉,发新的安装包,还是走了快三分之一的老用户。 现在我不管哪个证书的p12,都会在iCloud、阿里云盘还有移动硬盘各存一份,密码都记在密码管理器里,就怕再出这种岔子。
这么多年接触下来,不同渠道的价格真的差很多,坑也多。 共享企业签名,就是很多个不同开发者的App共用同一个企业证书的那种,我见过最便宜的三十块钱一个月,还有甚至十块钱一周的,听起来真的很诱人,我刚入门的时候就冲了一个季度九十块,结果呢,三天掉了四次签,每次找客服补签,都要等一两个小时,补完没两天又掉,最后那个服务商干脆给我停了,说我的App触发风控,不给做了,钱也不退,说理都没地方说。 现在正规渠道的共享签名大概是一百到两百一个月,就算是这个价格,稳定度也好不到哪去,毕竟证书上杂七杂八的App太多,碰到一个违规的,全证书都遭殃。
独立企业签名就不一样了,正规渠道的独立证书,一个证书只放少数几个合规的App,不会什么乱七八糟的都往上签,价格大概是一个月三百到八百,要看你的App下载量和类型,不违规的小工具价格低一点,要是体量大多下载,价格就高一点,我现在用的就是一个月五百的独立企业签名,包年四千,比按月租便宜一点,算下来一个月不到三百四十块,很划算。
超级签名的价格就更透明了,都是按激活设备数量收费,现在市场价大概是一块五到三块钱一个设备,你要是有量,一千台以上能谈到八毛到一块钱一台,我之前做内部测试,三百台设备,谈下来一块二一台,一共三百六,那些说超级签名不限设备一个月几百块的,百分百是坑,因为一个个人开发者账号最多只能绑定100台UDID,不限设备的话肯定是用黑号拼的,说封就封。
TF签名的话,现在一般是按次收费,一次上架TF两百到五百,有效期九十天,到期只要重新提交就行,大部分渠道续期都会便宜一点,TF是苹果官方的测试渠道,稳定度真的没话说,只要App不违规被举报,基本不会掉,就是用户安装需要先下载TestFlight,多一步操作,对转化率有点影响,而且一个版本最多一万个测试名额,适合中小体量的开发者。
很多刚入门的朋友搞不懂设备签名原理,其实说穿了很简单,不管什么签名,都是绕开AppStore上架,让苹果信任你的IPA包,允许用户安装。 超级签名的核心就是UDID绑定,苹果规定个人开发者账号,可以把特定的设备UDID添加到账号的测试设备列表里,用这个账号给App签名之后,只有列表里的设备才能安装,所以超级签名每一个用户设备都需要提前获取UDID,绑定到账号里才能签名,这就是为什么超级签名要按设备收费,因为名额是有限的,一个账号最多一百个,多了就得加账号,成本自然上去。
而苹果企业签名用的是苹果给企业开发者账号的内部分发权限,企业账号不需要绑定任何UDID,只要证书有效,任何设备都能安装,也没有设备数量限制,分发起来更方便,这就是两者最核心的原理区别。 说到证书分发机制,苹果本身的逻辑就是,证书是开发者身份的凭证,企业证书就是给企业内部员工分发自用App用的,个人证书的测试设备名额就是给开发测试用的,所有用来对外分发公开App的签名,其实都是钻了规则的空子,所以苹果一旦检测到滥用,就会吊销证书,也就是我们常说的掉签。
说到UDID绑定,超级签名现在一般都要做H5封装来获取UDID,就是在签名下载页套一个H5,调用苹果的接口自动获取用户设备的UDID,然后自动签名生成下载链接,我最早不会弄H5封装,找别人做花了八十块,其实后来自己看教程半天就弄会了,就是个简单的静态页面,本质就是用来拿UDID的,对整个App的内容没什么影响。 很多做网页转App的开发者,本来就是做H5封装生成IPA,再做签名,整个流程下来开发成本很低,很适合小项目快速上线。 我之前用超级签名的时候,很多用户点到获取UDID那一步就觉得不安全,退出了,安装转化率真的低很多,比企业签名低了快三成,这也是我后来不用超级签名的原因之一。
说到掉签补签,这个是所有做签名的开发者都绕不开的问题,我掉签掉最多的时候,一天掉三次,早上刚补完,下午又掉了,用户都问我是不是做的什么盗版软件,我真的有苦说不出。 掉签的原因其实也分,企业签名掉签,大多是证书被苹果吊销了,要么是证书签了太多App,被苹果检测到滥用,要么就是证书里有别的违规App被举报,牵连了整个证书,共享证书之所以掉签多,就是这个原因。
正规的独立企业签名,掉签之后服务商都是免费给你补签的,我现在用的这个,掉过一次,是因为苹果更新了证书政策,批量吊销了一批老证书,服务商当天就给我换了新证书重签,也没额外收钱,我只需要把新的安装链接发到用户群就行,很省心。 超级签名掉签就不一样了,超级签名掉签大多是用的开发者账号被封了,账号没了,所有绑定过的UDID都失效了,所有用户都要重新绑定UDID重新签名,相当于你要重新付一次设备的钱,我之前就吃过这个亏,一千二百个用户,掉签之后补签名花了快一千块,本来那个月就没赚多少钱,全砸补签里了。
后来我也试过走TF签名的路子,TF真的稳,我那次上架的TF版本,用了整整三个月,一次都没掉过,要不是到期了我都不用管,唯一的问题就是我后来用户涨到快八千,接近TF的一万名额上限,才换了企业签名,要是用户少的话,我真的推荐大家优先试TF,毕竟是官方的,比第三方签名稳太多。 当然,要是能正常上架AppStore那肯定是最好的,上架之后用户信任度高,也不用天天操心掉签的事,我今年年初做的一个小工具,改了八次,终于过审上架了,现在半年多了,啥问题都没有,用户增长也稳定,可惜大部分我做的工具都不符合上架要求,只能走签名的路子。
我也见过不少开发者,为了省下签名钱,自己买账号做签名,其实算下来成本也不低,企业开发者账号一年要两千九百多,个人账号一年六十八,但是自己弄很容易被封,封号了钱就打水漂,对于小开发者来说,不如找靠谱的服务商租签名,风险更低。
现在我也慢慢摸出了适合自己的路子,中小体量测试的时候用TF,用户起来了换稳定的独立企业签名,不会再像刚开始那样贪便宜找乱七八糟的小渠道,也不会分不清两者区别随便选。 做独立开发本来就不容易,每一个用户都是慢慢攒下来的,掉一次签流失一批用户,比什么都伤,与其省那点签名钱,不如找个稳定靠谱的,省下来的时间多改改Bug,多更点功能,比什么都强。