2、 性能
2.1 App 完成度
提交至 App Review 的申请 (包括可供预订的 app) 应为该 app 的最终版本,并应包含所有必要的元数据和有效网址。所有占位符文本、空白网站和其他临时内容应在提交前移除。在提交 app 之前,请务必在设备上对 app 的错误和稳定性进行测试;如果您的 app 需要登录,请提供演示帐户信息 (并打开您的后台服务!)。如果您在 app 中提供了 App 内购买项目,请确保审核人员能够看到这些内容,并确保这些内容处于完整且最新的状态,否则请在审核备注中说明相关原因。请不要将 App Review 视作软件测试服务。我们将拒绝不完整的 app 套装以及会出现崩溃或存在明显技术问题的二进制文件。
2.2 Beta 版测试
App 的演示版、beta 版和试用版不适合出现在 App Store 中,请改用 TestFlight。所有通过 TestFlight 提交以进行测试发布的 app 都应旨在公开发布,并应遵循“App Review 准则”。请注意,使用 TestFlight 的 app 不得分发给测试者用以换取任何类型的报酬,包括作为众筹资金的奖励。对于 beta 版 app 的大幅更新应先提交至 TestFlight App Review 团队,然后再分发给您的测试者。欲了解更多信息,请访问“TestFlight Beta Testing”。
2.3 准确的元数据
客户应该知道他们在下载或购买您的 app 时会得到什么,所以请确保 app 的描述、屏幕快照和预览能够准确反映 app 的核心体验,并记得不断更新,以便保持与新版本相应的最新状态。
2.3.1 请勿在 app 中包含未记录的功能或隐藏功能;不管是对于最终用户还是 App Review 团队,app 功能都应清晰可见。同样,您不应该在 App Store 或离线情况下,营销您的 app 中实际并不提供的内容或服务 (例如基于 iOS 的病毒和恶意软件扫描工具)。如果出现恶劣或屡教不改的行为,则可能会从 Apple Developer Program 中除名。我们正努力将 App Store 打造成值得信赖的生态系统,并希望我们的 app 开发者也能如此;如果您不诚实以待,我们之间就不会有任何业务往来。
2.3.2 如果您的 app 包含 App 内购买项目,请确保 app 的描述、屏幕快照和预览清楚地指明是否有需要另行购买的精选项目、关卡和订阅等。如果您决定在 App Store 中推广 App 内购买项目,请确保App 内购买项目的显示名称、屏幕快照和描述适合所有公众,并遵循 Promoting Your In-App Purchases 中的规定;此外,您的 app 也应正确使用 SKPaymentTransactionObserver method,以便客户可以在 app 内无缝完成购买。
2.3.3 屏幕快照应展示 app 的使用情况,而非仅显示标题封面、登录页面或初始屏幕。屏幕快照还可以包括文本及图像说明 (例如:演示输入机制,如触控点或 Apple Pencil 的动画),并展示设备上的扩展功能,如 Touch Bar。
2.3.4 预览是让客户了解 app 外观和功能的好方法。为了确保客户理解他们将在 app 中获得的体验,预览只可使用从 app 中捕获的视频屏幕。Stickers 和 iMessage 扩展可以将用户体验展示在“信息”app 中。您也可以添加旁白和视频,或添加文本说明,以帮助说明任何无法仅通过视频进行阐明的内容。
2.3.5 请为 app 选择最适合的类别,并在需要帮助时参考“App Store Category Definitions”。如果选择的类别与实际情况相差较远,我们可能会更改 app 的类别。
2.3.6 请在 iTunes Connect 中诚实地回答年龄段分级问题,以使 app 与家长控制功能的分级保持一致。如果 app 分级有误,客户在获得 app 时可能会感到诧异,或促使政府监管部门展开相应调查。
2.3.7 请选择一个独一无二的 app 名称,指定能够准确描述 app 的关键词,不要试图用商标术语、流行 app 的名称或其他不相关的短语来包装任何元数据,以此欺骗系统。App 名称必须限制在 30 个字符以内,且不得包含不属于 app 名称的价格、词语或描述。App 副标题是详细介绍 app 背景信息的绝佳之处;副标题必须遵循我们的标准元数据规则,且不得包含不当内容、提及其他 app 或做出无法证实的产品声明。Apple 可能会随时修改不合适的关键词。
2.3.8 元数据应适合所有受众,所以请确保您的 app 和 App 内购买项目的相关图标、屏幕快照和预览保持在 4+ 年龄分级;即使您的 app 分级更高,也应如此。例如,如果您的 app 是包含暴力的游戏,请勿选择包含惨烈的死亡或用枪瞄准特定角色的图像。只有“儿童类别”的 app 才能在元数据中使用类似“适合幼儿”和“适合儿童”等词语。请务必确保包括 app 名称和图标 (小图标、大图标、Apple Watch app 和备用图标等) 在内的元数据彼此相似,以免引起困惑。
2.3.9 您应负责确保有权使用 app 图标、屏幕快照和预览中的所有材料,并应显示虚构的帐户信息,而非真实个人的数据。
2.3.10 请确保您的 app 注重 iOS、Mac、Apple TV 或 Apple Watch 体验,并且不在 app 或元数据中包含其他移动平台的名称、图标或图像,除非存在已获批的特定互动功能。
2.3.11 您提交至 App Store 可供预订的 app 必须为完整且可发布的状态。请确保您最终发布的 app 与其可供预订状态时所宣传的内容没有实质性差异。如果您对该 app 进行了重大更改 (例如更改其商业模式),则应重新开始其预订销售。
2.4 硬件兼容性
(i) 这些 app 必须妥当地沙盒化,并遵循“macOS File System Documentation”。另外,这些 app 只应使用相应的 macOS API 来修改其他 app 存储的用户数据 (如书签、“地址簿”或“日历”条目)。
(ii) 这些 app 必须使用 Xcode 中提供的技术来进行打包和提交;不允许使用第三方安装器。另外,这些 app 必须是单个的自包含 app 安装包,不能将代码或资源安装在共享位置。
(iii) 这些 app 不得自动启动或者在启动时包含其他自动运行的代码,不得在未经同意的情况下登录,也不得大量生成在用户退出 app 后仍在未经同意的情况下继续运行的进程。这些 app 不得将图标自动添加到 Dock 中,或在用户桌面上留下快捷方式。
(iv) 这些 app 不得下载或安装独立的 app、kext、额外代码或资源,以向我们在审核过程中看到的 app 添加功能,或进行大幅更改。
(v) 这些 app 不得申请升级至 root 特权或使用 setuid 属性。
(vi) 这些 app 不得在启动时显示许可证屏幕、需要使用许可证密匙或实施自己的拷贝保护措施。
(vii) 这些 app 必须使用 Mac App Store 分发更新;不允许使用其他更新机制。
(viii) 这些 app 应在当前发布的 OS 上运行,不得使用已停用或选装的技术 (如 Java、Rosetta)。
(ix) 这些 app 必须在单个 app 套装内包含所有的语言和本地化支持。
2.4.1 为了确保用户能够充分利用您的 app,iPhone app 应尽量能在 iPad 上运行。我们鼓励您考虑开发通用 app,这样客户就可以在所有设备上加以使用。进一步了解 Universal apps。
2.4.2 通过设计,使 app 节省能耗。App 不应快速耗尽电池电能、产生过多的热量或对设备资源造成不必要的负担。
2.4.3 对于 Apple TV app,应确保用户无需使用除 Siri Remote 或第三方游戏控制器之外的硬件输入,但您可以随意提供增强功能供连接其他外围设备时使用。如果需要用户配备游戏控制器,请务必在元数据中加以明确说明,以便用户知晓他们需要额外的设备才能玩游戏。
2.4.4 App 不得建议或要求重新启动设备。
2.4.5 对于通过 Mac App Store 分发的 app,还有几个额外要求需要您牢记在心:
2.5 软件要求
(i) 集成 SiriKit 的 app 只能登记无需其他 app 支持便可处理的意图,而且该意图应当与用户对所述功能的预期相符。例如,如果您的 app 属于膳食计划 app,则不应融入开始体能训练的意图,即使该 app 共享了与健身 app 的集成也不可以。
(ii) 确保 plist 中的词汇和短语与您的 app 及其所登记意图的 SiriKit 功能相符。别名必须与您的 app 或公司名称直接相关,不得使用通用术语或者包含第三方 app 名称或服务。
(iii) 以最直接的方式解析 Siri 请求,不要在请求与实现之间插入任何广告或其他市场营销信息。只有在完成相关任务需要时 (例如让用户指定特定类型的体能训练时),才可以显示插页式用户界面。
2.5.1 App 只允许使用公共 API,并且必须在当前发布的操作系统上运行。进一步了解 public APIs. 及时更新您的 app,在未来的操作系统版本中不再支持的任何过时功能、框架或技术皆应被淘汰。App 使用的 API 和框架应该是为了实现预期用途,并在 app 描述中说明集成详情。例如,HomeKit 框架应提供家居自动化服务;而HealthKit 则应该用于保持健康和健身目的,并集成在“健康”app 中。
2.5.2 App 应自包含在其套装中,不得在指定容器范围外读取或写入数据,也不得下载、安装或执行代码,包括其他 app。仅在特殊情况下,用于教授、开发或允许学生测试可执行代码的教育类 app 可以下载所提供的代码,但这类代码不得用于其他用途。这类 app 必须开放 app 提供的源代码,让客户可以完全查看和编辑这些源代码。
2.5.3 如果 app 传输的病毒、文件、计算机代码或程序会对操作系统和/或硬件功能 (包括推送通知和 Game Center) 的正常运行造成负面影响或导致其中断,则该 app 会被拒绝。屡教不改或恶劣的违规行为会导致开发者从 Apple Developer Program 中被除名。
2.5.4 多任务处理 app 只允许在实现预期用途时使用后台服务:VoIP、音频播放、地理位置、任务完成记录和本地通知等。如果 app 使用定位后台模式,请提醒用户,这么做会大幅缩短电池使用时间。
2.5.5 我们将在 IPv6 网络上进行审核。如果您的 app 无法与 IPv6 寻址功能兼容,则可能无法通过审核。
2.5.6 如果 app 会浏览网页,则必须使用相应的 WebKit 框架和 WebKit Javascript。
2.5.7 基于蜂窝移动网络且超过 10 分钟的视频流内容必须使用 HTTP Live Streaming,并包含一个基准 192 kbps HTTP Live Stream。
2.5.8 如果 app 会创建替代的桌面/主屏幕环境,或者模拟多 app 插件体验,则该 app 会遭到拒绝。
2.5.9 如果 app 会改变或停用标准开关 (如调高/调低音量和铃声/静音开关) 的功能,或者改变或停用其他的原生用户界面元素或行为,则该 app 会遭到拒绝。例如,app 不应屏蔽转向其他 app 的链接,或用户希望以某种特定方式运行的功能。进一步了解如何正确处理链接。
2.5.10 不得提交包含空白广告横幅或测试广告的 app。
2.5.11 SiriKit
2.5.12 利用 CallKit 或包含 SMS Fraud 扩展的 app 应该只拦截已确认用于发送垃圾信息的电话号码。具有通话、短信或彩信拦截功能或垃圾信息识别功能的 app 必须在营销文本中清楚标识这些功能,并且说明归入拦截列表和垃圾信息列表的标准。通过这些工具获得的数据不得用于与运行或改进您的 app 或扩展没有直接关联的任何其他目的 (例如,不得出于跟踪或创建用户资料等目的来使用、共享或销售这些数据)。
2.5.13 使用人脸识别进行帐户验证的 app 必须使用 LocalAuthentication (而非 ARKit 或其他人脸识别技术),且必须对未满 13 岁的用户使用备用身份验证方式。
扫描二维码
程序员编程王