我是一个做社区生活服务工具的创业者,从三四个人的小团队熬到现在,一半的时间都在跟iOS内测打交道。
一开始我们只会做H5,用户反馈每次打开都要加载,微信还经常封域名,折腾了大半年,下定决心做原生APP,先做内测攒种子用户,改完bug再上架。 那时候我连IPA签名是什么都不知道,完全摸瞎。
最开始想直接冲AppStore上架,结果连审三次都被打回来,说我们的分销功能涉及多级分销,资质不全,不让过。 没办法,只能老老实实先做内测,让种子用户先用来提反馈,这才一步步摸清楚了iOS内测的整个流程。
现在我熟得不能再熟,整个内测流程走下来,半小时就能搞定:先是把我们调好的H5页面做H5封装,生成未签名的IPA包,然后根据当前的内测用户量选对应的签名方式,签完生成下载链接,发出去给用户安装,全程不用跑线下,也不用用户越狱,非常方便。
最早我内测用户只有不到50人,选了超级签名,那时候对设备管理没概念,只觉得超级签名不用用户提供UDID,点链接就能装,太方便了。
用了半个月才发现问题,超级签名是按设备数收费,你装过一次就算一个名额,就算你把APP删掉了,名额还是占着,有的服务商不给你删闲置设备,一百个名额没用多久就满了,还要额外加钱。 而且之前碰到过黑心商家,后台偷偷加设备,明明我只有四十多个用户,硬是显示我用了九十个名额,吃了不少暗亏。
后来用户涨到两百多,换了TF签名,才知道什么叫省心。 TF签名用的是苹果官方的TestFlight,我自己买了苹果开发者账号,一年99美元,就能用,设备管理直接在苹果后台看,哪个设备装了,什么时候激活的,一清二楚,不用我自己对着UDID一个个加,一万个名额以内随便用,对我那时候的内测规模来说完全够。
唯一的小麻烦就是小白用户不会装,要额外下一个TestFlightAPP,我那时候团队只有我一个人兼客服,天天对着用户发的截图一步步教,有时候遇到连AppStore都不会进的用户,要教十几分钟,确实挺磨人的。 而且上传TF也要过苹果的初审,我第一次上传因为忘了放隐私协议,直接被打回来,改了三天才重新过审,耽误了一周的内测进度。
说起来我两种都用了快两年,各有优劣吧。 超级签名胜在方便,用户点链接直接装,不用多下一个APP,适合小范围几十人的灰度测试,比如我上个新功能,找几十个核心团长测,用超级签名就刚好,成本低,上线快。 但超级签名的稳定性真的不敢恭维,之前我用共享证书的超级签名,半个月掉了三次,每次掉签所有用户都打不开,全来找我投诉,那时候差点把我好不容易攒的种子用户都跑没了。
TF签名就完全不一样,是苹果官方的,只要你不违规,基本不会掉签,我那个TF内测包用了快一年,只掉过一次,还是因为我改了Bundle ID没重新上传,跟签名本身没关系。 稳定性没的说,唯一的缺点就是有一万个设备的上限,而且要过审,用户还要多装一个APP,对大流量外测来说不太方便。
说到证书,我真的踩过天大的坑。 之前我不懂什么是P12证书,找服务商签名,都是直接把IPA包扔给他们,用他们的证书,结果后来才知道,有的服务商把你的IPA和一堆违规的赌博、色情APP签在同一个证书里,苹果一封证书,你也跟着掉签。 我之前就碰到过一次,整个证书被封,两千多用户的APP全打不开,我整整一天都在跟用户道歉,那滋味真的不好受。
后来我自己申请了苹果开发者账号,自己做P12证书,才明白P12证书就是签名的根,相当于你自己的私章,一定要自己管好。 那时候我不懂,把P12证书随便存在电脑桌面,还发给帮我调试的技术合伙人一份,结果他不小心把证书存在了公共云盘里,被别人爬走拿去签违规APP,没过半个月苹果就给我发了警告,说我的账号涉及违规签名,再犯就要封账号,吓得我赶紧重新申请了证书,把原来的证书 revoke 了,才保住账号。
还有一次我H5封装出来的IPA,签名之后一直提示无法安装,折腾了我两天,后来才知道是封装的时候Bundle ID填错了,跟P12证书绑定的ID不对,所以签名之后装不上,后来改了ID重新签,立马就好了,这种小问题一开始经常碰到,现在熟了,封装完第一时间就核对Bundle ID,很少再出问题。
现在我管P12证书非常小心,从来不会存在公共云盘,也不会随便发给别人,只用加密U盘和私人加密云盘存,每次找服务商代签,用完我立马就让对方删掉我的证书,绝不留在对方服务器里。 毕竟苹果开发者账号申请下来不容易,真被封了,重新弄不仅耽误时间,之前的所有内测记录都没了,损失太大。
踩了这么多坑,我也总结了好几个防掉签的技巧,最大的感受就是,稳定省心真的比省那几十几百块钱重要太多了。
第一个,就是不同阶段选不同的签名方式,不要贪便宜用共享证书。 刚起步几十人内测用超级签名,一百到一万人用TF签名,一万人以上用独立企业签名,共享证书哪怕一个月只要几十块,也不要碰,共享证书一堆人共用,只要有一个人签违规APP,所有人跟着掉,掉一次你损失的用户都不止这点钱。
第二个,证书一定要自己掌控,尽量用自己申请的证书,不要全甩给服务商。 自己的证书只签自己的APP,不共用,就不会被别人连累,掉签概率能下降百分之九十以上。 我现在用独立企业证书,自己的公司主体申请的,只签我自己的两个APP,用了快一年了,只掉过一次,还是因为苹果更新了政策,我重新签一下就好了,十分钟就搞定,根本不影响用户使用。
第三个,一定要注意企业签名数据安全,不要随便找不知名的小服务商签名。 我之前贪便宜找过一个个人做签名,价格比大平台便宜一半,结果用了不到一周,就有用户跟我说,打开APP会弹色情广告,我后来查了一下,才知道对方把我的IPA包篡改了,加了广告代码,不仅赚我的签名钱,还赚广告钱,甚至还偷用户数据,从那之后我就再也不敢找小个人了,宁愿多花一倍的钱,找正规平台,至少不会篡改你的IPA,数据安全有保障。
第四个,做好备份和分流,不要把所有用户都放在一个签名包上。 我现在核心用户走TF,新用户测试走独立企业签名,小范围灰度走超级签名,就算哪一个掉了,另外两个都不受影响,最多只影响一部分用户,不会全崩,而且我设置了证书监控,每天自动检查证书状态,一旦有异常立马给我发提醒,我提前就能处理,不用等用户来找我。
还有一个小技巧,很多人不知道,就是不要频繁更新签名包,如果你天天更包,苹果容易检测到异常,反而容易掉签,我现在一般一周更一次就够了,内测改bug不用急着更,攒几个一起更,反而更稳定。 另外超级签名要想稳定,最好就是一个账号只给自己用,不要跟别人拼名额,很多服务商把一个个人开发者账号的100个名额拆成三五份卖,苹果一检测到设备数异常,直接封账号,证书也就废了,虽然自己用成本高一点,但是稳定多了。
其实做签名内测,最终还是为了上AppStore,我做了八个月内测,攒了五千多真实用户的反馈,改了五十多个版本,把所有合规问题都调好了,再提交AppStore上架,一次就过了,比一开始瞎撞省心太多了。
现在就算上架完成了,我还是保留了签名内测的通道,每次要上新功能,都会先做一个签名版,找几百个核心用户内测一周,没问题再打包提交AppStore更新,不用等苹果审核,改bug也快,对我们小团队来说效率提升了太多。
现在算下来,我做内测这么久,从一开始踩坑踩得满脚血,到现在稳定运行,每个月花在签名上的钱也就几百块,从来不会因为掉签或者数据安全的问题耽误事,对我们小创业者来说,能省下心来做产品,比什么都重要。
我见过很多创业项目,就是因为内测的时候老是掉签,用户体验差,种子用户跑光,项目就黄了,其实只要选对方法,管好证书,注意数据安全,iOS内测真的没有那么难,稳定省心也不是什么难事。 只要把这些基础的工作做好,就不会因为掉签这类无关产品的问题,耽误了项目的进度,也不会让信任你的种子用户失望。