我是做社区团长对账工具的小创业者,两年前凑了点钱启动项目,一开始不敢直接砸钱做AppStore上架,只想先拉几十个种子用户测bug改产品,这一路踩了不知道多少签名的坑,到现在对P12签名证书与pem证书这些东西,闭着眼都能理顺流程,说出来都是实打实的经验。
最开始咬咬牙先买了个人苹果开发者账号,一年688块钱,那时候觉得小贵,现在看这笔钱花得太值了。 一开始我做工具是用H5写的,跨端改起来方便,改完用在线工具做H5封装,出来就是未签名的IPA包,那时候啥都不懂,直接提交AppStore上架,结果因为没ICP资质,不到两天就被打回来了。 没办法,只能先做内测,绕不开IPA签名这一步,就开始到处找方案。
最早听人说超级签名方便,不用用户折腾,我就找了个服务商尝试。 最开始确实省心,我只要上传IPA包,服务商帮我弄好,发个链接给用户,点了就能安装,用户只要去设备管理点一下信任就能用。 那时候我才二十多个种子用户,按设备收费,一个月才几十块钱,觉得太香了。
结果才用了半个月,某天早上一睁眼,三个团长同时给我发微信说应用打不开,提示“未受信任的开发者”。 我慌得赶紧找服务商,才知道对方用的是共享P12证书,一不留神被苹果检测到封了,全平台所有签过的包都掉签了,只能重新签,折腾了大半天才能用,那一天我啥产品没改,光给用户发新链接了,烦得不行。
也就是那时候我开始自己研究证书,才闹明白P12签名证书和pem证书的区别。 最开始我分不清楚,把做推送用的pem证书当成签名用的P12,上传到签名平台一直报错,折腾了一整夜才搞懂:P12是打包了证书和私钥的格式,做IPA签名必须用它,pem大多是明文格式,一般用来做推送验证、服务器交互,两个根本不是一个用途,放错了当然用不了。
后来我又听人说TF签名稳定,是苹果官方的内测渠道,不会掉签,我就赶紧转了TF。 TF签名的使用感受确实不一样,官方渠道就是稳,只要审核过了,用户装完从来不会出打不开的问题,而且不限制设备数量,比个人账号100台限额宽松多了。
用了两个月也发现了不方便的地方,TF有效期只有90天,到期就得重新提交审核,而且每次更版本,哪怕只是改了个小bug,也要等苹果审核,急着给用户测新功能的时候,审核卡个三五天,真的能把人急疯。 有一次我改了个对账公式的bug,团长第二天就要用,结果TF审核卡了三天,差点把那个核心种子用户逼走。 还有不少年纪大的团长不会装TestFlight,我得做四五步的截图教程,还是有人学不会,沟通成本太高。
那时候我才反应过来,我自己有苹果开发者账号,为什么不自己弄证书做IPA签名? 刚好我种子用户才八十多个,不到个人账号100台设备的限额,刚好够用,说干就干,自己研究P12证书管理。
自己生成证书也踩过坑,第一次导出P12的时候,没勾选包含私钥,导出来的文件放到签名平台一直提示证书无效,我对着电脑折腾了三个小时,才想起看教程,原来要在钥匙串里导出的时候,必须把私钥一起打包,不然出来的P12根本用不了。 那阵子我换了新电脑,导入旧P12的时候忘了密码,试了五六个常用密码都不对,差点把我急出病,最后翻了半年前的笔记才找到密码,那之后我养成了习惯,证书和密码都存在加密云盘和本地U盘两份,再也不敢丢。
说到设备管理,自己做签名最开始也麻烦,用户要提供UDID,我一个个复制粘贴加到苹果开发者后台,二十个的时候还好,八十多个的时候,每次加设备都要等苹果后台加载,网络不好的时候加十个设备要半小时。 后来找了个批量导入UDID的小工具,还能自动更新描述文件,一下子就省心了,现在新增用户只要把UDID导出给我,我一分钟就能批量导进去,不用再一个个折腾。
现在用自己的P12证书做签名快一年了,真的比之前用共享超级签名、TF签名省心太多,也稳定太多,总结了好多防掉签的技巧,都是踩坑踩出来的。
第一个技巧,一定要用自己苹果开发者账号出的P12证书,绝对不要用共享证书。 共享证书拼的就是运气,几十个应用共用一个证书,哪天苹果检测到异常,全掉签,你找谁都没用,自己的证书自己管,只要正规做内测,苹果根本不会封你,我这快一年了,除了我自己误删证书那次,就没掉过签,稳定得离谱。
第二个,一个P12对应一个App ID,不要一个证书签好几个不同的包。 我最开始不懂,把两个测试包都用同一个P12签,结果没半个月就收到苹果的警告邮件,吓得我赶紧拆分,一个证书对应一个App,之后就再也没出过警告。
第三个,控制设备量,不要大流量分发。 我们做内测就是给种子用户用,几十上百台设备,根本不会触发苹果的检测,要是你偷偷拿内测证书给几千人用,那肯定容易掉,安分做内测,根本不会有问题。
第四个,定期检查证书和描述文件的有效期,提前更新。 我每个月月底都会花十分钟登开发者后台看一眼,证书还有多久到期,描述文件有没有过期,提前更新好,不会等到用户用不了了才慌慌张张处理。
还有,P12的私钥绝对不能随便泄露,给第三方签名平台用的时候,也要找靠谱的,不然证书被拿去签别的包,连累你自己的应用掉签,就得不偿失了。 我现在用的签名工具是本地签名,所有证书都在自己电脑上,不用上传给第三方,更放心。
现在我整个内测流程已经顺得不能再顺了:改完H5内容→重新H5封装出未签名IPA→整理好新增用户的UDID,批量导入苹果开发者后台→重新生成描述文件→用自己的P12证书做IPA签名→生成下载链接发到用户群→用户下载安装,去设备管理信任证书就能用。 整个流程最快四十分钟就能走完,最慢也就半天,改完bug马上就能推给用户,比等TF审核不知道快多少。
现在遇到的小问题也都有了解决方案,之前有用户说装完之后在设备管理找不到信任选项,后来才发现新iOS系统把路径改到了“VPN与设备管理”里面,我直接把步骤截好图放到群公告里,新用户进来一看就会,很少再问了。
这段时间我一边给种子用户内测改产品,一边在办ICP资质,等资质下来就重新提交AppStore上架。 回头看这两年的内测经历,最大的感受就是,对于我们小创业者来说,稳定省心比什么都重要。 最开始图便宜省事用共享超级签名,天天提心吊胆等掉签,一半的精力都用来处理签名问题了,现在自己管着P12签名证书和pem证书,所有东西都抓在自己手里,大半年都不用怎么管签名的事,能把全部精力放在改产品、找用户上,这才是最划算的。
之前也有人劝我直接买企业签名,说企业签名不限制设备,但是企业签名现在共享的掉签更厉害,独享的贵得要死,我们小团队内测根本没必要,一百台限额够用来测种子用户,等以后产品成熟了,直接上AppStore,根本不用花那个冤枉钱。 这么久走下来,只要摸清楚证书管理的规律,用自己的苹果开发者账号做IPA签名,真的是成本最低、最稳定省心的内测方案,没有之一。 哪怕偶尔出点小问题,自己手里有证书有账号,十分钟就能解决,不用看服务商的脸色,也不用等别人处理,这种可控感对小团队来说,太重要了。