和几个朋友折腾了小半年的小工具,最初就是给身边开实体店的朋友做会员管理用的,一开始没想着要做多大规模,也就没直接往应用商店冲,一来那会还天天改需求,今天加个功能明天调个界面,上架来回折腾太费时间,二来资质也还没凑齐全,所以就开始到处打听苹果这边怎么才能把做好的包装到手机上给大家用,一来二去就接触到了各种签名方式,这大半年踩了不少坑,也摸出了不少实在的经验,连带着之前没当回事的数据安全问题,也有了切切实实的感受。
最开始听人说企业签名方便便宜,安装起来简单,所以我第一时间就找了个听上去还不错的渠道做企业签名。 那会我把打包好的ipa包发过去,没多久对方就给我发回了一个网页链接,告诉我用苹果手机打开就能直接安装。 我照着操作,点开链接点了安装按钮,退回桌面就看到APP图标在那里转圈圈加载,没一会就安装好了,我兴冲冲地点开,结果弹出一个提示说未受信任的企业级开发者,根本进不去,我当时一下子就慌了,以为签名出了问题,赶紧去找对方问,才知道还要手动信任证书。 那一步步流程我现在都记得,要打开手机的设置,找到通用,往下翻找到VPN和设备管理的入口,进去之后就能看到对应企业开发者的描述文件,点进去之后点信任按钮,还要输自己的手机密码确认,之后才能正常打开APP。 我自己捣鼓了一会就弄好了,但是给那些开实体店的朋友装的时候,好多人不怎么折腾数码产品,找这个入口找半天都找不到,我只能一个个打语音电话,一步一步教着点,有时候还要截图标箭头,折腾半天才能弄好一个,那会我就觉得这个流程真的太不友好了。
用了没多长时间,就出问题了,那天早上起来,好几个朋友给我发消息说APP打不开了,点进去要么闪退要么提示证书无效,我拿自己的手机试了试,确实打不开,这就是人家说的掉签了。 我赶紧找之前的签名商,对方说我做的这种是共享签名,价格便宜就是这样,掉签很正常,会给我补签,让我等一会。 等补签完,我又要通知所有用户删掉原来的APP,重新打开链接下载,再重新走一遍信任流程,那段时间掉签掉得特别频繁,有时候一周能掉两三次,我每次都要挨个通知,折腾得整个人都不得安宁,后来那个签名商干脆联系不上了,我存在他那里的安装包都拿不回来,害得我重新打包签名,耽误了好几天的使用。 也是那时候我才知道,企业签名数据安全真的不是小事,我之前用的那种共享签名,好多人共用一个证书,证书本身来历不明,P12证书也掌握在签名商手里,别说掉签了,要是对方想动什么手脚,我们存在APP里的用户信息、消费记录什么的,轻轻松松就能拿走,想想都后怕。
后来我听人说,想要自己可控,最好就是自己掌握P12证书,我就折腾着弄了自己的P12。 P12其实就是带密钥的证书文件,不管是签名还是更新版本,都要用到这个文件,我自己申请弄好之后,把文件存在自己的云盘里,密码也记好,每次掉签或者更新版本,我自己就能用工具重新签名,不用再等签名商回复,也不用担心对方拿我的证书做什么,数据完全存在自己的服务器里,签名也只有我能操作,安心多了。 关于P12我也踩过坑,第一次导出的时候没注意,忘了把密钥一起导出来,结果弄好的证书根本用不了,害得我又重新申请了一次,折腾了整整一天才弄好,所以现在我都会提醒身边弄签名的朋友,导出P12的时候一定要核对好,密码千万别忘,文件也要多存几个备份,不然丢了真的很麻烦。
掉签之后其实也没什么特别神奇的解决办法,我这么久遇到的掉签,无非就是两种处理方式,一种是找签名商补签,补完之后用户重新下载安装,重新走信任流程,另一种就是自己手里有P12的话,自己重新打包签名,生成新的安装链接,再通知用户更新,比等别人要快很多,要是掉签频率实在太高,那就只能换签名渠道了,我就是从共享企业签名换掉的,之后也试了好几种不同的签名方式,感受真的差很多。
我第二个试的是超级签名,超级签名用的是个人开发者的账号做签名,说是掉签概率比共享企业签名低很多。 我用超级签名的时候,安装流程和企业签名不太一样,打开链接之后,它会先自动获取你手机的UDID,之后再自动生成对应你设备的签名包,下载完之后其实也要走信任证书的流程,和企业签名差不多,也要去设置里点信任。 我用超级签名的时候,确实掉签少了很多,但是用了一段时间也出了问题,就是用户慢慢多起来之后,成本涨得很快,而且有时候遇到苹果封账号,整个账号上的所有设备都会掉签,我之前就遇到过一次,找的那个渠道用的是来路不明的账号,没几天账号就被封了,所有用户的APP都打不开,我又挨个通知重新安装,好多朋友都嫌麻烦,说要不用别的工具算了,搞得我特别尴尬。 而且超级签名的数据安全也要注意,我听说有些不良渠道会用超级签名偷用户的设备信息,卖给别人,所以哪怕用超级签名,也要自己掌握账号,不能随便找个便宜渠道就用。
之后我又听人说TF签名稳定,就换成了TF签名。 TF签名其实就是借助苹果官方的TestFlight来安装,流程比之前的都简单,我把包上传进去,审核通过之后给用户发个链接,用户点开之后,先在App Store下一个TestFlight的官方应用,之后就能直接跳转到里面下载我的APP了,最方便的是,因为是苹果官方的渠道,根本不用额外信任证书,下载完直接就能打开,那些不会找设置入口的朋友,自己点两下就能用上,我再也不用挨个教着找入口了。 我用TF签名这么久,从来没掉过签,真的稳得不行,而且审核比App Store松很多,我的小工具没什么违规内容,很快就过了,成本也不高,对于我这种不大不小的项目来说,真的太合适了,唯一的小问题就是有时候更新版本也要等审核,不过比App Store快很多,完全能接受。
其实我一开始还试过H5封装,就是把做好的网页直接打包成ipa包,那会刚开始做,觉得原生开发麻烦,就想先整个封装的凑合用。 我找了个线上封装平台,上传网址就能直接生成包,然后再签名就能用,但是用起来体验真的不好,跳转起来卡卡的,很多原生能拿到的权限都拿不到,每次要保存个优惠券图片都要弹好几次授权,而且我那个封装平台还偷偷在包里面加了广告,每次打开APP都弹乱七八糟的推广,我自己都觉得不好意思,改也改不了,后来直接就换掉了,要是临时做个活动页用几天还行,长期用真的不行,而且很多不正规的封装平台还会偷数据,安全性真的没保障。
后来用户越来越多,我们也凑齐了资质,就想着上架App Store,折腾了好多次才终于上架成功。 上架之后确实方便,用户直接在App Store搜就能找到,下载完直接就能用,不用弄任何签名,也不用信任证书,更新也都是自动更,从来不会掉签,用户用着也更放心,觉得是正规应用。 但是上架App Store也挺麻烦的,审核特别严,我改了三次才过,第一次因为资质不全被打回来,第二次因为有个功能不符合苹果的规则又改,第三次才通过,之后每次改个小功能更新版本,都要等好几天审核,要是哪里不合格又要重新改,每年还要交年费,对于小项目来说,确实有点压力,而且哪天要是触碰了规则,说下架就下架,完全没处说理。
我折腾这么久,也摸出了一些让签名稳定流畅的法子,其实还是看自己的规模来选,要是刚起步,用户不多,选超级签名其实就可以,但是一定要找正规渠道,自己掌握账号和证书,不要贪便宜买来路不明的,数据安全永远是第一位的。 要是用户多了一点,TF签名真的是首选,稳定又方便,几乎不会出问题,成本也不高。 要是一定要用企业签名,千万别用那种便宜的共享签名,不仅掉签频繁,企业签名数据安全也根本没有保障,最好是自己拿着P12证书,用独立签名,自己能控制,掉签了自己就能快速处理,也不用担心数据泄露,虽然价格贵一点,但是用着安心。 要是真的做大了,资质齐全,那上架App Store肯定是最一劳永逸的,就是前期折腾一点。
我之前遇到过好多大大小小的问题,除了掉签和找不到信任入口,还有一次iOS更新大版本之后,很多用户原来信任的描述文件失效了,APP又打不开了,我一开始以为是掉签,折腾了半天,才发现只要重新进设置再信任一次就好了,白忙活了大半天。 还有一次备份P12的时候存在了过期的云盘里,后来找的时候找不到了,又重新申请证书,耽误了好久的事,这些小坑都是踩过才知道要注意。 其实不管用什么签名,自己把核心的证书和安装包掌握在自己手里,比什么都重要,不要图方便都扔给第三方,不然出了问题哭都来不及,尤其是涉及到用户信息的应用,数据安全真的不能大意,哪怕多花一点钱,多折腾一点,也要把安全握在自己手里。 现在我大部分用户都用上架后的版本,少数还在用TF签名的,也一直没出什么问题,回想最开始瞎找签名的日子,真的觉得选对方式比什么都重要,没必要为了省一点钱给自己找一堆麻烦,尤其是数据安全这块,真的容不得半点马虎。