iOS 合规检测之苹果 App Store iOS 上架预审方案

导读:iOS 运用开发者在将自己的运用上架到苹果 App Store 的过程中,常常遇到因各种理由被苹果拒审的状况,一旦被拒,就需求花费不少时间来整改。苹果官方为 App 上架设定了《App Store 审理攻略》,旨在确保 App Store 上运用的质量,但一起上架审理也对希望发布自己运用的开发者形成不少困扰。本文将介绍审理被拒的危害、App Store 上架审理所面临的困难,并共享实践的拒审事例。

01 拒审的危害

App 提审后,苹果需求一些时间来处理,少则几天,多则十几天。一旦开发者提交的 App 审理被拒,在内部就要整改代码、从头验收测验,无疑添加了研制本钱和测验本钱。此外,开发者还要从头等候苹果提审排队,更糟的是,假设触犯了一些苹果较为注重的条款,苹果会延伸审理周期以便更细心地检查该 App,这严重延迟了版别过审时间,影响了项目的规划,支付许多时间本钱。

假设开发者的某个 App 被苹果拒审,影响的不只是这一款 App,该开发者账号以及相关账号下一切 App 都会被苹果检查是否存在类似问题,如有则将一同下架。在更为极点的状况下,App 由于一些重要条款接连被拒,可能会导致开发者账号被封禁。

02 过审面临的困难


开发者上架 App Store 之所以遇到阻挠,有以下几点重要因素:严厉而凌乱的审理标准、回复的不透明、半自动化审理。

严厉而凌乱的审理标准

苹果于 2010 年揭露了审理 App 所遵从的标准《App Store 审理攻略》,并且跟着时间推移不断更新该标准。标准中包含安全、性能、商务、设计、法令五大方面,要求细致而严厉。开发者假设没有对标准进行深入了解,或许没有及时对标准进行跟进,很容易无意中违反某些条款,导致审理被拒。

回复的不透明

假设 App 被拒,苹果会给出拒审回复,说明 App 由于违反哪一条款而被拒绝,但是苹果的回复往往不会特别具体透明,开发者常常不知道自己的 App 到底是哪个当地违反了苹果所征引的条款。因而,许多被拒审的开发者只能通过猜想违规处、试探性改正并重审的办法来处理。

半自动化审理

面临海量的 App 审理需求,苹果的审理人力显得捉襟见肘,因而苹果选用人审与机审结合的审理办法,只有机审通过,才会进入人审的环节。由于机审的标准相对人审更为统一,所以要尽量在提交审理前确保机审能通过,假设由于机审被拒,则会无谓地糟蹋开发者的时间。

03 拒审事例

私有 API

苹果将自身体系的 API 划分为公共 API 和私有 API,其间公共 API 可供 App 开发者运用,私有 API 则只答应苹果运用,假设 App 开发者运用私有 API,那么该 App 会被拒绝上架。例如,有些开发者希望通过以下代码获得手机上已装置的运用列表:


苹果的《App Store 审理攻略》第 2.5.1 条规矩:App 仅可运用公共 API,并且有必要在当前发布的 OS 上工作。由于 LSApplicationWorkspace 类中的 allInstalledApplications 办法归于私有 API,该 App 遭到了苹果拒审。苹果没有揭露私有 API 的规模,客户难以确知自身 App 存在哪些私有 API,易盾的上架预审工具可自动对私有 API 进行扫描,帮忙客户定位。

第三方支付

App 开发者常需求在 App 中供应付费购买的项目,因而需求接入第三方支付平台。例如,许多手机游戏设置了付费的道具,有的开发者在完结道具购买时,接入第三方支付,成果却被苹果拒绝上架 App Store。

在此事例中,App 遭到拒绝的原因在于苹果供应了“App 内购买”机制(简称内购),并在《App Store 审理攻略》第 3.1.1 条规矩:假设你想要在 App 内解锁特性或功用 (解锁办法有:订阅、游戏内货币、游戏关卡、优质内容的拜访权限或解锁完整版等),则有必要运用 App 内购买项目。一起,第 3.1.3(e) 条还规矩:假设 App 答应用户购买将在 App 之外运用的实体产品或服务,则有必要运用 App 内购买项目以外的购买办法来收取相应金钱,如 Apple Pay 或传统的信用卡进口。这些规矩意味着,在 iOS App 中购买虚拟物品有必要通过内购机制进行,不答应运用第三方支付,而购买实体物品则有必要选用第三方支付。易盾的专业上架预审团队可对第三方支付的运用进行全面排查,确保 App 符合苹果上架规矩。

热更新

热更新是一种代码修补技术,开发者通过热更新可以到达无需发布新版别就能对 App 功用进行更新的作用。热更新技术在安卓体系非常盛行,有的开发者在 iOS 上想运用这一技术来完结“实时批改 bug”,由于有时一些 bug 等到下一次新版别发布再批改就太慢了,而热更新则可以实时从服务器拉取最新版别的代码工作。然而,这一行为却导致 App 被苹果方面拒绝上架。

苹果在《App Store 审理攻略》第 2.5.2 条规矩:App 应自包含在自己的套装中,不得在指定容器规模外读取或写入数据,也不得下载、装置或执行会引入或更改 App 特性或功用的代码,包含其他 App。苹果设置该条款是为了防止 App 在审理期间和实践上架今后下载拉取不同的代码,然后导致审理时无法看到 App 的“真面目”,热更新技术恰恰归于该条款明令禁止的规模。易盾的上架预审团队结合易盾上架预审工具自动化检测,可排查 App 是否存在热更新,并帮忙用户处理相关问题。

04 结语


苹果对 App Store 上架要求严厉,许多 iOS App 开发者由于对繁杂的上架审理标准不行了解而在审理时遇到阻挠,为防止上架过程中消耗不必要的时间,可以在上架前挑选专业团队来对 App 进行上架预审,削减 App 上架被拒的危险。