提审版本的应用必须是最终版本,并且包含了所有应用内容以及所有有效链接。应用在提交的时候需要清除掉所有占位符、无效地址和临时内容。请确保你的应用在提交审核之前经过充分测试并且没有Bug,如果你的应用需要登陆,需要包含一个合法的账户而且对应的后台服务也是正常有效的。如果你的应用包含应用内付费,确保他们是完整的,最新的,并且审核人员可以很容易找到。如果不可以,需要提供明确的解释为何不行。不要把应用程序审核当作软件测试服务,如果你的应用不完整或者存在明显的技术缺陷,它将直接被拒绝。
2.2 Beta版测试
您的应用程序的测试版本不应该上架到应用商店,请使用Testflight来代替。如果你的应用提交到Testflight Beta,那么这个应用已经准备好对外发布,并且符合应用审核条款。请注意,Testflight版本的应用不允许从测试人员当中获取任何利益,包括来自众筹的资金。你应该对测试人员提供明确的更新说明。请通过Testflight Beta测试说明了解更多信息。
2.3 应用内容的准确性
客户在下载你的应用的时候需要明确了解你的应用是什么,所以请确保你的应用描述、截图、预览视频始终是最新版本,并且能够准确反映你的应用。
2.3.1不要在你的应用当中包含任何隐藏和没有相关说明文档的功能。你的应用程序的功能必须让用户和审核人员了解清楚。如果这样的行为过分或者反复出现,你可能会被苹果从开发者身份当中除名。我们努力确保App Store是一个令人信赖的生态系统,并且期望每一个开发者也能够遵守这种要求。如果你没有信誉,我们不想和你合作。
2.3.2 如果你的应用程序包含了应用内付费功能,请确保你的应用程序的描述、截图和预览视频能够明确表明哪些功能、关卡、订阅内容等需要额外购买。
2.3.3 你的截图必须符合你的应用程序的实际内容,而不是标题艺术,登陆界面和闪屏界面。
2.3.4 预览视频是让用户快速了解你的应用以及应用用途的好方法。为了确保人们清楚地了解他们会在你的应用当中获取什么,预览视频必须从应用本身的运行效果之中捕捉。而Stickers(贴纸)和iMessage扩展需要用户在短信软件中才能体验。你可以通过添加解说或文本描述等来帮助解答视频本身无法解释清楚的内容。
2.3.5 你需要遵守App Store的类别定义,并且为你的应用选择最合适的类别。如果你选择的类别不符合你的应用,我们可能会帮助你改变应用类别。
2.3.6 你必须诚实的回答iTunes Connect上面提供的年龄分级的问题,从而你的应用可以良好的使用家长控制功能。如果你的应用年龄分级不正确,用户可能会对你的应用程序的行为表示十分意外,这也可能导致某些国家和地区的监管部门对你的应用分级不正确的问题开展调查。
2.3.7 选择一个独一无二的应用名称,并确保设置的关键词能准确描述你的应用。请不试图使用任何商标术语、流行应用的名字以及其他毫不相关的词语来戏弄系统。应用名称必须限制在50个字符之内,且其中不能包含和应用名称没有任何关系的术语或者描述。苹果可能随时修改这些不恰当的关键词。
2.3.8 你的应用内容应该适合所有的用户,所以一定要确保你的应用图标、截图和预览视频能够准确的反映你的应用。即使你的应用程序年龄分级高于4+,你的图标、截图和预览视频也必须符合4+的年龄分级。例如你的应用是一个游戏,并且具有暴力内容,你必须选择一个不反映死亡、枪决的截图放到应用商店当中。记住确保你的应用内容,包括应用名称和图标(小图标、大图标、Apple Watch图标等)是一致的从而防止用户感到迷惑。
2.3.9 开发商具有保证版权合法的责任,包括应用程序图标,截图,预览视频的版权。图标、截图和预览视频需要使用一个虚构的账户的信息,而不是一个真实的用户信息。
2.3.10 确保你的应用专注于iOS、Mac、Apple TV or Apple Watch,在应用或者元数据中不包含其他平台的名称、图标、图像,除非有特定的、被认可的互动功能。
2.4 硬件兼容性
2.4.1 为了确保人们可以尽可能充分的体验你的应用,在可能的情况下iPhone应用也可以完美支持iPad。我们鼓励您建立通用的应用,使得用户可以在不同的设备上使用。
2.4.2 你的应用需要高效的利用电量。应用程序不应该快速的消耗电池电量并且产生过多的热量,或者对用户的设备造成不必要的负担。
2.4.3 你的Apple TV应用可以在只有Siri遥控器或者游戏手柄的时候可以正常运行,但我们不反对你通过更多的外围设备增强你的应用功能的做法。如果你需要一个游戏控制器,请确保在游戏当中对这个游戏控制器提供明确的教程,从而让用户知道如何使用这个控制器。
2.4.4 应用程序不应该建议或者要求设备重新启动。
2.4.5 通过Mac App Store发布的应用还需要遵守额外的要求:
(i)它们必须适当的被沙盒化,而且遵守Mac OS文件系统文档。这些应用也必须通过对应的Mac OSAPI来修改其他应用的数据(例如书签、地址簿和日历)。
(ii)必须使用Xcode对应用进行打包,不允许包含第三方的安装程序。它们必须是自我包含的、单一文件的安装包,而且不能在共享的位置安装代码和解压资源。
(iii)在未经用户允许的情况下不允许自动启动或者开机启动,而且用户退出应用之后不允许在未经用户同意的情况下残留后台进程。应用不允许自动将图标放在Dock或者用户桌面。
(iv)应用程序不允许私自下载和安装其他应用,驱动,额外的代码,以及添加应用功能或者明显改变与审核版本的应用不同的应用工作方式的资源文件。
(v)应用程序不允许要求升级到root权限,或者使用setuid属性来升级权限。
(vi)这些应用运行的时候不允许弹出要求许可证的窗口,或者其他的显示方式来反盗版(应用商店允许付费并视为购买了正版授权)。
(vii)必须使用Mac App Store发布更新,其他方式不被允许。
(viii)应用程序仅在在当前版本的系统就可以运行,不允许使用可选安装的技术或者废弃过时的技术(例如Java, Rosetta等)。
(ix)所有的本地化版本必须包含在同一个应用程序包下。
2.5 软件要求
2.5.1 应用程序只能使用公共API,不允许使用私有API。
2.5.2 应用程序bundle当中需要是自包含的,不允许读写它们设计的容器之外的数据,并且不得下载、安装或执行代码,包括其他iOS,watchOS,macOS和tvOS的应用。
2.5.3 如果应用程序传播病毒、文件、计算机代码或者其他可能损坏操作系统和硬件的功能,包括消息推送和游戏中心,将被拒绝。如果这种行为十分恶劣而且反复出现,开发者可能会被苹果除名。
2.5.4 多任务的应用只能在预期目的下运行后台服务,例如网络电话、音频播放、定位服务、任务计划、本地通知等。如果你的应用程序使用了定位服务,需要提供一个明确的提醒告诉用户这么做会加快电量消耗。
2.5.5 我们会在IPv6网络上审核你的应用,所以如果你的应用程序无法使用IPv6协议,可能会被拒绝。
2.5.6 应用程序如果浏览网络,必须使用WebKit框架和WebKit Javascript标准。
2.5.7 使用蜂窝数据网络播放的视频如果超过10分钟,必须使用HTTP Live Streaming技术并且提供192kbps的码率选项。
2.5.8 改动用户桌面/home界面环境体验的应用,以及模拟多应用小工具使用体验的的应用将会被拒绝。
2.5.9 应用程序如果修改了标准开关的功能,例如音量上下键和响铃开关,或者其他原生用户界面元素和行为将会被拒绝。
2.5.10 应用程序在提交的时候不允许包含一个空的广告栏或者测试广告。
2.5.11 SiriKit
(i) 集成 SiriKit(Siri开发包) 的应用程序只能注册不需要其他应用即可处理完成的事件。例如,如果你的应用是一个主打膳食计划的应用,你就不应该注册“开始锻炼”这种事件,即使和一款健身应用共享了集成。
(ii) 确保plist中的词汇和短语适合于你的应用,并且应用已经注册的事件通过 SiriKit 可以正常工作。(iii) 尽可能以最直接的方式解决Siri的请求,不要在请求和执行之间插入广告或其他营销信息。当需要完成一个任务时,仅使用现有的间隙的UI(例如,让用户制定一种详细的锻炼形式)。