您好!
欢迎来到京东云开发者社区
登录
首页
博文
课程
大赛
工具
用户中心
开源
首页
博文
课程
大赛
工具
开源
更多
用户中心
开发者社区
>
博文
>
iOS应用上线ABM分发渠道最佳实践
分享
打开微信扫码分享
点击前往QQ分享
点击前往微博分享
点击复制链接
iOS应用上线ABM分发渠道最佳实践
自猿其说Tech
2022-01-12
IP归属:未知
61960浏览
### 1 前言 让我们把时间拉回到2019年下半年,京象App开始立项,2020年3月份京象iOS 1.0.0版开发完毕并筹备提申App Store,不幸申请被驳回,被告知京象属于ToB应用,不可以上线App Store,只能上Apple Business Manager(后简称ABM)分发渠道,期间我们陈情京象有某某ToC小功能,与App Store客服经过多番沟通,依旧被拒之门外。无奈我们将目光聚焦到了ABM上,开始在京东集团内咨询有无成功案例,答案是否定的。我们经过对ABM充分的调研,并制定了详细的技术方案,最终成功上线ABM渠道。此文以京象为例,阅读此文后大家可以对ABM有一个更深层次的了解和运用,为ToB应用的开发者上线应用市场奠定坚实而详尽的技术指引、开辟新的道路。 ### 2 ABM #### 2.1 ABM是什么 ABM是Apple公司提供的iOS应用的分发渠道之一,与App Store平台不同,ABM是2019年10月才开始在中国区启动的一套全新的应用分发系统,部分功能和企业账号类似,旨在为企业提供快速、高效的方式来部署应用到企业拥有的苹果设备。ABM与App Store两个平台的关键区别如下: ![](//img1.jcloudcs.com/developer.jdcloud.com/ab620aea-6e0d-471f-8395-c3b1e8abcb4a20220112141002.png) #### 2.2 如何上线ABM ##### 2.2.1 注册组织 注册地址:https://business.apple.com/#enrollment ![](//img1.jcloudcs.com/developer.jdcloud.com/8ed28045-ec88-49b4-b45d-05a05f951ce920220112141024.png) 注:邓白氏编码需要提前申请,目前申请邓白氏需要3周左右,期间会收到苹果公司的验证电话询问并验证申请人的工作、职位,以及申请人是否可以代表组织等信息。目前只支持组织申请,不接受个人申请。提交申请以后需要3-5个工作日审核时间,审核通过后会收到苹果审核通过的邮件,并可以开始注册管理式AppleID。 <center>![](//img1.jcloudcs.com/developer.jdcloud.com/62506be6-84a8-4a82-8621-4e8442413fba20220112141044.png) 审核中邮件</center> <center>![](//img1.jcloudcs.com/developer.jdcloud.com/a76f52c9-cf4e-42dd-9607-c477d870874e20220112141130.png) 注册完成邮件</center> ##### 2.2.2 创建管理式AppleID 收到注册完成邮件后点击开始使用,需要先注册管理式AppleID。 收到邮件后请尽快注册,不然链接会过期,如下图。 ![](//img1.jcloudcs.com/developer.jdcloud.com/c913f9c7-8e64-4801-9c05-cf10c35ea46820220112141217.png) 点击开始,进入管理式AppleID注册页面。 ![](//img1.jcloudcs.com/developer.jdcloud.com/034a916d-0070-47d7-aaec-8c797a49608020220112141229.png) 注:这里的邮箱不可与申请人的邮箱相同。点击继续则完成了所有注册流程。并进入了管理页面。 ![](//img1.jcloudcs.com/developer.jdcloud.com/91196d2a-1082-4c69-ab8a-784068c7b78c20220112141244.png) ##### 2.2.3 添加多个管理式AppleID ![](//img1.jcloudcs.com/developer.jdcloud.com/73eb9d08-9b7c-4337-9f18-4279b4603bb720220112141420.png) 点击上方+号添加新账号,输入完管理人信息后点存储即可生成,其中管理式AppleID是登录名,电子邮箱地址用于接受ABM邮件。 ![](//img1.jcloudcs.com/developer.jdcloud.com/3754af4d-a20c-44e1-9c18-5252732a8bf220220112141502.png) 刚创建完账号时账号状态是未登陆状态,需要点击重设密码,给账号对应的电子邮箱地址发送一个临时密码。如图: ![](//img1.jcloudcs.com/developer.jdcloud.com/d618bb1e-e203-4576-b943-9a289ab22e7e20220112141520.png) 点击前往Apple商务管理跳转到ABM登陆页面,使用AppleID和临时密码登陆,登陆后会弹出修改密码的窗口,原密码为临时密码,然后输入新密码即可重置完密码。修改完即可使用正常登陆使用。 ##### 2.2.4 创建应用并发布 应用创建和发布与正常上线App Store流程大致一样,不再赘述,只说其中一个区别,如下图 ![](//img1.jcloudcs.com/developer.jdcloud.com/8fd5ffdd-a034-4261-aeb1-f118aa2e0bc620220112141618.png) 注:分发方式上线后不可更改。 ##### 2.2.5 获取兑换码 应用审核通过以后在ABM平台“自定App”中可看到该应用,然后就可以生成兑换码并下载了。如下图: ![](//img1.jcloudcs.com/developer.jdcloud.com/14d160e6-5665-48fd-97fc-f89924d4c90e20220112141639.png) 注:一个账号每隔7天可免费兑换10万个兑换码,建议每次兑换1万个,兑换10次,下载10次,因为一次性下载过多兑换码ABM平台下载页面就会报错。 ### 3 应用分发技术方案 #### 3.1 技术架构图 由于ABM分发需要用户输入兑换码或访问下载链接才可以在App Store中下载应用,但每个用户下载一次给其手工分发一个兑换码是不现实的,因此我们设计了一套用户首次安装/升级京象App的技术方案,在不改变目前用户使用习惯的基础上实现更快、更便捷的安装或升级体验,技术方案如下: ![](//img1.jcloudcs.com/developer.jdcloud.com/88397513-ccda-43b5-a398-dafeae10f67420220112141706.png) #### 3.2 兑换码管理平台 我们搭建了存储兑换码的接口服务以及上传兑换码的Web应用,每周可将从ABM中下载的兑换码通过上传功能存储到数据库中。每个兑换码只能使用一次,用户在下载App过程中只要获取到一个兑换码,该兑换码即被视为已使用,会被从数据库中移除。 上传兑换码的Web应用如下图: ![](//img1.jcloudcs.com/developer.jdcloud.com/ab8a930e-510b-46d7-87ff-42e453a9f30120220112141727.png) #### 3.3 风控 我们通过收集设备标识码、客户端IP等等信息,通过后台一系列算法,对兑换码的获取进行风险限制,防止被恶意消耗。 ### 4 用户下载示例 <center>![](//img1.jcloudcs.com/developer.jdcloud.com/413f3196-87f4-4526-ad5a-fa261b4f20c820220112141815.gif) 扫码下载京象App示例</center> ### 5 升级提醒 #### 5.1 灰度 若使用了阿凡达应用发布平台,则灰度方案与普通TestFlight灰度一致,不再赘述。 #### 5.2 普通与强制 若使用了阿凡达应用发布平台,有两种方案实现: **方案1:**沿用应用发布平台默认的升级提醒样式,将下载二维码对应的URL链接设置到与“立即安装”按钮相关的API便可 **方案2:**如欲实现点击“立即安装”后,直接跳转到兑换页面并完成下载,则无法沿用默认的升级提醒样式,需要自定义样式,并自定义立即安装按钮的事件、处理普通更新和强制更新场景下的取消和退出按钮的逻辑,如下图示例: ![](//img1.jcloudcs.com/developer.jdcloud.com/ccbccddf-8f8c-477e-b11a-f710db518ca520220112142002.jpg) ### 6 总结 ToB应用上线ABM的全过程以及方案就为大家介绍到这里了,如果大家有更好实践方案,欢迎大家多交流、碰撞出更好的火花。 ------------ ###### 自猿其说Tech-京东物流技术发展部 ###### ###### 作者:姜森照 李孟雷
原创文章,需联系作者,授权转载
上一篇:ClickHouse在工业互联网场景的OLAP平台建设实践
下一篇:京东移动端组件库 React 版如约而来
自猿其说Tech
文章数
426
阅读量
2149963
作者其他文章
01
深入JDK中的Optional
本文将从Optional所解决的问题开始,逐层解剖,由浅入深,文中会出现Optioanl方法之间的对比,实践,误用情况分析,优缺点等。与大家一起,对这项Java8中的新特性,进行理解和深入。
01
Taro小程序跨端开发入门实战
为了让小程序开发更简单,更高效,我们采用 Taro 作为首选框架,我们将使用 Taro 的实践经验整理了出来,主要内容围绕着什么是 Taro,为什么用 Taro,以及 Taro 如何使用(正确使用的姿势),还有 Taro 背后的一些设计思想来进行展开,让大家能够对 Taro 有个完整的认识。
01
Flutter For Web实践
Flutter For Web 已经发布一年多时间,它的发布意味着我们可以真正地使用一套代码、一套资源部署整个大前端系统(包括:iOS、Android、Web)。渠道研发组经过一段时间的探索,使用Flutter For Web技术开发了移动端可视化编程平台—Flutter乐高,在这里希望和大家分享下使用Flutter For Web实践过程和踩坑实践
01
配运基础数据缓存瘦身实践
在基础数据的常规能力当中,数据的存取是最基础也是最重要的能力,为了整体提高数据的读取能力,缓存技术在基础数据的场景中得到了广泛的使用,下面会重点展示一下配运组近期针对数据缓存做的瘦身实践。
自猿其说Tech
文章数
426
阅读量
2149963
作者其他文章
01
深入JDK中的Optional
01
Taro小程序跨端开发入门实战
01
Flutter For Web实践
01
配运基础数据缓存瘦身实践
添加企业微信
获取1V1专业服务
扫码关注
京东云开发者公众号