我自己业余时间写了个给身边朋友用的日常记录小工具,因为没资质也不符合公开上架的一些要求,一开始想放在AppStore结果初审就被打回来了,后来听做开发的朋友说可以做苹果签名先内测使用,这大半年来我试过几乎所有能找到的签名方式,踩了不少坑,也攒了不少实打实的使用感受,今天就说说我作为普通测试使用者的真实体验。
最开始我接触的是超级签名,那时候连怎么安装签名APP都不会,拿到签名商给的链接,点开之后提示安装描述文件,按照提示点了同意之后还要输入手机的锁屏密码,那时候我还怕是不是病毒,犹豫了半分钟才敢输,等下载完成点图标,直接弹出了不受信任开发者的提示,半天打不开,我急得赶紧找签名商问情况,对方才慢悠悠告诉我要去设置里信任证书。 那时候我用的还是iOS15,按照教程找设置-通用-VPN与设备管理,很快就找到对应的开发者证书,点一下信任确认就能打开了,后来我换了新手机升了iOS16,再装新的签名包,按照老路径找了半天都找不到设备管理的入口,折腾了快半小时才发现,新系统把这个入口挪到了隐私与安全性里面,找对位置之后操作其实也差不多,都是找到对应证书点确认就行。 这段经历也给我提了醒,不同系统版本的流程位置不一样,出问题先别慌着说签名坏了,先找找是不是位置变了。
后来用的多了我才接触到P12证书,一开始我根本不知道P12是什么,有次帮朋友转签名,对方让我提供自己的P12,我还以为是随便什么项目文件,乱发了一个过去被骂了一顿,后来才搞明白,P12就是开发者导出的包含私钥的证书文件,如果你自己有开发者账号,就能导出属于自己的P12,签名的时候只用给服务商提供证书权限,不需要把完整的源码或者安装包核心信息交出去,这对我们这种自己写小工具的人来说太重要了,毕竟几个月熬夜晚睡写出来的东西,最怕就是源码泄露被别人拿去用。 我之前就踩过这个坑,最开始找的一个小签名商,说帮我做超级签名,要求我把完整的源码包发给他打包,我那时候不懂就发了,结果过了半个多月,我朋友刷到一个一模一样的工具,只是换了个图标和名字,居然还拿来卖钱,那时候我才反应过来源码被泄露了,从那之后我不管用什么签名,都坚持自己导出P12自己保管,只需要签名商帮忙做签名操作,核心的东西我自己攥着,最大程度保护源码,这也是我用超级签名这么久总结出来最重要的经验,刚好对应我最关注的超级签名与源码保护这件事。
说到掉签,我这大半年遇到掉签的次数真不少,各种签名渠道掉签的情况不一样,解决办法也不一样,我也摸出了规律。 最开始用的那种第三方提供账号的超级签名,掉签一般都是因为签名商用的个人开发者账号被苹果封禁了,毕竟超级签名是用个人开发者的测试设备名额来做的,一个账号最多只能绑一百台设备,要是签名商违规操作或者做了违规的APP,账号就会被封,一掉就是所有用这个账号签的APP全打不开。 我第一次遇到超级签名掉签的时候,几十个人的APP全都用不了,好多朋友存了好几个月的记录都打不开,我急得到处找人,后来解决办法就是签名商重新用新的账号签了一个包,给了新的链接让所有人重新下载,那时候我不懂,以为要删掉旧的才能装新的,就让大家都删了重下,结果好多人数据都没了,后来才知道,只要包ID不变,直接覆盖安装就能保留原有数据,这个小技巧我现在逢人就说,真的能少丢很多东西。 如果是自己用自己的P12做的超级签名,掉签解决起来就更简单了,大多是因为证书过期或者设备绑错了,自己后台重新签一下发个链接就行,不用等别人,十几分钟就能搞定。
后来用的人慢慢多了,超级签名一百个设备名额不够用了,我就换了企业签名,企业签名我一开始听说是无限设备,就觉得很适合我,刚装的时候流程和超级签名差不多,下载完描述文件安装好,还是要去设置里信任企业级开发者证书,流程和我之前说的差不多,就是证书主体是企业而已。 我最开始贪便宜,弄了个很便宜的共享企业签名,就是很多个APP共用一个企业证书,那时候想着能省一点是一点,结果没想到刚用上不到一个星期就掉签了,问签名商才说,同证书里有一个APP做了违规内容,苹果把整个证书封了,所有APP全掉签,这就是共享签名的通病,你根本不知道同证书里有什么乱七八糟的APP,动不动就被牵连掉签。 后来我咬咬牙加钱弄了个独立企业签名,整个证书只有我一个APP用,P12还是我自己保管,这下稳多了,用了快八个月都没掉过,只有一次苹果更新企业证书规则,我自己重新导了一次P12签一下就好了,一点不麻烦。 所以企业签名要是想用得稳,真的不能贪便宜用共享的,多花点钱弄独立的,自己拿着P12,稳定还安全。
再后来我听人说TF签名最稳,就也试着弄了一个,TF就是苹果官方的TestFlight测试渠道,说实话,用了之后我才知道什么叫官方的稳定性,流程其实也不复杂,就是把打包好的IPA上传到苹果的测试后台,过了苹果的审核之后,就能生成分享链接,用户点链接就能直接跳转到TestFlight下载安装,根本不需要额外去信任证书,也不会弹出乱七八糟的提示,从我弄好到现在快一年了,从来没有掉过签,真的稳得离谱。 唯一的小问题就是,用户安装必须先下载TestFlight这个官方APP,很多不习惯的朋友会觉得麻烦,说多装一个占手机空间,而且TF的审核虽然比AppStore松很多,但还是要有审核,我第一次上传因为加了本地导出文件的功能,被说不符合测试规范,改了两次才通过,还有就是TF的测试有效期是九十天,到期之后只要重新上传打包发一次就行,也不麻烦,我个人觉得,如果能过TF的审核,TF真的是目前非上架最稳定的选择了。
我也试过H5封装,就是把我做好的网页版工具套个原生壳做成APP,当时想着不用维护原生包,省事,结果用下来体验真的差强人意,首先调用原生功能特别卡,比如调用相机拍记录,动不动就闪退,相册导出也慢,而且H5封装本质还是要做苹果签名才能安装,该掉签还是会掉签,我找的那个第三方封装平台,还偷偷在我的包里面加了开屏广告,我用了快两个星期才发现,还是朋友告诉我的,去掉广告还要额外加钱,从那之后我就再也不用H5封装了,要是实在想做网页,直接发个网页链接不比封装成APP强,体验还差还容易出问题。
去年年底我办了个体工商户的资质,交了苹果的开发者年费,试着把我的小工具改了改上架AppStore,改了三回才过审核,上架之后才知道,这才是最好的体验,用户直接在AppStore搜索就能下载,不需要弄任何签名,不需要点信任,永远不会掉签,更新也直接在AppStore更,太省心了,唯一的问题就是门槛确实高,要有资质,还要符合苹果的各种规则,很多做内测或者不能公开的APP确实上不了,所以大部分人还是要选各种签名方式。
我用了这么久,总结出来最稳定流畅的方法其实也很简单,首先能上架AppStore就尽量上架,官方渠道体验最好也最稳,不行就优先选TF签名,苹果官方的测试渠道,几乎不会掉签,安全系数也高,要是TF过不了审核,小范围几十个人用,就自己买个人开发者账号,自己导出P12做超级签名,自己管账号自己管证书,只要不做违规内容,苹果不会随便封,还能保护自己的源码不泄露,稳得很,如果人多超过一百个,就加钱做独立企业签名,自己拿P12,不要用共享签名,别贪小便宜吃大亏,那种几块钱用一年的签名,基本都是坑,用不了几天就掉,找人都找不到,还容易泄露源码。
我之前还遇到过不少小问题,比如iOS更新大版本之后,证书会自动失效,所有签名的APP都打不开,那时候只需要重新去设置里面点一次信任就好了,不用重新安装,还有P12证书一定要多备份,我之前电脑坏了,P12只存在电脑本地没备份,结果重新申请证书弄了一整天,所有用户都要重新安装,折腾得半死,所以P12一定要存在云盘、U盘多备份几份,还有超级签名不要把一百个名额全装满,留两三个空位,不然加新设备的时候会把最早加的设备踢掉,被踢的设备就会掉签,这些都是我踩过的坑,说出来能让大家少走点弯路。 其实折腾这么久我才发现,苹果签名没有绝对完美的渠道,只有适合自己的,根据自己的使用人数和功能需求选对渠道,保管好自己的P12保护源码,不贪便宜找靠谱的渠道,就能用得稳定又省心,不用天天为掉签发愁。