WWDC 2017 之后 App Store 审核指南的几个重要变化

聊一聊近日更新的 App Store 审核指南的几个重要变化。关于微信小程序,关于公众号打赏,都有了答案。

  • 禁止 App 自己引导用户打开 App Store 给 App 评分,因为现在有系统 API 支持这一行为了,在 App 内就能直接完成 review。

    Use the provided API to prompt users to review your app; this functionality allows customers to provide an App Store rating and review without the inconvenience of leaving your app, and we will disallow custom review prompts.

  • App 的名字长度限制从原来的 50 个字符缩短到 30 个字符,且名字不应该包含价格。App 的副标题更适合用来介绍 App,但副标题不应该有指向其他 App 的内容。

    这个可能是出于打击关键词排名刷榜的考虑。

  • App 只能使用当前最新系统版本的 Public API,保持 App 的更新确保废弃的 API 被移除。

    更严格了,以前没有对代码里 deprecated api 的使用作规定。这条更像是建议而非强制规定,因为不使用某些旧的 API 的话老系统可能无法正常运行 App 了。

    2.5.1 Apps may only use public APIs and must run on the currently shipping OS. Learn more about public APIs. Keep your apps up-to-date and make sure you phase out any deprecated features, frameworks or technologies that will no longer be supported in future versions of an OS.

  • 敲黑板,划重点了:

    In-App Purchase 的规则里新加入了一句话,App 应该使用 IAP 购买的货币让用户给数字内容的提供者给小费。

    这一句话结束了关于微信公众号打赏问题的争论。

    群众:审核规则只说解锁功能,打赏不属于解锁功能,强制走 IAP 不合理。

    Apple:嗯,有道理,那我现在加上了。

    If you want to unlock features or functionality within your app, (by way of example: subscriptions, in-game currencies, game levels, access to premium content, or unlocking a full version), you must use in-app purchase. Apps may use in-app purchase currencies to enable customers to “tip” digital content providers in the app. Apps may not include buttons, external links, or other calls to action that direct customers to purchasing mechanisms other than IAP.

  • 如果是使用商业模板创建的 App 或者是由自动生成服务生成的 App,会被拒绝。

    4.2.6 Apps created from a commercialized template or app generation service will be rejected.

  • 又要划重点了:

    新加入了一条关于 App 内运行第三方程序的规则,看起来是官宣微信小程序的合规性。

    有几个地方需要注意的:App 必须使用 WebKit 和 JavaScript Core 来运行第三方程序,那么就意味着只可能是 Web 程序,同时容器 App 不能把系统的原生接口暴露给第三方程序;第三方程序的开发者也必须是 Apple Developer。

    4.7 Third-Party Software Apps may contain or run code provided by third party developers (e.g. HTML5-based games), as long as the code is not offered in a store or store-like interface, and provided that the software (1) is free or purchased using in-app purchase; (2) only uses capabilities available in a standard WebKit view; your app must use WebKit and JavaScript Core to run third party software and should not attempt to extend or expose native platform APIs to third party software; (3) is offered by developers that have joined the Apple Developer Program and signed the Apple Developer Program License Agreement; and (4) adheres to the terms of these App Review Guidelines (e.g. does not include objectionable content; uses IAP to unlock features and functionality). You must provide an index of third party software and metadata available in your app upon request.

  • App 必须向用户说清楚申请了哪些权限(位置、联系人、日历等),以及用户不给予权限的情况下什么功能无法工作。

    这条规定有可能解决大家经常骂的某些 App 不给权限就直接闪退的问题。

    Your app description should let people know what types of access (e.g. location, contacts, calendar, etc.) are requested by your app, and what aspects of the app won’t work if the user doesn’t grant permission.

  • App 和 Extension(包括第三方键盘),不应该包含 Apple emoji.

    没理解错的话,第三方键盘里不能直接输入系统的 emoji 表情了。我觉得这条略不合理,难道我想发表情时还必须得专门切换到系统的 emoji 键盘?

    Apps and extensions, including third party keyboards and Sticker packs, may not include Apple emoji.