WWDC 2019 Section 304: App Distribution – From Ad-hoc to Enterprise

1. Overview

一个应用的诞生大致经过以下历程:

(Idea)想法诞生 --> (Prototype)原型设计 --> (App)应用实体 --> (Users)用户使用

你为了解决某个问题而产生想法,设计了应用的基本样式和页面交互等,然后把原型转换成真正的App,最后给用户使用,本 section 聚焦在最后一个环节,结合应用发布的四个途径,描述如何用最合适的方法将开发好的应用交付到用户使用。

2. Distribution Methods

应用发布总共有四种途径:Ad HocApp StoreIn-HouseCustom Apps

distribution_methods.png

关于途径的选择,你需要考虑很多问题。应用的受众是谁?谁会购买你的应用?应用的归属是谁?应用发布面向的设备是谁持有的?源码的所有权属于谁?编译应用的工作谁负责?需要开发者账号的是谁?归根结底,就是需要明确应用的使用者是谁。

user.png

苹果将应用的使用者归类为个人用户和群体用户,面向个人的用户可以选择 Ad HocApp Store,其中 Ad Hoc 是受限制的私有途径,主要限制了使用者数量和设备,而 App Store 则是四种途径中唯一一个公开的应用发布途径,面向所有个人用户,因此需要经过苹果严格的审核才得以发布。面向群体用户,比方说是一个企业里的员工,可以选择 In-HouseCustom Apps 的方式发布应用,这两种都是私有的途径。在不同阶段的应用发布可能需要选择不同途径,这就需要你明白应用的预期效果和最优方案,选择最合适你的应用使用场景的途径。在这里苹果通过一个真实的应用例子讲述选择不同途径的情况。

2.1 Ad Hoc Distribution

在完成 App 开发,准备进行发布之前,我们都希望 App 能在周围的同事之间先进行测试,提提意见,修改完善之后再发布到 App Store 上。另外,我们应用可能使用了类似 CloudKitAPNS 等不能通过调试测试的功能,但是又希望能测试到这些功能。Apple 考虑到这些问题,通过 Ad Hoc 来实现发布前的用户测试。使用 Ad Hoc 发布非常简单,配置好 Ad Hoc 证书后打包导出ipa,就可以给别人安装了。但是使用 Ad Hoc 是有限制的,使用 App 的设备需要在开发者账号上注册,一个账号每年最多只能注册100台设备。关于 Ad Hoc 的要点大致如下:

  • 用于在已注册的设备上进行测试;

  • 短期发布的解决方案;

  • 发布的应用不可长期使用,过期后将无法使用;

  • 设备限制每年都会重置一次;

随着测试的规模扩大,Ad Hoc 发布的方法将不能满足需求,一方面是手动添加设备UDID的过程比较耗费时间,另一方面测试设备数量的限制也会限制测试规模的扩大。这时候可以使用 TestFlight 来扩大 Beta 测试的规模。

testflight.png

TestFlight 有分内部测试(Internal Testing)和外部测试(External Testing),内部测试 app 不需要经过审核,只要上传即可,但是只能邀请被添加到团队的成员参加,而且最多只能添加25人。而公测是需要审核的,不过只需要知道对方的邮箱即可发送邀请,而且最多可以邀请10000人。TestFlight 发布的一个版本有效期最多只有90天。

2.2 Submitting to App Store

在完成 Beta 测试后,你对 App 提炼出符合更多用户使用的特性,接下来可以准备宣传的资料、演示视频等,就可以准备上架 App Store,向外发布你的应用了。 App Store 上架的应用面向你选择的商店的所有用户,应用的审核和管理由 Apple 完成,因此你需要了解并遵循 App Store 的审核准则,确保你的应用适合大众使用,并不断更新应用以适配新的设备和系统。

2.3 In-House Distribution

in_house.png

