我自己做了个记录骑行轨迹的小工具,平时自己用,也分享给身边喜欢骑行的朋友,一开始没想着搞别的安装方式,一心想上AppStore,折腾了小半个月才知道,我这种个人做的小工具,想正规上架真的太难了,前前后后被打回来四次,一会说我自定义导入路线的功能未做声明,一会说我隐私政策写得不规范,最后一次说我页面里加了个人联系方式属于导流,直接给我拒了,我不想改核心功能,改了就不好用了,只能转头找别的安装方式,这才一步步摸清楚了苹果各种签名的门道,踩了不少坑,也攒了不少实在的经验。

最早接触的是企业签名,那时候啥也不懂,听人说企业签名便宜,安装方便,就找了个商家买了共享企业签,付了钱对方给我发了ipa安装包,我点开链接下载,下载完点图标,直接弹出无法验证应用的提示,愣了半天不知道怎么回事,翻聊天记录才看到商家最后发了一句安装完要去信任证书,那时候我用的是刚更的iOS16,跟着网上旧教程找描述文件,翻遍了设置都没找到,折腾了快十分钟才反应过来,新系统早就把描述文件归到VPN与设备管理里面了。正确的流程其实说简单也简单,下载完ipa之后,打开手机设置,拉到通用选项,往下滑找到VPN与设备管理,点进去就能看到对应企业开发者的描述文件,点进去之后点信任按钮,再弹一次确认框,点完确认才能回去打开APP,那时候给身边朋友装,好多人都卡在这里,不会找入口,我还要一步步远程教,折腾半天才能装好,真的挺麻烦的。

用了共享企业签不到半个月,第一次遇到掉签,那天我出门骑车,掏出来手机想记录轨迹,点图标直接弹无法验证,瞬间整个人都懵了,回去找商家,商家说共享签就是容易掉,掉了补签就行,让我重新下安装包,那时候我不懂备份,存了一个多月的骑行数据全都没了,心疼了好久,从那时候我才知道,掉签其实就是苹果检测到了证书,把证书封了,不管什么签名都可能掉,不同签名掉签的解决办法也不一样,共享企业签掉签,只能重新补签重新安装,数据没备份就全丢,后来我换了独立企业签,才知道用自己的P12证书签会稳很多。

申请P12证书其实也不难,我弄了企业开发者账号之后,就在苹果开发者中心生成了推送证书和描述文件,导出P12的时候踩了个坑,第一次导出我没设密码,结果导入签名工具的时候一直提示验证失败,折腾了半宿才知道,导出P12必须设置密码,不然签名工具读不出来证书信息。后来朋友怕我忘事,给我推了P12签名证书自动更新脚本,说苹果的P12证书是有有效期的,快到期了不更新,签好的APP也会掉签,我之前就吃过忘更新证书的亏,那一次出去旅游,想用APP记录骑行路线,结果证书过期打不开,白跑了几十公里,用了这个脚本之后,它会自动监控证书的有效期,快到期了自动生成新的证书,重新给安装包签名,不用我自己盯着,省了太多心,我现在把脚本挂在服务器上,根本不用管,从来没再出过证书过期掉签的问题。

用过这么多签名渠道,每个都有不一样的感受,先说企业签名,共享企业签确实便宜,一年才几百块,但是掉签真的掉得你怀疑人生,我那时候最多一个星期掉三次,天天处理补签,用户都嫌麻烦走了不少,独立企业签用自己的P12证书,只要不签违规应用,基本不会被封,稳定很多,就是企业开发者账号本身不便宜,对于个人小项目来说成本有点高。然后是超级签名,我用了大概三个多月,超级签名是用个人开发者账号的P12证书签名,每个账号最多绑定一百台设备,我那时候才二三十个朋友用,刚好够,超级签名最方便的就是不用手动信任证书,因为是苹果官方开发者账号签发的,安装完直接就能打开,不用去设置里面折腾,对小白用户太友好了,那时候我觉得超级签名真的太香了,直到后来我找第三方签名商弄的超级签名,对方用的是盗用的黑号,突然账号被封,我的所有设备全都掉签,又折腾了好久才重新弄好,后来我就自己买了个人开发者账号,用自己的P12签,稳了很多,就是人数限制一百台,朋友多了之后就不够用了,成本也涨了,每个新设备都要算钱,用起来有点肉疼。

再就是TF签名,也就是TestFlight签名,是苹果官方的测试渠道,我用了快半年,TF签名真的是我用过最稳的签名,从来没掉过签,因为是苹果官方认可的,安装流程也简单,给用户发一个邀请链接,点进去跳转到TestFlight,先装TestFlight客户端,再下载我的APP就行,也不用手动信任证书,直接就能打开,缺点就是更新太麻烦,我经常改点小功能加新路线,每次更新都要重新提交审核,最快也要大半天,慢的时候要等两三天,用户等不及,而且TF有下载次数限制,一个应用最多一万次下载,我这边朋友越来越多,没多久就快够数了,还有很多用户嫌还要多装一个TestFlight麻烦,不愿意装,所以我后来就没一直用TF。

H5封装我也试过,就是把网页套个壳做成APP,优点是更新不用重新发安装包,改网页就行,但是体验真的太差了,我这个APP需要后台持续定位记录轨迹,H5封装的话,切出去后台一会就被系统杀掉了,根本记录不了,而且用起来特别卡,点半天没反应,不到一个月我就弃用了,确实只适合对功能要求很低的项目,稍微有点原生需求都满足不了。

至于AppStore上架,我前前后后试了五次,每次都因为各种各样的原因被拒,对于我们这种个人做的小工具,规则真的太严了,一点点不符合要求就打回来,折腾来折腾去浪费了好多时间,最后还是放弃了,要是能上架肯定是最稳的,用户信任,下载也方便,就是门槛实在太高了,普通个人开发者真的很难挤进去。

用了这么多年,我也总结出了稳定流畅的方法,其实核心就是自己握证书,不要用共享签名,共享签名一大堆APP共用一个证书,只要有一个APP违规,整个证书都被封,所有人跟着掉签,自己申请开发者账号,弄自己的P12证书,只放自己的APP,根本不会被别人连累,稳定太多了,其次就是一定要用工具自动管理证书,像P12签名证书自动更新脚本这种,不用自己盯着有效期,不会出现忘了更新证书掉签的问题,我现在用自己的独立企业签,挂着自动更新脚本,已经快一年没掉过签了,再也不用天天处理用户的掉签提问,能专心改功能加新东西,舒服太多了。

当然中间也出过不少小问题,比如之前换电脑,我忘了备份P12证书,结果证书找不到了,只能在开发者中心撤销原来的证书重新生成,原来签好的所有APP全都掉签,又重新给所有朋友发了安装包,折腾了整整一天,从那之后我就把P12证书备份了三份,电脑本地一份,云盘一份,U盘一份,就怕再丢,还有一次脚本我没配置对,自动更新了证书但是没推更新,结果好几个用户打开APP发现用不了,我连夜改了脚本配置,加上了自动更新提醒,用户打开APP就能收到更新提示,直接更不用重新下载,就再也没出过这个问题。

总的来说,苹果签名这条路,坑确实不少,只要摸对了方法,自己握好证书,用工具管好证书,其实也能很稳定,满足个人小项目的使用需求完全没问题,我身边好多做个人APP的朋友,我都把这个方法推给他们,大家用着都觉得比找第三方共享签省心太多了,不用天天提心吊胆等掉签。