我是做本地社区工具的小创业者,从产品立项到现在,大半时间都在做内测,踩过的签名坑能凑满一个文档,也算摸出了一套稳定省心的法子。
一开始产品刚出来,我们没钱做全原生开发,核心功能都是H5写的,找开发朋友帮忙做了H5封装,出来一个未签名的IPA包,接下来就犯了难:要给几十位种子用户测试,总不能每个人都用电脑装吧。那时候想要么直接冲AppStore上架,可功能还没完善,bug一堆,审核大概率过不了不说,就算过了,改个版本还要重新审,根本赶不上我们一周两更的迭代速度。
所以老老实实走内测流程,我最早总结的内测流程很乱,现在走顺了其实很清晰:先打包出未签名IPA,确认测试人员名单收集UDID,根据人数选签名方式,配置证书和描述文件,做IPA签名之后生成下载链接,用户下载完去设备管理信任证书就能用。
最早我用自己买的个人苹果开发者账号,99美元一年那种,一开始只有十来个测试,刚好够,那时候对设备管理完全没概念,谁要装就直接加UDID,也不记台账,后来有人离职换设备,旧设备占着名额,不到三个月一百个名额就用完了,才发现设备管理有多重要。现在我自己做设备管理,会建一个在线共享表格,每个测试人的姓名、部门、设备UDID、安装的版本号、最近一次使用时间都记的清清楚楚,要是有人离职或者不需要测试了,直接把他的UDID从描述文件里删掉,他立马就用不了,对于内测应用的保密性也很好,之前有个合作的渠道人员终止合作,我五分钟就撤了他的安装权限,比之前用其他签名方式方便太多。
后来测试人数涨到五十多,个人名额不够了,开始试市面上的超级签名。说一下超级签名的使用感受,安装确实方便,用户扫码就能装,不用手动跳去设备管理信任,体验很好,但缺点真的受不了。超级签名按设备收费,一个设备几块钱,我们五十多个人,加上时不时换设备加新人,一个月签名费就要小一千,创业初期每一分钱都要掰两半花,真的肉疼。而且我那时候贪便宜找了个小服务商,用的是共享证书,半个月掉了三次签,每次掉签所有用户都要重新下载,重新绑定设备,又要重新花钱买点数,测试团队怨声载道,我也天天盯着服务商补签,根本没法安心做产品。超级签名你还根本没法单独撤某一个人的权限,要么全掉,要么只能看着,对于需要管控内测权限的团队来说,这点真的太不方便。
撑了三个月,又转去试TF签名,TF签名是苹果官方的,确实稳定,基本不会掉签,这点没得说。但用了一段时间也发现不合适,TF签名要过苹果审核,哪怕比AppStore上架松很多,我们每次改个小功能,重新打包发TF也要等一两天,我们一周更两次,根本等不及。而且TF一个账号最多一千个内测名额,就算我们用不完,还有90天有效期的限制,到期了所有用户都要重新下载,测试用户嫌麻烦,好几次到期都没人更,耽误我们收集反馈。后来我们要做分版本灰度测试,七八十个人分四组测不同的功能,TF根本没法灵活配置,只能又换路子。
后来做开发的老同学给我指路,让我试试自己弄P12企业签名,刚好P12企业签名支持IPA重签名,不管你是刚封装的IPA还是旧包,都能重新签,灵活得很。我一开始是租服务商的独享P12证书,后来做大了自己申请了企业苹果开发者账号,自己管P12证书,用了快一年,真的觉得太稳定省心了。
我们一开始H5封装出来的IPA,因为要改调试参数,经常要重新打包,每次重新打包都要重新签名,P12企业签名支持IPA重签名,不管你打多少次包,我自己十分钟就能签好,上传完就可以发链接,比找第三方服务商真的快太多,之前找第三方签一次要等一两个小时,遇到服务商下班就要等第二天,好几次都耽误了测试排期,现在自己弄,凌晨两点改完包都能当场签好,完全不耽误事。
说一下P12证书管理,我也踩过坑,一开始不懂,把导出的P12证书随便存在电脑桌面,也不设密码,后来电脑进了木马,证书差点被盗,吓得我赶紧重新生成了证书,现在总结了一套自己的管理方法:P12证书导出的时候一定要设强密码,私钥绝对不能泄露,存在加密云盘里,只在一台内网电脑上导入使用,绝不随便外传,也不频繁换设备导入导出。同一个开发者账号下不要申请太多张证书,苹果对证书数量有上限,超过就没法申请新的,我现在一个账号就两张证书,一张开发一张生产,够用就行,绝不乱加。之前有一次,我导出P12的时候忙着赶版本,忘了设密码,发给运维的时候不小心传到了公司公共代码库,虽然十分钟就撤回了,但我还是怕被爬虫抓去,当天就重新生成了证书,把所有包都重签了一遍,花了一下午,从那之后我不管做什么,导出证书第一步就是设密码,再也没出过这种岔子。
然后就是大家最关心的证书防掉签技巧,这些都是我花钱踩坑踩出来的,真的有用。第一点,绝对不要用共享证书,一定要用独享的P12,共享证书别人签什么你根本管不了,只要有一个违规应用,苹果查到整个证书就封了,所有人都掉签,我之前共享签半个月掉三次就是这个原因,现在独享证书只有我自己的内测应用,根本不会碰违规内容,稳定性提升不是一点半点。第二点,控制单张证书的签名数量,别贪多,一张证书签十个以内应用就够了,签几十上百个很容易触发苹果的检测机制,我现在一张P12就签我自己两个内测版本,一个开发一个正式测,从来没被苹果盯上。第三点,定期检查证书和描述文件,描述文件过期也会掉签,我现在日历设了每月1号的提醒,提前检查更新,绝不会等到过期掉签了才慌。之前就有一次我忘了更描述文件,周一早上整个测试团队都打不开应用,耽误了一早上的进度,从那之后提醒就没断过,再也没出过这种事。第四点,定期清理无用设备,没用的UDID及时从描述文件里移除,太多设备绑定同一个证书也容易引起苹果注意,我每个季度清理一次,把半年没登录过的测试设备都删掉,既清爽又安全。第五点,签名之后不要随便分发到公共平台,我们都是发内部的下载链接,只有测试人员能拿到,不会被苹果爬虫抓到,也能减少掉签概率。
现在我们已经在准备AppStore上架了,所有提审前的测试全都是用自己的P12做IPA签名内测,所有功能、兼容性都测稳了才提审,上次提审一次就过了,省了好多来回折腾的时间。对比之前用超级签名、TF签名的日子,现在真的太省心了,一年下来签名成本比超级签名便宜一半还多,也不用天天盯着有没有掉签,掉了找服务商补签,能把更多精力放在产品优化和找用户上。
其实做小创业就是这样,很多小事选不对就能把你耗得筋疲力尽,我之前做梦都能梦到证书掉签,所有用户都来找我,现在用对了方式,P12企业签名做IPA重签名,稳定可控,自己掌握主动权,真的少了好多烦心事。如果你也在做内测,正在被掉签、成本高、不灵活折腾,真的可以试试独享P12企业IPA重签名,亲测稳定省心,适合大部分中小团队的内测需求。