在这篇文章中,你将了解到iOS应用的各种发布方式(当然不止App Store啦,小傻瓜)。从App Store
到TestFlight
、企业级应用
、超级签名
、苹果商务(Apple Business)
,对比说明每种方式的特点。从19年10月起,在中国大陆也开始支持通过苹果商务管理分发应用,特别适合发布企业内部应用、定制应用
,从此告别4.3条款被拒,一起来看看吧。
原创文章,如需转载请在下面留言让我知道。不留言不在开头标明出处链接的坏同学,1字1元索赔
排排坐,对对比
上面的表格基本已经包括了
iOS应用
的所有可能
的分发方式,不管是苹果推荐的还是苹果打击,只要技术上能实现的都有了,横跨黑白两道。如果有同学知道其他的方式,在下面留言探讨一下,请你吃饭。
App Store
不用多说了,苹果官方推荐的应用发布方式,有特别特别多的好处,如果不是迫不得已,没人会选择不把应用发布到App Store对吧?“咦?那你为什还要盘点,这篇文章在骗我吗”。当然没骗你,因为有些情况下App Store满足不了我们的需求。这篇文章不介绍这个最重要的发布方式了,网上随便搜一下,详细到脱了裤子放屁的地步,巨细无遗。
TestFlight
苹果设计TestFlight是为了解决iOS应用公测的问题,所以各种特征或者说限制也是围绕着“公测”这个场景设置的。具体对比就看上面的表格吧,网上对TestFlight的介绍也很多了。虽然苹果设计它是用于公测,但是很多灰产应用也会通过这个渠道发布,因为应用审核容易通过,没有发到App Store时审核那么严格。
In-House(江湖人称 企业级应用)
中国的广大开发者对企业级应用是又爱又恨,爱它轻功了得无人能挡,恨它来去如风转眼掉签。什么意思呢,企业级应用是高校、政企为其内部员工分发应用而诞生的。由于很多企业级应用可能会涉及企业内部敏感信息,或者运行这些App的设备根本就不允许连接接到互联网,所以可能没法访问App Store。无需应用审核,点击一个网页链接,就可以安装应用。正是因为不需要应用审核,所以目前绝大部分灰色黑色应用,比如彩漂或代理或成年人yellow应用等等,都会通过这种方式进行分发。
但是,如果有人举报,或者被苹果发现你不是真的用于给内部员工分发应用,甚至用于非法用途,企业级应用开发者账号会被立即冻结,随之已经安装的应用也会无法启动。大家管这种窘境叫做应用的掉签
,意思是企业级签名掉了。再透漏点,目前有很多做地下交易的人,帮别人签名或直接卖账号。再多不能说了,大家不要触犯法律啊。
如果账号被冻结,基本就没有解冻的可能性了,而且现在新申请账号很困难。我们就是因为碰到了这种状况,所以被迫挖掘出了几乎所有可行的方案,也就有了这篇文章。顺便说一句,我们是要分发定制应用,不是看岛国动作小电影那种
超级签名黑科技
你可能注意到了上面没有提到Ad-Hoc,没错,因为Ad-Hoc毕竟是开发阶段企业内部自测用的,而且超级签名的本质就是Ad-Hoc。只不过有些平台,比如最上面图片里的某平台,把申请苹果开发账号、向账号中添加设备的UDID、制作证书和描述文件、ipa重签名等步骤都自动化了。这里面有些工作可以通过fastlane实现;重签名的工具在github上有很多,Xcode本身也自带了重签名的命令行工具codesign
;这种方式我就提供简单的实现原理介绍好了,不打算展开讲太多,因为这种方式实在是太“黑科技”了。不是技术难度大,而是真的“黑”,见不得光,被苹果发现后果可以想象。如果你要自己实现一套这样的平台,企图完全绕开App Store的审核,其实难度也不大,就是费用有点高。这里的费用主要是申请苹果开发者账号产生的,一个账号最多只能绑定100台设备,平均每台设备需要近7元的成本。这对正常应用的开发者肯定是没法接受的,所以超级签名只适合那种既无法通过App Store审核,又可以为开发者带来非常高回报的App。说白了就是法律灰色地带或者就是违法的应用。
苹果商务(Apple Business)
讲到这里,真正的主角才登场。我写这篇文章最重要的目的,就是要详细地介绍苹果商务(或者叫做苹果商务管理,Apple Business Manager)。因为我注意到苹果商务在国内用的人很少,介绍的文章少之又少(就连官网上的文档也不是很详细),而且19年10月之前在中国大陆是用不了的,所以我们是一点点摸着石头过河总结了一些经验。
苹果商务应用范围
苹果定义的通过苹果商务分发的应用类型:
- 定制应用
- 组织内部员工使用的应用
怎么好像把企业级应用的活儿给抢了,没错,我们公司的CEO私下和苹果中国的高层领导聊过,苹果后面可能会进一步收紧企业级应用,把合规合法的企业级应用逐步引导至苹果商务。虽然只是朋友间私下闲谈,但是可以看出苹果确实很重视苹果商务,特别是在大陆地区。
说到这里,不得不谈谈苹果对“定制应用”的定义。
这是之前我在公司内部技术分享时做的一页幻灯片,下面的英文是苹果官网中的原话。苹果还举了一些例子,方便大家理解定制应用:
定制应用互相之间相似度可能非常高,但是苹果不会因为这个问题拒绝通过应用审核!也就是江湖上所说的App Store 应用审核 4.3条款问题,因为应用相似度太高而无法通过审核的问题,大家不用担心。
另外,强烈建议大家到苹果商务分发的官方网页去看一下。
苹果商务中的参与者
苹果商务比较复杂的是,这种分发方式里面有3种角色,分别是开发者、苹果商务账号管理员、用户
。理解了这三者之间的关系非常重要。下面我先放一张在App Store
发布、安装应用的图示,这样好对比理解:
此时有两种角色,参与者的参与时间顺序自上而下,不同角色及其参与的工作有不同的颜色的方块与之对应。
开发者
在App Store Connect进行创建、上传、提交审核的工作,App审核通过后用户
就可以在App Store搜索安装了。
下面是通过苹果商务
进行分发的图示:
先大致浏览一下,左右两个角色工作基本没变,只是在其中两个步骤前面多了和苹果商务同色的圆圈标志,表示这两个步骤中的具体工作由于苹果商务的存在而和以往有些不同。另外,中间增加了苹果商务账号管理员相关的工作。
- 对于
开发者
来说,上架应用有些许不同,我们会在文章后面的苹果商务应用上架
章节详细讲解。 - 对于
苹果商务账号管理员
来说,需要在应用通过审核后在ABM(Apple Business Manager)批量购买App,然后将购买后的兑换码
下载下来。这里有了3个新概念:
2.1 苹果商务的账号。这种账号需要单独申请,我们会在文章后面的苹果商务账号申请
章节详细讲解。
2.2 批量购买。这里应用购买的价格就是开发者
上架应用时设置的价格。当然也可以是免费的,免费也需要购买,只不过价格是0。具体操作会在文章后面的苹果商务应用批量购买
章节详细讲解。
2.3 兑换码。所谓兑换码其实就是一段字母和数字组成的代码,比如:4RFFN69R6L66。 - 对于
用户
来说,因为定制应用和App Store中的应用可能非常相似,甚至有相同的名称和Logo,如果这些应用都能搜出来,App Store就会出现很多看起来一模一样的应用,会让用户无所适从,所以这些应用不会直接出现在App Store中。安装应用的方式变成了在iOS设备的App Store中输入兑换码。让用户去找到输兑换码的入口,然后再输入这么长的一大串字符,用户肯定会骂街。所以苹果非常贴心地加入了链接自动跳转App Store并自动兑换安装的功能,链接形如:https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/freeProductCodeWizard?code=4RFFN69R6L66。你应该已经注意到了,其实链接的前面是固定的,最后的参数就是兑换码。用户只要访问这个链接,即可一键安装应用,非常方便。
注意:兑换码被兑换后就会失效,所以要给到每个用户不同的兑换码,或者说要让每个用户访问不同的兑换链接。
苹果商务账号的持有者
理论上来说,应该是用户所在组织或者定制应用的客户。比如:
- 中国移动要为它的所有员工开发一个内部办公软件,此时开发者是中国移动,苹果商务账号持有者也是移动,用户是移动的员工。
- 中国移动想让腾讯给它的员工定制一个换过移动logo的微信,这时开发者是腾讯,苹果商务账号持有者是中国移动,用户是中国移动的员工。
- 中国移动想让腾讯定制一个电视盒上用的微信,这时开发者是腾讯,苹果商务账号持有者是中国移动,用户是买了中国移动电视盒的人。
理论上应该是这样,但是现实往往是(后两种情况下)中国移动不愿意申请账号,因为太麻烦,而且给腾讯钱了,给钱的就是大爷啊😂。所以实际上可能开发者账号和苹果商务账号都由开发者自己申请维护。但是必须搞清楚这三者角色的区别和每个角色要做的工作的区别!
苹果商务账号申请
申请者身份必须是组织,不接受独立个人身份申请。
申请者需要具有:邓白氏编码、AppleID、和公司相关的网站域名、和网站域名相同后缀的邮箱(比如jianshu.com是你的网站,你需要有一个类似“古川小朗@jianshu.com”的邮箱)。
账号申请和使用均免费。
AppleID申请不说了,如果不会申请,这篇文章不适合你的智力水平。
邓白氏码申请,也不说了,以我的智力水平申请不下来,大家网上自己查查吧。
填写申请
访问苹果商务注册网站 :
填写组织名称、邓白氏编码、公司电话号码、公司网站,选择正确的时区和语言。向下滚动页面,继续填入您的个人信息,包括名字、姓氏、工作电子邮箱、职务。其中工作电子邮件地址应该使用公司域名后缀地址,上面说过了。职务如实填写即可。 最后填写
验证联系人
信息,包括名字、姓氏、工作电子邮箱、职务职称。
苹果会在验证邓白氏编码、公司信息等通过后,致电您公司的座机(可能是申请邓白氏编码的座机,也可能是申请苹果商务时填写的座机),和验证联系人
通话,验证您是否有权代表公司进行此次账号申请和后续维护等工作。所以验证人应该填写公司的经理等管理者。点击右下方继续按钮。
电话验证
提交申请后,您的电子邮箱会收到一封苹果发送的确认邮件,点击邮件中的“查看当前审核状态”按钮,关注审核进展。一般 2-3 天,最长不超过 7 天,苹果工作人员会致电您公司的座机,并查找验证人
,和验证人通话。如果您公司的座机接听人员没有及时将电话转接给验证人,审核状态会显示电话验证异常。此时可以拨打苹果商务注册客服专线 400 603 3565,向客服人员说明未接到验证电话的情况,客服人员可以直接联系验证人或和验证人通话完成验证。
苹果和验证人通话时,可能会询问下列问题:
- 验证人姓名、职务(职务应该为 CEO、COO、IT 经理等管理者,普通员工不具备做验证人的权限)
- 正在申请苹果商务管理账号的员工,是否可以代表公司同意苹果的协议(如果回答不能,苹果会拒绝通过审核)
- 申请苹果商务管理账号的目的(可以回答:您公司的员工需要使用定制应用、其他公司为您的公司开发了定制应用等。如果回答作为开发者为其他公司开发并分发定制应用,苹果可能拒绝通过申请,并提示苹果商务账号应当由你的客户自己去申请。这个问题如果不明白,建议再回去仔细阅读一下
苹果商务中的参与者
章节)
创建管理式 AppleID
如果电话验证通过,苹果会向验证人、申请人的邮箱发送确认邮件,如下图所示:
此时只是通过了申请,还没有完成所有注册工作,请及时点击邮件中的“开始使用”按钮,
完后管理式 AppleID 创建工作。超过一周可能导致邮件中的按钮失效。点击开始使用按钮后,会跳转到下图所示的网页中:
填写该苹果商务管理账号的管理员信息,姓名、工作邮箱、密码、手机号码等信息。
注意:因为这里需要新创建一个“管理式 AppleID”,所以此处的邮箱不能填写提交申请时的 AppleID 或者其他已经存在的 AppleID,需要一个新的以公司网址为后缀的工作邮箱地址。
填好信息后点击继续。随后页面会跳转至输入短信和邮箱验证码的页面,根据提示填入验证码,并点击继续按钮。然后会出现下图所示的提示信息,此时耐心等待即可。
最后,页面会显示条款与条件,必须同意苹果的使用条款才能使用苹果商务管理账号。 勾选所有协议,点击右下方同意按钮。
至此,注册苹果商务管理账号结束。
查看组织 ID 和组织名
组织ID和组织有什么用?
这两个信息需要提供给应用开发者
,开发者在App Store Connect里设置给相应的应用,以确定某个苹果商务账号中可以查看到哪些应用。
首先登陆苹果商务管理网站,填写已经注册好的管理式 AppleID 和密码
,登陆。登陆成功点击“设置” – “注册信息”,进入下图所示页面:
注意:需要先为账号开启“自定 App”功能,刚刚注册好的账号默认没有开启该功能。上图中序号 3 右侧红框内如果未显示“已启用”,点击右侧按钮即可。
上图中序号 4 右侧红框内显示的就是组织 ID 和组织名。
苹果商务应用上架
上架苹果商务的应用和上架App Store的应用步骤基本一致,下面仅列出不同点供大家参考。
应用的Pricing and Availability页面中的Distribution for Business and Education选择项中,选择第三个,即非公开地在苹果商务管理中分发给指定组织,如下图所示:
组织ID和组织名填写即将购买该应用的Apple Business Manager (ABM)账号中的相应信息。本文上个章节已经提到过如何查看该信息。
- 准备发苹果商务的应用,不建议在App Store Connect中将应用的可用地区选择为所有国家和地区,因为苹果商务目前只在69个地区可用。这69个地区指的是苹果商务管理账号申请企业所在国家,比如19年10月份新增了中国大陆,开发者就可以将定制应用发布到中国大陆供大陆用户使用,如果上图中的组织ID和组织名还添加了某个美国的企业相关信息,那么中国大陆和美国用户就可以下载这个应用了。苹果商务可用地区
- 只有当一个应用从未通过应用审核时,才能选择苹果商务的分发方式。所以不能把已经上架了App Store的应用改为通过苹果商务分发。官方说明
- 无论定制 App 是否免费,首先都必须访问 App Store Connect 并签署《付费应用程序协议》,详见官方说明。否则无法选择上图红框中苹果商务的分发方式(按钮置灰)。具体协议签署方法如下 :
- 进入App Store Connect,点击协议、税务和银行业务。
- 查看“付费App”协议的状态,如果还没有接受过该协议,点击“查看并同意条款”。
- 查看协议,勾选同意,点击“同意”按钮。
- 填写银行账号、税务、联系人信息。
- 再次查看付费App协议状态,变为“🟢有效”状态就可以了。
应用审核通过后,相应的ABM账号中会自动出现该应用。此时,需要在ABM账号中批量购买下载兑换码,兑换码为Excel格式的文件。
苹果商务应用批量购买
当应用开发者填写了相应组织的名称、组织ID后,就可以在苹果商务中对某个定制应用进行批量购买动作了。批量购买应用后,用户才能下载安装应用。注意,从应用审核通过后到ABM账号中可以见到该应用,可能有数小时的延时。
- 选择许可类型:建议使用兑换码方式。选择“管理式”(MDM)也可以,但你得知道MDM(Mobile Device Manage)怎么用,这篇文章不细讲MDM,已经够长的了...
- 填写数量:单次兑换码购买量需要在1-25000之间。注意,同一件免费项目的订购数量每周不能超过25000份。如果想突破25000的限制,可以给苹果商务账号多增加一些子账号,每个子账号每周都可以买25000个兑换码。
- 点击获取按钮。
- 下载兑换码Excel文件:购买成功后,会在下方显示出刚刚购买的兑换码,点击右侧下载按钮即可。(购买成功后,可能下载按钮不会立刻显示,一般需要等待几分钟)
为了方便用户安装App,可以设计一个解析兑换码Excel文件内容的平台。让用户扫描二维码,然后将二维码中的地址重定向到某个兑换码链接地址。
FAQ
个人名义的Apple Developer Program账号能否上传定制应用?
能。只要满足上文提到的两个要求(应用从未“通过”过应用审核、已经签署《付费应用程序协议》),无论组织名义还是个人名义申请的苹果开发者账号,都可以通过苹果商务发布定制应用。同一个账号发布的定制应用是否有数量上限?
没有。苹果的答复很明确,只要定制应用通过了苹果App审核团队的审核,应用就可以使用,不存在应用数量上限。App升级后已有的兑换码是否失效,已下载的用户如何升级?
App升级后,之前购买的兑换码仍然有效,用户使用之前的下载码下载到的app是升级后的最新版本。
已经下载的用户可以通过App Store自动或手动升级(取决于用户的设置),具体方式和App Store下载的应用更新方式相同。同一个ABM账号中,苹果是否允许发布多个相似定制应用?
允许。已经测试过,可以通过应用审核。苹果商务方式发布的应用都能在哪些国家和地区进行下载?
只能在苹果商务管理账号申请公司的所在地国家或地区进行下载。比如某个应用发布到了中国移动集团的苹果商务管理账号中,那么这个应用只能在中国大陆进行下载(苹果会检测下载用户AppleID中填写的国家和地区是否设置为了中国大陆),即使在App Store Connect中将应用发布地区选择成了所有国家和地区,也只能在中国大陆下载。
[The End]