我是一名做独立开发的iOS开发者,两年前开始和朋友做一款面向基层私人诊所的慢病管理应用,帮医生记录患者的血压、血糖数据,跟进随访计划。一开始一门心思想上AppStore,前前后后提交了三次审核,次次都因为医疗资质被打回。苹果对涉及用户健康数据的应用卡得很严,要求提供互联网医疗资质或者合作医疗机构的执业许可,我们和诊所的合作资质还在走流程,短时间内根本拿不下来,只能先靠签名做分发,给已经合作的几十家诊所先用。
最开始听说超级签名适合小批量内测,刚好我们的应用也只是给合作医生用,人数不多,就一头扎进去找渠道,踩了满满一坑的问题,到现在也算摸出了点门道。
说起来很多刚接触签名的开发者可能和我一开始一样,搞不懂设备签名的原理。其实说穿了也没什么黑科技,苹果给个人开发者开放的内测权限里,每个账号最多可以绑定100台iOS设备,这些绑定过的设备,可以安装该开发者签名的内测应用,不需要经过AppStore审核,也能被iOS系统信任。超级签名本质就是用的这个规则,把每一台要装应用的设备UDID绑定到开发者账号里,再用对应的证书给IPA包签名,就能直接安装使用了。
UDID就是每台iOS设备独一无二的识别码,相当于设备的身份证,苹果就是靠这个识别哪些设备有权限安装应用,所以说不用绑定UDID的超级签名都是骗人的,要么是偷换概念拿企业签名冒充,要么就是坑。我一开始自己弄的时候,不懂怎么获取UDID,还专门做了个H5封装的查询落地页,放在我的服务器上,让医生点开就能自动获取复制UDID,再发给我录入,省了好多挨个教的功夫。后来用第三方平台,都是自动获取UDID,用户点安装按钮就能自动完成绑定,比我自己折腾方便多了。
说到P12证书,这里面的坑也不少。P12其实就是我们从苹果开发者后台导出的开发证书文件,里面包含了证书和对应的私钥,是给应用签名的核心文件。我最开始贪便宜找了个超低价的签名服务商,没问清楚是不是共用证书,结果人家把同一个P12证书卖给了七八个开发者,大家都往里面加设备,没半个月就超过了100台的限额,苹果直接检测到异常,把账号封了,所有安装过的应用全部掉签。
那时候刚好赶上我们做季度随访数据汇总,三十多个医生全打不开应用,我连夜找服务商补签,结果人家直接失联,微信不回朋友圈屏蔽,一百多块买的签名直接打了水漂。我急得团团转,只能临时找了个TF签名救场,花了三百多块钱包过审核,等了两天才审核通过,那两天我挨个给医生打电话解释,差点把好好的合作给作没了。
TF签名其实就是苹果官方TestFlight内测渠道的签名,本身是苹果官方认可的内测方式,所以稳定性比很多非官方签名好,一般不违规不会掉签,缺点是审核比较严,而且最多只能有一万个测试名额,对于我这种小批量用的其实够,但医疗应用很容易卡资质,那次临时申请就是因为资质问题被拒了,才多花了钱找包过的。说起来不同签名不同渠道的真实价格,我这大半年跑下来,也算门清。
如果自己会操作,自己注册苹果个人开发者账号,官方价是688块钱一年,100个设备名额,所有操作自己来,成本就是这688,没有其他额外费用,适合懂技术能折腾的开发者。如果找第三方做稳定的独立超级签名,就是一个账号一份P12证书只给你一个人用,不共用,100个名额一年的价格大概在400到600块之间,比自己注册账号便宜,因为服务商拿账号有渠道价,还帮你维护,掉签免费补,其实挺划算的。那种超低价的,100个名额一年才一百多甚至几十块的,不用想肯定是共用证书拼配额,不出一个月肯定掉签,别碰。
还有按下载收费的超级签名,一般一个下载1块到3块钱不等,适合那种偶尔有新用户下载,流量不稳定的项目,如果是长期固定一百个用户,算下来其实比包年贵,而且要是遇到恶意刷下载,你还得不停往里充钱,我个人是不喜欢这种模式。TF签名的价格一般是一次一百到三百块,包过审核的话会再加一两百,审核通过后能用三五个月甚至更久,只要不违规不会掉,适合人数稍微多一点,几百上千用户的项目。IPA签名其实就是一个泛指,所有给未上架的IPA安装包做签名都叫IPA签名,超级签名、TF签名都是IPA签名的一种,价格根据类型不同差很多,从几十到上千都有。至于AppStore上架,自己提交的话就是每年交688的账号费,没有其他成本,找代办的话,医疗类的因为资质问题,价格从两千到五千不等,资质齐全便宜点,资质不全贵很多,我找过一次代办开口要三千,我没舍得,就打算等自己资质下来再提交。
证书分发机制其实也不难理解,iOS系统本身是封闭的,只有经过苹果信任的证书签名的应用,才能正常打开运行。AppStore上架的应用,是开发者用生产证书签名后上传,苹果审核通过后再重新签名,分发用户下载,所以是最稳定的,不会有掉签问题。而我们用的内测签名,超级签名用的是开发证书,靠绑定UDID获得苹果的信任,所以只要账号不被封,证书不共用不超配额,就不会掉签。
我现在用的这个服务商,就是给我单独开了一个个人开发者账号,P12证书只有我一个人用,配额只给我加我的设备,100个名额一年五百块,用了快八个月,只掉过一次签。那次掉签还是因为苹果更新了开发者规则,我的账号触发了风险检测,服务商当天就给我换了新的账号和证书,重新签了包,我只需要把新的安装链接发给医生,重新安装一遍就能用,前后也就一个多小时,没耽误正事。补签也是免费的,没有额外收费,这一点我挺满意的。
后来我还把安装下载页做了H5封装,加了简易的问题排查和在线咨询入口,医生扫二维码就能打开下载页,点一下就能安装,装不上的话直接在页面里给我发消息,我远程就能看问题出在哪,是UDID绑定错了还是证书掉了,处理起来很方便。
其实做我们这种小团队的医疗应用,一开始本来就没多少用户,就是先给合作的诊所试用,收集反馈改bug,等资质齐全了再上AppStore。这段过渡时间,找对稳定的签名真的太重要了。我之前踩过低价的坑,掉一次签耽误的事,远远不止省那几百块钱。毕竟我们的应用管的是患者的健康数据,医生每天都要用,掉签打不开,录不了数据,断了患者随访,砸的是我们自己的信誉。
现在我这边已经用了八十多个设备名额,再过两个月就要加新的诊所,服务商给的价格是加一个设备一年五块,我觉得挺合适。等明年年初我的资质就能办下来,到时候再重新提交AppStore上架,到时候用户直接在应用商店搜就能下载,不用再折腾签名安装的事,但是这两年过渡的时间,超级签名确实帮了我大忙。踩过的坑记下来,也给其他做同类应用的开发者提个醒,签名这个事,稳定永远比便宜重要,别像我一开始那样,为了省俩钱差点误了大事。