我最早做iOS端的小工具,只是为了方便身边一帮经常一起出游的朋友共享行程日程,一开始完全不懂苹果签名的这些弯弯绕绕,以为做完安装包就能直接给大家装,折腾了两天才知道,没有上架App Store的iOS应用,必须要有苹果认可的签名才能被系统信任安装,从那之后我就踏上了漫漫踩坑路,前前后后试过几乎所有能找到的签名方式,掉签掉到我头大,折腾了大半年才终于找到稳定能用的方案,今天把这些经历都写出来,给跟我一样做小范围内部应用的朋友做个参考。
其实所有苹果签名的核心原理都很简单,iOS系统本身只信任苹果官方颁发的开发者证书给应用做的签名,不管哪一种签名方式,本质都是借用合法的开发者账号权限,给未上架的应用打上系统认可的信任标记,让系统允许用户安装打开,不同的签名用的是不同类型的开发者账号,也就有了完全不一样的稳定性和成本。
最开始我什么都不懂,搜苹果签名出来最多的就是企业签名,说不用审核就能装,价格还便宜,我当时就找了个看起来性价比最高的,九十块钱包年,说是无限掉签无限补,我当时还觉得捡了便宜,开开心心给大家做了安装包发出去,没想到不到一周就出问题了,一开始是一两个用户说打不开,后来没过两天所有安装的用户都打不开了,我才知道是掉签了,找商家补签,商家半天不回消息,等了快两个小时才给我发了新的链接,让我通知所有人重新下载,那一次补签,好多用户之前存在本地的行程数据都没了,一堆人来找我抱怨,我那时候才明白,企业签名其实本质就是用苹果的企业开发者账号生成证书签名,这种账号本来是给大型企业开发内部自用应用的,允许不经过App Store直接给员工安装,但是很多做签名的商家都是把一个证书挂几百上千个app,也就是共享证书,只要其中有一个app违规被苹果检测到,整个证书都会被吊销,所有挂在这个证书上的app都会掉签,我就算自己的app完全合规,也要跟着遭殃,后来我又换过贵一点的企业签名,一百多一个月的独享证书,说是一个证书只放我的app,掉签概率低很多,确实稳定了一个多月,我那时候都以为终于搞定了,结果后来苹果清理企业证书,我的证书还是被牵连吊销了,又一次全掉,还是要重新补签发链接,那段时间我几乎每周都要处理掉签的问题,每天打开微信群第一件事就是看有没有人说应用打不开,有时候半夜还有人找我说掉签了,我要爬起来找商家补签,整个人都被折腾的神经衰弱,那阵子我前后补签重签不下十次,每次都是用户重新下载,数据丢失,抱怨不断,我都差点想要放弃这个小工具了。还记得有一次我们组织周末的自驾出游,头一天晚上大家刚把集合地点、行程安排都存到工具里,结果第二天早上出发的时候,所有人都打不开应用,好多人在高速路口找不到集合点,不停给我打电话,我那时候刚出门,找商家补签商家还没起床,半个多小时才回我,急的我满头汗,那次之后我就下定决心,哪怕多花点钱也要找一个绝对稳定的方案。
后来有人给我推荐超级签名,说超级签名是用个人开发者账号签名,比企业签名稳定,不容易掉签,我就去咨询了价格,超级签名是按下载量收费的,一个下载大概三块到五块不等,我当时有几十个常用用户,买一百个下载量花了三百多,一开始用着确实不错,半个多月都没出问题,我那时候还觉得终于找对了地方,结果好景不长,不到一个月,苹果开始严查个人开发者账号的违规签名,一下子封了好几个给我签名的账号,所有安装的用户又一次全部掉签,找商家补签,商家说账号被封没办法,只能给我换账号重新签,但是原来的下载量已经扣了,新签名还要重新扣下载量,相当于我之前花的三百多一半都打了水漂,这个时候我才搞懂超级签名的原理,超级签名其实就是利用个人开发者账号最多可以添加100个调试设备的规则,把用户的设备添加到开发者账号的调试列表里再签名,所以每安装一个新设备就要算一个下载量,用户换手机重新装也要再算一次,而且个人开发者账号本来就不允许做这种对外的签名,一旦被苹果检测到就会直接封号,封号之后所有装过的用户都会掉签,风险真的很高,对于用户数量慢慢增长的我来说,不仅成本越来越高,稳定性也根本没法保证,用了不到两个月我就放弃了。
不死心的我又听人说H5封装不用签名,直接就能打开,成本还低,我就又去试了H5封装,说白了就是把我的网页版工具打包成一个iOS app的壳,本质还是网页,我当时想着凑合用也行,结果做出来之后体验差到离谱,打开速度慢不说,我需要调用本地相册传行程封面,还有本地定时提醒功能,H5封装根本拿不到足够的系统权限,提醒经常不弹,相册也调不出来,而且封装好的链接动不动就会被微信拦截,用户要复制到Safari才能打开,步骤繁琐,体验还不好,用了不到一周,就有大半的朋友说不愿意用了,我也明白,H5封装只适合那种完全不需要原生功能的网页应用,稍微有点功能需求的根本没法用,这条路也走不通。
那时候我也想过干脆直接做官方上架,放到App Store里,反正官方上架肯定是最稳定的,所有用户都能直接下,也不会掉签,可真正操作起来才知道门槛有多高,我只是个个人开发者,做这个小工具就是给身边朋友用的,没有公司主体,个人开发者上架审核本来就严,我第一次提交就因为所谓的“功能不明确,受众不清晰”被打回来,改了三次,还是因为不符合上架要求一直过不了审核,而且就算审核过了,每年还要交六百多的苹果开发者年费,万一后续被苹果检测到下架,之前的功夫全白费,对于我这种小范围自用的小工具来说,官方上架的成本和门槛都太高了,完全没必要折腾,这条路也被我放弃了。
就在我快要彻底放弃,打算干脆让大家凑合用网页版的时候,一个做开发多年的朋友给我发了一个TF苹果签名公开链接,推荐我试试TF签名,说这个是现在最稳定的签名方式,适合我这种情况,我当时抱着死马当活马医的态度试了,才知道原来TF签名就是依托苹果官方的TestFlight平台做的,TestFlight本来就是苹果给开发者发布测试版应用用的,所有的签名都是苹果官方操作,你只要把应用提交上去,过了苹果的审核,就能生成一个公开的安装链接,任何人只要点链接就能直接安装,不需要额外调信任设置,也不会随便掉签,审核比App Store松很多,一般一天左右就能过,我提交之后不到十二个小时就审核通过了,拿到了属于我的TF苹果签名公开链接,我把链接发到群里,大家点一下跳转TestFlight就能安装,步骤比之前任何一种签名都简单,我当时还担心会不会又掉签,结果这一用就是一年多,从来没有掉过签,也从来没有让我补签重签过。
用了这么久,我也慢慢摸清楚了各种签名方式的优缺点和价格渠道,对比下来真的觉得TF签名是最适合我这种情况的,先说价格,之前我用便宜的企业签名,九十块钱包年看起来便宜,但是一年掉几十次,补签折腾,最后商家跑路,钱也白花,贵的独享企业签名一个月就要两三百,一年下来几千块,我这种小工具根本承担不起,超级签名一百个下载量就要三百多,用户换个设备就要重新扣量,用不了多久就要续费,一年下来也要大几百,还动不动掉签,H5封装几十块就能做,但是体验太差没法用,官方上架一年六百多,审核还过不了,成本太高,而我现在用的TF签名,一年也就几百块,比稳定版企业签名便宜,比超级签名划算,链接做好之后一直有效,不管多少用户装都不会额外收费,新用户要加直接发链接就行,完全不用额外操作。
再说稳定性,这一年多我用TF签名,从来没有出现掉签的情况,之前那种一觉醒来几十个人找我说打不开的情况再也没有发生过,也不需要重签补签,很多人说TF签名只有九十天有效期,其实九十天是测试版的默认有效期,到期之前重新提交一下审核就行,操作非常简单,而且用户根本感知不到,不需要重新安装,也不会丢失数据,完全不影响正常使用,比掉签之后让所有人重新下载好太多了。之前掉签的那些日子,我天天提心吊胆,生怕出问题耽误大家用,现在我完全不用管签名的事,专心更新小工具的功能就好,这种踏实感真的是之前所有签名方式都给不了的。
我前前后后在各种签名上交了快一千块的智商税,折腾了大半年才找到这么稳定的方案,现在我也会把这个方案推荐给身边同样做内部小工具、小应用的朋友,大家用了之后都夸稳定,确实,对于不想花大成本过官方上架审核,又需要长期稳定使用的未上架iOS应用来说,TF签名真的是目前最合适的选择,不用再天天担心掉签补签,不用再花冤枉钱,省心又好用。