作为做了快六年的iOS独立开发者,我踩过的授权坑比写过的代码还多,开篇必须先把最基础的提醒砸在最前面:苹果开发者账号注册后设置登录通知,这步真的能救你命。 我刚入行第一年,99美元的个人开发者账号付完钱就扔在那儿,根本没想起开登录提醒,结果账号密码被泄露,半个月后才发现P12证书被人盗走签了违规应用,账号直接被苹果封禁,那时候我手里三百多个测试用户全掉签,我蹲在苹果申诉页面填了三天资料,折腾了半个月才把账号找回来,差点直接放弃开发。 从那之后我不管注册新账号还是旧账号,第一件事就是开异地登录通知,只要不是我常用IP登录,邮件、iCloud推送一起发,十分钟内就能发现异常锁账号,这是所有授权安全的基础,半分懒都偷不得。
接下来聊P12证书的保管,这是我第二个血的教训。 最早我生成P12证书之后,直接扔在电脑桌面,连密码都不设,结果那年夏天我电脑主板烧了,硬盘数据全没了,备份又忘了拷证书,那时候我手里绑了八十多台测试设备,全掉签,我连夜重新申请证书、重新打包签名,熬了一个通宵才弄完,第二天起来用户留言炸了锅,二十多个老用户直接退群走了。 现在我学乖了,P12证书我存了三份加密备份:第一份存在百度网盘私人保险箱,密码是我单独记的强密码,第二份存在我随身带的加密U盘里,哪怕电脑全炸了拿U盘就能恢复,第三份存在我另一台备用笔记本的加密分区里,生成的时候必须设大小写加特殊字符的强密码,绝对不偷懒。 很多新手开发者觉得不就是一个证书吗,随便存就行,真出事了你就知道,P12就是你做分发的命根子,丢了坏了就是满盘皆输。
再说说不同的证书分发方式,我这些年几乎把所有方式都试了个遍,说点真实体验。 最早我用自己的个人开发者账号做分发,一年99美元,最多绑100台设备,适合刚起步做小范围内测,只要你自己账号不违规,基本不会掉签,稳定度拉满,就是量做不起来,用户多了根本不够用。 后来用户涨起来,我开始用共享企业证书,那时候企业证书还没现在查得这么严,共享的一个月才一百多块钱,我贪便宜用了大半年,结果后来苹果收紧审核,平均一周掉一次签,每次掉了就要等服务商补发,少则几小时多则一两天,天天给用户赔笑脸,真的熬不动。 之后我又转用超级签名,超级签名其实就是用多个个人开发者账号自动绑UDID签名,按设备收费,市场价一个设备两块到五块不等,我刚开始推的时候一天新增一百多个用户,一天就要两三百块,一个月下来小一万,而且用户删了重下还要重新收费,成本真的扛不住,更坑的是,我当时贪便宜找了一块二一个设备的低价服务商,不到半个月三个提供签名的个人账号全被封,绑的一千多台设备全掉签,服务商直接跑路,钱没了用户也没了,亏到姥姥家。
接下来聊UDID绑定的细节,这个很多新手都搞不对,我也踩过不少坑。 首先,不管是个人开发者分发还是超级签名,都需要获取用户的UDID才能绑定,最早我让用户自己去Safari打开苹果官网查,一步步操作,一半用户嫌麻烦直接走了,转化率不到30%。 后来我自己做了一个简单的H5封装的UDID获取页面,用户点一下允许就能自动获取UDID,同步传到我的后台,不用用户手动复制,转化率一下子涨到80%以上,这个小改动真的帮我留住了太多用户。 然后说名额的问题,苹果个人开发者账号每年给100个设备名额,很多新手以为绑满100个就不能再加了,其实不是,每年你可以删掉已经绑定的旧设备,释放名额给新用户,我刚入行的时候不知道这个,以为绑满了就要重新买账号,白白多花了六百多块冤枉钱。 还有就是,千万别同一个UDID绑定多个不同的开发者账号,很容易触发苹果的风控机制,直接封你证书,我之前就是来回换签名服务商,同一个设备绑了三个账号,结果半个月两个账号都被封了,这个坑真的要记牢。
再说说不同场景下的设备授权逻辑,我这些年总结下来,四种场景对应四种逻辑,清清楚楚不踩坑。 第一种是能过审的应用,直接走AppStore上架,这个不用多说,用户直接从AppStore下载,苹果帮你做授权,只要你不违规下架,永远不会掉签,也不用你操心任何证书的事,这是最省心的方案,我现在三个主力应用都上架了AppStore,每个月稳定涨用户,根本不用管授权的事,太舒服了。 第二种是过不了审的应用,走TF内测,也就是TestFlight,苹果官方的内测渠道,授权逻辑是你把IPA上传到苹果后台,生成测试链接,用户点链接就能在TestFlight里安装,最多支持一万个测试员,比个人开发者的100个名额多太多了,而且是苹果官方签名,基本不会掉签,只有三个月的有效期,到期了你重新传一个版本就行,操作也不复杂,这个真的是目前未上架应用里最稳定的方案。 第三种是TF名额满了之后的补量,用独立企业证书做IPA授权分发,企业证书本身不需要绑UDID,用户安装之后信任证书就能用,只要你用独立证书,不是几百个人共享的,掉签率很低,哪怕掉了服务商也会免费紧急补发,不会影响太久。 第四种就是H5封装的应用,很多人以为H5封装不用签名,其实不对,H5套壳之后也要打包成IPA,做签名授权才能让用户安装到iOS上,哪怕你做了桌面快捷方式,体验也不如签好名的IPA,所以H5封装完我都是统一签了名放到TF,稳定又好用。
聊完逻辑聊聊不同渠道的价格体验,给想要做开发的朋友做个参考,都是我真金白银花出来的经验。 自己注册个人开发者账号,现在一年大概700多人民币,折合一个月不到60块,适合刚起步用户不到100的开发者,成本极低,稳定度拉满,绝对是性价比最高的选择。 超级签名现在市场价是2-5元一个设备,按设备收费,用户量超过一千的话,一个月就要几千上万,成本太高,而且低价的超级签名基本都是用黑号,封号概率极高,不推荐大用户量用。 企业签名分两种,共享企业签一个月100-300块,价格便宜,但是掉签率极高,平均一周掉一次,真心不推荐,除非你只是临时用两三天;独立企业签一个月1000-2000块,一个证书只给你自己用,掉签率低很多,一般三四个月才掉一次,掉了免费补发,适合TF满了之后补量用。 TF签名现在一般是代上传服务费300-600块一次,一次成功可以用三个月,到期重新上传只需要收少量服务费,平均下来一个月不到200块,基本不会掉签,成本比超级签名和企业签低太多,稳定度还高,是目前我觉得最划算的方案。
给大家讲一个我这辈子都忘不了的证书失效紧急补发经历,那是20年的时候,我做了一个工具类应用,刚做完推广,有七千多用户,那时候我贪便宜,用了199一个月的共享企业签,比独立签便宜了一千多,我觉得凑合用用没问题。 结果那天周五下班,我刚走到地铁站,手机开始疯狂弹消息,全是用户说应用打不开,点一下就提示证书不可信。 我赶紧打开后台一看,证书已经被苹果 revoke 了,全掉签了。 我立刻找签名服务商,结果客服说老板提前下班周末不上班,要等周一才能处理,我当时整个人都懵了,七千多用户,要等三天,那不都跑光了吗? 我托朋友找了服务商老板,加钱求他帮我补发,他说手上没有多余的空闲证书,要给我插队,得等第二天早上。 那整个晚上我都没睡觉,抱着手机回用户消息,给所有用户发了公众号通知,说正在处理,恳请大家等一等,好多用户根本不理解,直接骂街删应用,一夜之间掉了一千多用户。 第二天早上十点,终于补发好了证书,我重新打包IPA,重新上传下载服务器,重新发通知,教用户重新下载,整整折腾了两天,才把问题解决,那时候我就下定决心,再也不贪便宜用烂签了,稳定比什么都重要。
从那之后我就调整了我的整套方案,一直用到现在,真的太省心了:能优化内容过审的,全部做AppStore上架,这个永远是第一选择,不用操心任何授权问题,用户下载也方便,只要产品做好,稳定增长没问题。 过不了审的,全部走TF内测,我现在自己学会了上传IPA到TF,其实操作很简单,Xcode打包完直接上传,设置一下公开测试链接就行,要是懒得弄,找服务商代传也就几百块,一次弄好能用三个月,到期更新一下版本就行,从来不会掉签,我的七千多用户大部分都在TF,大半年都没出过问题,根本不用天天盯着证书。 TF的一万个名额满了之后,剩下的用户我才找合作了两年多的靠谱服务商做独立企业签,一个月一千多块钱,掉签了一小时之内就能补发,三四个月才掉一次,对用户影响很小。 我做的三个H5封装的应用,封装完全部签名后放到TF,用户安装完体验和原生应用没差,比放在浏览器里用稳定太多,也不会被苹果拦截。
最后再给大家提几个醒,首先还是那句话,苹果开发者账号注册后设置登录通知,这步真的不能省,我现在两个账号,只要有异地登录,五分钟就能收到提醒,直接改密码锁账号,再也没出过账号被盗的问题。 然后P12证书不要随便留给服务商,用完一定要让对方删掉,不然对方拿去给别人签违规应用,连累你的证书被封,哭都没地方哭。 还有就是千万不要贪便宜用低价共享签,掉一次签损失的用户和口碑,远远比你省的那点钱多得多,稳定才是独立开发者的生命线,你产品做得再好,天天掉签用户也会走。 我做了这么多年独立开发,最大的感悟就是,iOS授权这块真的是一分钱一分货,找对稳定省心的方案,你就能把更多精力放在做产品上,而不是天天救火补签,希望我的这些经验能帮新手少踩点坑,少走点弯路。