我做独立iOS开发快五年,从小工具到出海效率应用,踩过的授权分发坑能攒满一个笔记本,今天整理第一手实战避坑笔记,给刚入行的独立开发者做参考,少走我走了三年的弯路。
先从最基础的P12证书使用规范说起,这是所有授权分发的根,错了一步后面全是坑。 很多新手刚接触签名,觉得P12就是个导出的打包文件,随便存随便发,我刚入门的时候也吃过这个大亏:第一次做付费效率工具,导出P12的时候图省事没设密码,发给合作渠道之后不到半个月,发现这个P12被爬走放到了签名交易论坛售卖,被不良商家拿去签了几个赌博类黑应用,不到一周我的个人开发者账号就收到苹果警告,证书直接被封,刚做起来的三百多个付费用户全打不开应用,最后花了半个月才重新申请账号恢复服务,大半用户直接流失,口碑跌得厉害。 从那之后我定了三条P12使用铁规,至今没破:第一,所有P12必须设置12位以上包含大小写、数字和特殊字符的强密码,绝对不做空密码P12;第二,同一个开发者账号的P12只生成一次,苹果个人开发者最多只能同时存在两个发布证书,重复生成会直接顶掉旧证书,旧证书签的所有包都会直接失效,我之前犯过这个错,重新生成证书后一百多个Ad Hoc签名的包全废了,挨个找用户补发花了整整一周;第三,同一个P12只给一个可信渠道使用,绝不同时发给多个渠道,批量共享P12是苹果封证书的重点监控场景,哪怕你做的是合规应用,也会被牵连。
接下来聊聊不同证书分发渠道的优劣和我的价格体验,入行这么久主流渠道我都试过:首先是个人开发者Ad Hoc分发,成本就是每年688元的个人开发者账号费,优势是完全自己掌控,不会被中间商卡脖子,缺点是最多只能绑定100台UDID设备,分发量有限,适合小范围内测或者千粉以内的小项目。 然后是企业开发者证书分发,企业账号每年299美元,折合人民币两千多,优势是不用绑定UDID,任意设备都能安装,分发量不受限,早年很多对外分发的应用都走这个路线,现在第三方渠道租共享企业签名一个月大概150到300元,独享企业签名一个月1000到2000元,我之前用了一年共享企业签,体验可以用“噩梦”形容:平均半个月掉一次签,掉签之后所有已经安装的应用直接打不开,有的小渠道掉签之后还不给免费补发,要额外收钱,半年下来补签花了快三千,还流失了近三成用户;独享企业签稳定一点,但也躲不过苹果的抽查,我用的第三个月证书就被封了,虽然服务商免费换了证书重签,但用户还是要重新安装,照样流失了一百多个付费用户。 然后是超级签名,本质是用多个个人开发者账号拼设备,按设备收费,一个设备3到10元不等,我试过3元一个设备的低价渠道,不到一个月渠道商跑路,所有签名全掉,我自己掏了八千多块补签,亏得血本,贵一点的8元一个设备,一千个用户就要八千,成本比TF高太多,而且现在苹果查超级签名查得严,批量账号很容易被封,照样掉签。 再就是TF内测和App Store上架,TF代提一般一次300到800元,能用三个月,平均下来一个月才一百多,App Store自己走流程只需要出每年的账号费,找第三方代过审也就几百到几千元,看应用类型,优势是都是苹果官方授权,稳定性比任何第三方签名都高。
作为走了几十次完整流程的开发者,我把App上架AppStore流程整理得很清晰,给大家参考:第一步提前注册99美元的个人开发者账号,完成税务和支付信息绑定,之后在苹果开发者中心创建对应应用ID,开启应用需要的推送、内购等对应服务,接着生成发布证书,本地导出带强密码的P12,再生成对应的发布描述文件;第二步打开Xcode,配置好应用的版本号、Bundle ID,选择Generic Device之后进行Archive归档,归档完成后选择导出App Store版本的IPA包;第三步用苹果官方的Transporter工具上传IPA到App Store Connect,上传完成后在后台补充完善应用信息,包括应用名称、关键词、简介、不同尺寸的设备截图、隐私政策链接,设置应用的可用地区和定价模式,确认信息无误后提交审核;常规审核一般1到3天就会出结果,如果被拒,苹果会明确告诉你被拒原因,按照要求修改内容之后重新提交即可,通过审核后几个小时就能正式上线供用户下载。
接下来讲UDID绑定实操和设备授权原理,很多新手搞不明白,其实iOS的应用授权本质就是苹果的设备验证机制:苹果只允许在开发者账号注册过UDID的设备,运行Ad Hoc证书签名的应用,企业签名是依托苹果对企业开发者证书的系统信任,绕开了UDID绑定,所以一旦企业证书被封,系统信任消失,应用就直接打不开;TF是苹果官方的内测服务,授权由苹果服务器完成,不需要开发者自己绑UDID,外部测试最多支持10000个用户,比个人Ad Hoc量大很多;App Store上架的应用是对所有用户开放授权,只要能搜到就能装,是最宽松的授权模式。 UDID绑定我实操了几百次,步骤其实很简单:第一步让用户获取自己的UDID,最简单的方法是给用户发一个在线获取UDID的描述文件链接,用户安装描述文件后就能自动跳转出UDID,复制发给开发者就行;第二步登录苹果开发者后台,进入设备管理列表,点击添加新设备,把UDID粘贴进去,一般用用户昵称或者手机号命名,方便后续清理闲置设备;第三步也是最容易错的一步,添加完UDID一定要重新生成描述文件,因为描述文件里包含了所有绑定设备的UDID列表,不更新描述文件,新设备就算绑了也打不开应用,我刚入门的时候就因为忘了这一步,来回折腾用户五六次,体验差到极点;最后用新的描述文件重新签名IPA包,就能发给用户安装了,另外个人开发者账号每年可以重置一次UDID列表,要定期清理不用的设备,腾出位置给新用户。
讲完基础,重点说我用了两年的稳定方案,配合失效补发机制,掉签率不到5%,用户流失率比之前用企业签降了80%:第一,如果你的应用符合App Store审核规则,优先走App Store上架,这是全球最稳定的方案,没有之一,只要应用不违规,永远不会掉签,用户直接在App Store下载更新,完全不用开发者操心,我三个主力合规产品都在上边,每年只需要交账号费,没有其他成本。 第二,如果应用因为规则问题过不了App Store审核,优先选TF内测配合H5封装,TF是苹果官方授权,正常情况下90天不会掉签,到期前重新提交一次就能续期,我现在把大部分需要分发的应用都做了H5封装,把web端的核心功能封装成IPA,优势是更新内容不需要重新签名,只要更web端就行,用户打开应用就能用新内容,比原生更新方便太多,封装好的IPA上传TF,用户只要点一下链接就能安装,不需要发UDID,体验比UDID绑定好太多,成本也低,一次代提才几百块,能用三个月,比企业签名和超级签名划算太多。 第三,针对小范围定制的用户,我用自己的个人开发者账号做UDID绑定Ad Hoc签名,配合H5下载页做自动化处理,我在H5下载页加了签名检测和自动失效补发功能:如果检测到当前签名失效,会自动替换上新签好的IPA包,推送通知给所有已安装用户,用户打开H5就能直接重新下载,不用我手动挨个发,之前掉一次签要处理两三天,现在十分钟就能完成补发,省了超多时间。
最后要提醒大家,IPA授权的核心永远是签名的稳定性,千万不要图便宜选低价共享企业签,掉签掉到你怀疑人生,也不要随便外泄自己的P12证书,做好加密备份,合规应用优先上架App Store,不合规的优先走TF,做好自动补发机制,能帮你避开绝大多数坑,这是我五年踩坑攒出来的经验,希望能帮到更多独立开发者少走弯路。