针对企业内部应用,Apple 提供了 In-House Distribution 途径,让你可以完全控制应用发布的整个流程。企业自身拥有并维护应用的源码,不需要上传到 App Store,借助移动设备管理系统(MDM),就可以完全在企业内部完成应用开发到发布使用的整个过程。

In-House 发布方式要求应用的使用者都是企业内部人员,使用 In-House 发布的应用要求设备可以联网,所以无法连接外网的设备可能无法使用。因为应用整个流程都是企业掌控,不能依托 TestFlight等工具,所以对于应用的测试和管理需要企业自行处理好。In-House 所使用的发布证书需要妥善保管,证书有效期只有三年,Provision Profile 有效期只有一年,所以要管理好证书生命周期,及时发布证书更新的应用版本,以免出现过期等情况导致应用失效。如果需要出于某些原因需要撤销证书,那么使用该证书发布的应用会马上失效,企业需要重新签名和发布应用,否则会可能出现非常糟糕的情况。

2.4 Custom Apps

Custom Apps 也是私有的发布途径,主要使用于企业对企业提供定制化的应用服务,负责开发的一方可以在不提供源码的情况下直接提供可购买的 App 给请求开发的一方使用。另外还可以是企业为自己提供,应用可由企业自己开发并在自己的账号上发布。

Custom Apps 属于苹果开发者计划(Apple Developer Program)的一部分,依托 Apple Business Manager 进行管理。此前 Custom Apps 只可用于企业为企业提供定制化应用服务,现在也可以像 In-House 那样企业为自己提供服务,你可以给你的合作伙伴、客户、加盟商、内部员工、分公司等提供应用,通过 MDM 或兑现码分发许可证。

Custom Apps 可在一个平台上管理内部和外部的所有应用,发布的应用没有使用期限,不用担心过期的问题。In-House 发布的应用只能提供给企业内部员工使用,而 Custom Apps 则可以提供给分公司等更多人一起使用。 Custom Apps 本身设定是企业对企业提供服务,因此对于寻求第三方软件服务支持的企业来说,他们无需访问源码就可以获得已发布好的应用,也不需要对应用的二进制包进行重签名等操作。另外,你可以使用 App Store 提供的不断更新的基础设施服务,比如说支付系统、App ThiningTestFlightApp Store Connect 工具等特性。

Custom Apps 要求购买应用的用户需要有一个 Apple Businsess Manager 账号,应用需要支持和适配好其选择发布的国家,最好支持所有的国家。如果使用兑换码购买应用,需要确保兑换码只会给到特定的用户,因为兑换码只能在对应企业内可用。Custom Apps 需要经过审核,审核要求可以访问应用所有的功能,审核通过发布后,不能再提交到 App Store 作为公开应用。

custom_apps.png

Apple 在此环节还描述了如何使用 Custom Apps 发布应用,以及出现问题后解决的几个思路,详情可见视频或官方文档。

3. Summary

综上所述,关于选择途径,主要是根据应用的使用者是对外还是内部进行选择,Ad Hoc 可供内部测试时发布使用,App Store 用于对公众发布,In-HouseCustom Apps 用于私有应用发布使用。Ad Hoc 途径一般只适用于 Beta 测试,针对发布正式应用的途径选择,Apple 总结成一下表格:

使用场景 App Store In-House Custom Apps
面向公众 ☑️
不愿向企业提供知识产权 ☑️ ☑️
企业没有 MDM ☑️
被雇佣作为应用开发顾问 ☑️ ☑️
企业没有使用 Apple Business Manager ☑️
App 只面向内部员工 ☑️ ☑️
为自己的企业发布应用 ☑️ ☑️

Apps are like cannonballs, it is better to know where they are going before they deploy.

Apple 希望你的应用可以用最明智的方式发布应用,这就需要你考虑清楚你的客户和用户是谁、合理分配对应版本的应用、知道并了解苹果应用审核的准则,从而选出最合适的发布途径。

Section Video

WWDC 2019 Section 304: App Distribution – From Ad-hoc to Enterprise

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容