App Store那些年踩过的坑汇总(附案例) (大家一起来维护)
本文档适用于项目经理、产品经理、iOS开发人员、提审运营人员、iOS测试人员、UI设计人员阅读和掌握,为了节省大家的学习时间,我尽可能根据公司的业务情况进行了不相关的删减,同时也保留了完整版,感兴趣的可以戳这里:App Store审核指南总结(附案例)(完整版)

简介

如果您试图欺骗系统 (例如,试图在审核流程中弄虚作假,窃取用户数据,抄袭其他开发者的作品,操纵评分或 App Store 上的发现方法),我们会从商店中移除您的 app,并将您从 Developer Program 中除名。

  1. 项目版本:趣推 某个版本
  2. 被拒概要:直接被封了开发者账号
  3. 解决方法: /
  4. 总结:当时是在应用内做了好评奖励活动,用户提供好评截图即可赠送一定的金币,包括在公众号等其他地方发起这样的活动都有很大的被举报或被封号的风险。运营同学切记不要做这样的好评奖励或刷好评活动,产品同学切记不要在应用内设计引导用户做好评任务得积分的类似活动。

提交之前

请确保:

  • 测试 app 是否会发生崩溃、是否存在错误
  • 确保所有 app 信息及元数据完整且正确
  • 更新您的联系信息,以便 App Review 团队在需要时与您取得联系
  • 提供有效的演示帐户和登录信息,以及审核 app 时所需的任何其他硬件或资源 (例如,登录凭证或示例二维码)
  • 启用后台服务,以使其在审核期间处于活动和可用状态
  • 在 App Review 备注中附上与非明显功能及 App 内购买项目相关的详细说明,包括支持文稿 (如适用)。
  • 检查 app 是否遵循了其他文稿中的相关指南,如:

开发指南

设计指南

品牌和营销指南

  • 营销资源和识别标志指南
  • Apple Pay 营销准则
  • “添加到 Apple 钱包”指南
  • Apple 商标及版权使用准则 (英文)

    1.1 令人反感的内容

    App 不应包含具有攻击性、不顾及他人感受、令人不安、惹人厌恶、低俗不堪或只是让人感到毛骨悚然的内容。

    1. 项目版本:逗拍 某个版本
    2. 被拒概要:逗比:属于一种令人反感的词汇,这些内容必须符合4+的评级,以防止4岁以下的在app store看到并购买到该应用。
    3. 解决方法:修改文案内容
    4. 总结:关于令人反感的内容苹果并没有给出详细的标准,但是官方给了这样的一句话:如果我们认为 app 的任何内容或行为超出了可接受的范围,我们将拒绝该 App。您可能会问,这个可接受的范围是什么?套用最高法院大法官的一句话:“当我看到的时候,我就知道了”。而且,我们相信,当您超出这个范围时,您自己也会意识到。

    1.2 用户生成的内容
    对于包含用户生成内容的 App,有特定的难题需要解决,比如知识产权侵权、匿名欺凌等。为了避免滥用,包含用户生成内容或社交网络服务的 app 必须满足以下条件:

  • 采用相应的方法来过滤令人反感的内容,以免这些内容在 app 中发布

  • 制定一个机制,以举报攻击性内容并在出现问题时及时作出回应
  • 若用户发布攻击性内容,可以取消其使用服务的资格
  • 公布联系信息,以便用户与您联系
    1. 项目版本:趣推 1.0.0
    2. 被拒概要:虽然您的应用程序包含标记机制(举报),但它不包含用户阻止机制(黑名单/拉黑)。趣推发现栏的运营账号发的内容被误认为是用户上传的内容,苹果认为该内容除了有举报功能,还要有可以拉黑的功能,用户拉黑后看不到不合适的内容。模板也要有同样的功能。举报和不感兴趣(选择不感兴趣后会自动从客户端不显示)
    1. 项目版本:逗拍 7.0.0
    2. 被拒概要:逗拍具体模板详情页面,点击右上角,需要有举报和不感兴趣功能
    1. 总结:包含用户生成内容或社交网络服务的 app 必须满足以下条件:对ugc内容有过滤机制、审核机制、有举报机制和处理举报的机制、有禁用违规用户的措施。(我们当时提交审核还提交了后台机审和人工审核的演示视频,已表明我们具备此能力)

    2.1 App 完成度

    提交至 App Review 的申请 (包括可供预订的 app) 应为该 app 的最终版本,并应包含所有必要的元数据和有效网址。所有占位符文本、空白网站和其他临时内容应在提交前移除。在提交 app 之前,请务必在设备上对 app 的错误和稳定性进行测试;如果您的 app 需要登录,请提供演示帐户信息 (并打开您的后台服务!)。如果您在 app 中提供了 App 内购买项目,请确保审核人员能够看到这些内容,并确保这些内容处于完整且最新的状态,否则请在审核备注中说明相关原因。请不要将 App Review 视作软件测试服务。我们将拒绝不完整的 app 套装以及会出现崩溃或存在明显技术问题的二进制文件。
    1. 项目版本: 快字幕 1.0.0
    2. 被拒概要: 没有看到App内购项目
    3. 解决方法: 重新提交
    4. 总结: 内购商品记得跟包一起提交审核
    1. 项目版本: 趣推 4.0.0
    2. 被拒概要: VIP页面审核人员打开为空白。您的应用或其元数据似乎不包含最终内容。 您的应用不得包含占位符或不完整信息。 例如,应用说明字段中包含“lorem ipsum”文字的应用将被拒绝。 同样,具有占位符屏幕截图的应用程序(例如“即将推出的屏幕截图”)将被拒绝。
    3. 解决方法: 优化VIP页面在境外的访问、修改应用截图去掉即将推出的字样
    4. 总结:应在Wi-Fi环境下在最新版iOSiPad上运行并查看应用,测试应该用平板也测试一遍整体的流程,模拟苹果审核人员在美国的网络环境测试,防止出现不应该出现的小问题。
    1. 项目版本: DOUPAI 1.0.0
    2. 被拒概要: Wi-Fi运行iOS 12.1.1iPad上查看时,您的应用中发现Facebook登录尚未配置。
    3. 解决方法: facebook开发者后台开启正式模式
    4. 总结: 提交审核前要充分的进行测试,要多站在你是审核人员的角度来思考这样做是否合理。

    2.2 Beta 测试

    App 的演示版、Beta 版和试用版不适合出现在 App Store 中 - 请使用 TestFlight。所有通过 TestFlight 提交以进行测试发布的 app 都应以公开发布为目的,并应遵循 App Review 准则。请注意,使用 TestFlight 的 app 不得分发给测试者用以换取任何类型的报酬,包括作为众筹资金的奖励。对于 beta 版 app 的大幅更新应先提交至 TestFlight App Review 团队,然后再分发给您的测试者。欲了解更多信息,请访问“TestFlight Beta 测试”。
    1. 项目版本: ElfWish 1.4.0
    2. 被拒概要: 给苹果的测试账号登录进去后看到了测试正式环境的配置按钮!您的应用似乎是具有有限功能集的预发布,测试或试用版。 为演示或试用目的而创建的应用程序不适用于App Store。要解决此问题,请完成,删除或完全配置任何部分实现的功能。 此外,在您的应用说明,应用图标,屏幕截图,预览,发行说明和二进制文件中删除对“演示”,“试用”,“测试版”或“测试”的所有引用。
    App Store那些年踩过的坑汇总(附案例) - 图1
    1. 解决方法: 重新提供登录账号,去除测试身份
    2. 总结: 提交审核前,使用演示账号登录,模拟苹果审核人员的角色进行检查。

    2.3 准确的元数据

    客户应该知道他们在下载或购买您的 app 时会得到什么,所以请确保 app 的描述、截屏和预览能够准确反映 app 的核心体验,并记得不断更新,以便保持与新版本相应的最新状态。批准后进行重大概念变更,含有不经审核也可更改App功能跟开发者宣传不符的程序将会被拒绝。
    1. 项目版本: 逗拍 2.3.0
    2. 被拒概要: 批准后进行重大概念变更,含有不经审核也可更改App功能跟开发者宣传不符的程序将会被拒绝。
    3. 总结: 当时逗拍做了隐藏开关,给苹果审核人员展示的是一套显示,审核通过后又展示的是另外一套显示,后续合规化发展,避免这样的错再一次去犯。
    1. 项目版本: Videoboard 1.0.0
    2. 被拒概要: 我们无法找到您的元数据中描述的某些功能, app 的描述、屏幕快照和预览保持与新版本相应的最新状态。
    3. 解决方法: videoboard的应用描述里写着提供200+的模板,但实际上刚上线的时候没有多少个模板,描述有点不符,因此需要修改并优化文案,尽可能客观真实。
    4. 总结: app的描述、应用截图和预览视频应当保持与新版本的最新状态,并且客观准确表现出app的核心体验或功能。
    2.3.1 请勿在 app 中包含隐藏、休眠或未记录的功能;不管是对于终端用户还是 App Review 团队,app 功能都应清晰可见。所有新的特性、功能和产品变更内容都必须在 App Store Connect 的“审核备注”部分中予以详细描述 (笼统的描述会导致 app 被拒绝),并且可供审核。同样,您不应该在 App Store 或离线情况下,营销您的 app 中实际并不提供的内容或服务 (例如基于 iOS 的病毒和恶意软件扫描工具)。如果出现恶劣或屡教不改的行为,则可能会从 Apple Developer Program 中除名。我们正努力将 App Store 打造成值得信赖的生态系统,并希望我们的 App 开发者也能如此;如果您不诚实以待,我们之间就不会有任何业务往来。
    1. 项目版本: 快字幕 1.0.0
    2. 被拒概要: 我们发现您的应用包含隐藏功能
    3. 解决方法: 升级微信sdk(不含支付功能)、去除开通会员后弹出进会员群加微信二维码、联系客服的跳转只有安装微信情况下才显示出来(苹果审核人员的ipad是不会安装微信来进行审核应用的)
    4. 总结: 涉及虚拟商品的苹果应用,代码中不能出现任何给其他第三方支付(微信、支付宝)相关的代码。
    1. 项目版本: 字说 2.3.0
    2. 被拒概要: 我们发现您的应用程序包含模糊代码,选择器修改或旨在通过在批准App Store后更改此应用程序概念来破坏App Review流程的功能。
    3. 解决方法: 被拒多次总结出原因是百度语音合成sdk含有敏感代码,只能对第三方sdk做一些调整。
    4. 总结: 一般第三方SDK带来的影响很难避免,但是我们可以尽量使用大厂的SDK,不要使用很小众的SDK
    ``` 项目版本: 逗拍 7.0.0、7.2.0、7.3.2、7.4.0 被拒概要: 我们发现您的应用包含隐藏功能。具体来说,删除所有代码混淆和选择器修改或在重新提交审核之前详细说明其包含的目的是适当的。 7.0.0版本 请去掉所有隐藏的功能 7.3.2版本 删除任何和所有第三方支付集成(包括外部支付框架,SDK,如微信支付或应用程序中的外部网页视图中的付款)是适当的 7.3.2版本 删除任何和所有第三方支付集成(包括应用程序中的外部webview内的付款,例如此应用程序的DPPayWebViewController类)是适当的。 7.4.0版本 我们发现您的应用包含隐藏功能。具体来说,在重新提交审核之前,删除所有第三方付款集成,包括外部付款框架,SDK(如微信支付)或应用程序中外部Web视图中的付款,将是适当的。我们期待着您的修订稿,此外,我们发现了混淆的方法,例如:-[DPCCdObjectfref dfdppofdfdfrsdff]-[DPCCdObjectfref dfpdpdfofdfrf]-[DPCCdObjectfref dppdfofdfrf]-[DPCCdObjectfref dppofdfrf]-[DPCCdObjectfref flddftppofdfrf]要继续审阅,应删除隐藏的功能和混淆的代码,然后重新提交以进行审阅。 解决方法: 这次被拒的历史是相当的残酷,差不多耗费了一年时间才提交成功(账号被封重新申请账号的时间、每次被拒被延长审核时间的惩罚措施、每次被拒不会告诉你具体什么隐藏功能),最后是花了挺长时间排查和一次次的提交审核,才上线。
  1. 帮助中心第一条疑似引导微信支付(已去除)
  2. 联系客服页面二维码疑似引导微信支付(已去除)
  3. 微信公众号H5充值页疑似外部支付框架(已去除)
  4. 购买协议第4条疑似引导微信支付(已去除)
  5. 模板封面有支付、红包类型的下架,个别模板有带外部支付的第三方合作H5跳转广告进行下架
  6. 代码中包含支付(alipay、wxpay)、隐藏、混淆(无意义的类和方法名)相关的敏感字段和代码全部进行排查去除。 总结: 要铭记不要有隐藏功能(审核人员审核时看不到的一些功能却在审核通过后展示给用户,这样的操作是风险极大的)或代码中不要做混淆(加入垃圾代码或苹果审核人员看不懂的代码),虚拟内购应用不要植入任何第三方支付相关的sdk或代码。

    1. **2.3.3** 截屏应展示 app 的使用情况,而非仅显示标题封面、登录页面或初始屏幕。截屏还可以包括文本及图像说明 (例如:演示输入机制,如触控点或 Apple Pencil 的动画),并展示设备上的扩展功能,如触控栏。

    项目版本: 趣推 3.2.0 被拒概要: 我们注意到您的屏幕截图无法充分反映您正在使用的应用。具体来说,您的6.5英寸iPhone屏幕截图不会在正确的设备框架中显示应用程序。确保应用程序UI和产品图像与App Store Connect中的相应设备类型匹配。 解决方法: 修改应用截图

    1. ![](https://cdn.nlark.com/yuque/0/2020/png/449231/1609380192001-80159982-a22c-43e7-87fa-293c4be6295c.png#align=left&display=inline&height=825&originHeight=825&originWidth=819&size=0&status=done&style=none&width=819)

    总结: 6.5 英寸(iPhone XS Max、iPhone XR)的应用截图的外观和顶部状态栏不应使用5.5 英寸(iPhone 6s Plus、iPhone 7 Plus、iPhone 8 Plus)的外观或状态栏。

    1. ```
    2. 项目版本: DOUPAI 1.0.0
    3. 被拒概要: 我们注意到您的屏幕截图无法充分反映您正在使用的应用。
    4. 解决方法: 6.5英寸的应用截图需要使用6.5英寸的手机壳、顶部状态栏显示也需要6.5英寸的,不能使用其他手机型号的外观或状态栏。
    5. 总结: 6.5 英寸(iPhone XS Max、iPhone XR)的应用截图的外观和顶部状态栏不应使用5.5 英寸(iPhone 6s Plus、iPhone 7 Plus、iPhone 8 Plus)的外观或状态栏。反之,同理。
    1. 项目版本: 字说 2.1.2
    2. 被拒概要: 我们注意到您的屏幕截图无法充分反映您正在使用的应用,不能充分体现应用的价值和功能,过于营销和展示字说在抖音上的效果。

    App Store那些年踩过的坑汇总(附案例) - 图2

    1. 解决方法: 修改应用截图文案
    2. 总结: 文案尽量不要夸大应用的价值和功能。

    2.3.4 预览是让客户了解 app 外观和功能的好方法。为了确保客户理解他们将在 app 中获得的体验,预览只可使用从 app 中采集的视频屏幕。Stickers 和 iMessage 信息扩展可以将用户体验展示在“信息”app 中。您也可以添加旁白和视频,或添加文本说明,以帮助说明任何无法仅通过视频进行阐明的内容。

    1. 项目版本: 字说 2.1.3
    2. 被拒概要: 您的应用预览包含的内容无法充分反映正在使用的应用。 具体来说,您的预览: - 包括设备图像和/或设备框架。预览只可使用从 app 中采集的视频屏幕,您也可以添加旁白和视频,或添加文本说明,以帮助说明任何无法仅通过视频进行阐明的内容。
    3. 解决方法: 修改预览视频重新提交
    4. 总结: 预览只可使用从 APP 中采集的视频屏幕,不能额外加一些手机壳之类的。

    2.3.7 请选择一个独特的 app 名称,指定能够准确描述 app 的关键词,不要试图用商标术语、流行 app 的名称、定价信息或其他不相关的短语来包装任何元数据,以此欺骗系统。App 名称必须限制在 30 个字符以内,且不得包含不属于 app 名称的价格、词语或描述。App 副标题是详细介绍 app 背景信息的绝佳之处。副标题必须遵循我们的标准元数据规则,且不得包含不当内容、提及其他 app 或做出无法证实的产品声明。Apple 可以随时修改不合适的关键字或采取其他相应步骤,以防止不当使用。

    1. 项目版本: 字说 2.3.7
    2. 被拒概要: 字说-抖字动画视频工具&文字动画&图文短视频”,应用名称或副标题包含不适合在这些元数据项中使用的关键字,应当在关键词里面填写。
    3. 解决方法: 修改副标题重新提交
    4. 总结: 苹果后台有专门设置关键词的一栏,避免在副标题中刻意设置关键词。

    2.3.9 您应负责确保有权使用 app 图标、截屏和预览中的所有材料,并应显示虚构的帐户信息,而非真实个人的数据。

    1. 总结: 应用截屏和视频预览应当避免使用知名IP形象或驰名商标、品牌词或Logo,例如可以对蘑菇头表情进行二次创作,在具有独创性的情况下进行使用。所以如果大家在创作的时候尽量规避既有IP,你可以创造出一个全新的IP,但是如果使用既有的IP,涉及商业用途,就会牵扯到法律问题。比如在应用截屏上使用国外明星的肖像、或者漫威或DC等知名IP的形象,或者使用tiktok等知名品牌词,会有法律风险,甚至可能会收到苹果审核团队要求提供版权证明的要求。

    2.3.10 请确保您的 app 注重 iOS、Mac、Apple TV 或 Apple Watch 体验,并且不在 app 或元数据中包含其他移动平台的名称、图标或图像,除非存在已获批的特定互动功能。确保您的 app 元数据注重 app 本身及其体验。不要包含无关的信息,包括但不限于关于 Apple 或开发流程的信息。

    1. 项目版本: ElfWish 1.0.0
    2. 被拒概要: 应用购买页面包介绍视频中含了Google相关的信息,google play下载按钮,要解决此问题,请从您的应用及其元数据中删除此信息的所有实例,包括应用说明,促销文字,新信息,预览和屏幕截图。

    App Store那些年踩过的坑汇总(附案例) - 图3

    1. 解决方法: 修改介绍视频
    2. 总结: 不在 app 或元数据中包含其他应用商店平台的名称、图标或图像

    2.3.12 App 必须在其“新功能”文本中清楚地描述新功能和产品更改情况。一些简单的错误修复、安全更新和性能改进可以通过一般描述来说明,但较为重大的更改必须列明在备注中。

    1. 总结: 重大变更一定要提供产品文档,介绍新功能和新业务,如果涉及直播或UGC内容,还应当阐述对内容的审核措施、封禁措施。可参考10.0.0提交的产品文档,审核一把过,把基本上考虑到的都写进去了,审核人员一看就懂,避免出现他没看懂你的业务又拒,来来回回去沟通。

    无法复制加载中的内容

    2.4 硬件兼容性

    2.4.1 为了确保用户能够充分利用您的 app,iPhone app 应尽量能在 iPad 上运行。我们鼓励您考虑开发通用 app,这样客户就可以在所有设备上加以使用。

    2.5 软件要求

    2.5.1 App 仅可使用公共 API,并且必须在当前发布的 OS 上运行。进一步了解 public APIs (英文)。及时更新您的 app,在未来的操作系统版本中不再支持的任何过时功能、框架或技术皆应被淘汰。App 使用的 API 和框架应该是为了实现预期用途,并在 app 描述中说明集成详情。例如,HomeKit 框架应提供家居自动化服务,HealthKit 则应该用于保持健康和健身目的,并集成在“健康”app 中。

    1. 项目版本:逗拍 7.0.0
    2. 被拒概要: App 仅可使用公共 API,并且必须在当前发布的 OS 上运行。
    3. 解决方法: 去掉不需要的API接口或私有API
    4. 总结: 开发人员需要熟知私有API的检查(工具检查+已知私有API检查)。检查的手段可以是:使用Mac OS X终端命令:strings otools 导出所有二进制代码中引用到的类、方法、函数,在通过关键字匹配的形式检查是否有私有API:通常,Apple的私有Lib路径会包含关键字:PrivateFramework802.11相关的私有API通常以Apple80211开头。

    2.5.2 App 应自包含在自己的套装中,不得在指定容器范围外读取或写入数据,也不得下载、安装或执行会引入或更改 app 特性或功能的代码,包括其他 app。仅在特殊情况下,用于教授、开发或允许学生测试可执行代码的教育类 app 可以下载所提供的代码,但这类代码不得用于其他用途。这类 app 必须开放 app 提供的源代码,让客户可以完全查看和编辑这些源代码。

    1. 项目版本: 逗拍 7.4.0
    2. 被拒概要: 在审核过程中,您的应用已安装或启动了可执行代码,这在App Store中是不允许的。具体来说,您的应用程序使用itms-services URL方案来安装应用程序。
    3. 解决方法: 修改代码重新提交
    4. 总结: 应用程序避免使用itms-services URL方案来安装应用程序。

    2.5.4 多任务处理 app 只允许在实现预期用途时使用后台服务:VoIP、音频播放、地理位置、任务完成记录和本地通知等。如果应用使用定位后台模式,请提醒用户,这么做会大幅降低电池续航能力。

    1. 项目版本: 逗拍9.0.0
    2. 被拒概要: 您的应用在Info.plistUIBackgroundModes键中声明了对音频的支持,但是当应用在后台运行时,我们无法播放任何可听内容。
    3. 解决方法: 提供附件截图(UIBackgroundModes key.jpg),在步骤④界面主持人可以语音直播,返回手机桌面也依然可以语音直播,此时会用到UIBackgroundModes键,最后回复过去审核通过。
    4. 总结: 审核备注里详细提供产品的功能说明文档

    2.5.5 App 必须能够在仅支持 IPv6 的网络上完全正常地运作。
    2.5.6 如果 app 会浏览网页,则必须使用相应的 WebKit 框架和 WebKit Javascript。
    2.5.7 基于蜂窝移动网络且超过 10 分钟的视频流内容必须使用 HTTP 实时流化,并包含一个 192 kbps 为底线的 HTTP 实时流化。
    2.5.13 若有可能,使用人脸识别进行帐户验证的 app 必须使用 LocalAuthentication (英文) (而非 ARKit 或其他人脸识别技术),且必须对未满 13 岁的用户使用备用身份验证方式。
    2.5.14 在录像、记录日志或以其他方式记录用户活动时,app 必须征得用户的明确同意,而且要提供清晰的视觉和/或听觉指示。这亦包括任何对设备摄像头、麦克风、屏幕录像或其他用户输入方式的使用。
    2.5.16 轻 App、小组件、扩展和通知应当与 app 的内容和功能相关。此外,所有的轻 App 特性和功能都必须包含在主 app 二进制文件中。轻 App 不能包含广告。

    3. 商务

    在 App Store 中,您可以通过多种方式让自己的 App 实现盈利。如果您的业务模式并不显而易见,请务必在其元数据和 App Review 备注中加以说明。如果我们无法理解 app 的工作方式,或者 App 内购买项目不是那么一目了然,则审核会有所延误,并可能会导致 app 被拒绝。尽管价格由您决定,但是我们不会分发要价明显过高的 app 和 App 内购买项目。对于试图以不合常理的高昂价格欺骗用户的 app,我们将予以拒绝。
    如果我们发现您试图操纵评价,通过付费、提供奖励、经过筛选或伪造的反馈来提高排名,或者要求第三方服务代您这样做,我们将采取相应措施以保持 App Store 的公正性,其中可能包括将您从 Apple Developer Program 中除名。

    1. 项目版本: 逗拍 8.1.0
    2. 被拒概要: 苹果审核人员认为109.99美元购买4886金币的预定价格不合理
    3. 解决方法: 我们申请的这个商品从来都没有使用过,删除并重新提交就审核通过了。
    4. 总结: 产品定价应当考虑用户的接受度。
    1. 项目版本: 趣推 2.2.0
    2. 被拒概要: 账号被封。
    3. 解决方法: 无解
    4. 总结: 在应用内引导用户做好评并给予金币奖励的活动,很大可能导致了封号。因此避免发起类似的活动来操纵评论。
    1. 项目版本: videoboard 1.0.0
    2. 被拒概要: 我们发现在您的应用中购买订阅时,用户获得的价值有限。与应用内购买产品相关的费用应反映用户将为其购买获得的价值。审查应用程序中的功能并为用户购买订阅时提供更多价值是适当的。进行适当的更改后,我们期待您的应用程序进行审查。
    3. 解决方法:最后我们重新调整了应用内购买的价格,并回复会确保每月都会不断更新付费内容和免费内容才审核通过。
    4. 总结: 新产品上线,本身应用内的模板不会很多,定价应当充分反映其购买所获得的价值,或者上线初先以免费为主。

    3.1 付款

    3.1.1 App 内购买项目:

    • 如果您想要在 app 内解锁特性或功能 (解锁方式有:订阅、游戏内货币、游戏关卡、优质内容的访问权限或解锁完整版等),则必须使用 App 内购买项目。App 不得使用自身机制来解锁内容或功能,如许可证密钥、增强现实标记、二维码等。App 及对应元数据不得包含指引客户使用非 App 内购买项目机制进行购买的按钮、外部链接或其他行动号召用语。
      1. 项目版本: 快字幕 1.0.0
      2. 被拒概要: 我们注意到,您的应用或其元数据可以通过应用内购买API以外的方式购买应用中的内容,服务或功能。
      3. 解决方法: 升级微信sdk(不含支付功能)、去除开通会员后弹出进会员群加微信二维码、联系客服的跳转只有安装微信情况下才显示出来(苹果审核人员的ipad是不会安装微信来进行审核应用的)
      4. 总结: 涉及虚拟商品的苹果应用,代码中不能出现任何给其他第三方支付(微信、支付宝)相关的代码,应用内不能出现任何引导用户去其他地方进行购买的引导。
      1. 项目版本: 趣推 2.0.0
      2. 被拒概要: 我们注意到您的应用使用应用内购买产品来购买应用内未消费的积分或货币,这不适合App Store。具体而言,在通过IAP购买会员资格后,用户可以兑现从推广应用/服务中获得的利润,请修改您的应用以删除提现功能和引导提现的入口或文案,并确保在应用内使用所有应用内购买商品。
      3. 解决方法:去掉提现按钮
      4. 总结: 虚拟内购应用内禁止出现任何提现功能,引导用户去其他地方提现的引导提示也是不能出现,目前市面上直播产品基本上都是把提现功能做到了公众号上,可以参考虎牙助手的提现方式。
      1. 项目版本: 逗拍 7.0.0
      2. 被拒概要: 我们注意到,您的应用程序提供了对要在该应用程序中使用的购买或订阅的外部机制的访问,这不符合《 App Store审查指南》。具体来说,在登录屏幕上包含引用非IAP购买机制(例如微信)的号召性用语是不合适的。下一步请删除对这些机制的访问权限-包括指向您网站的完全合格链接,这些链接可能间接提供对这些机制的访问权限,例如,指向支持网页的链接,常见问题解答,产品或计划详情,或其他号召性用语。
      3. 解决方法: 删除帮助中心引导公众号支付的相关引导
      4. 总结: iOS应用内不允许出现任何非苹果内购方式的第三方支付引导
      1. 项目版本: 逗拍 某个版本
      2. 被拒概要: 您的应用或其元数据可以通过应用内购买API以外的方式购买应用中的内容,服务或功能。具体而言,您的应用可在不使用应用内购买API的情况下启用积分或中间货币。此外,请注意,积分或中间货币的费用不能包含在应用的购买价格中。
      3. 解决方法: 取消和第三方彩铃业务合作,因为第三方彩铃H5页面也属于应用中的内容,但是实际购买却跳转到了微信支付。
      4. 总结: iOS应用内接入第三方H5分成合作风险很高,可以仅在安卓应用内合作推广。
      3.1.1 App 可以提供 App 内购买货币,供客户在 app 内“打赏”数字内容提供商。
      1. 总结: 类似直播产品的打赏,需要先充值才能刷礼物
      3.1.1 通过 App 内购买项目购买的所有点数和游戏货币不得过期,并且您应确保为所有可恢复的 App 内购买项目设计一套恢复机制。
      1. 项目版本: 快字幕 1.0.0
      2. 被拒概要: 我们发现您的应用不包含“恢复购买”功能,以允许用户恢复以前购买的应用内购买,例如,当他们升级到新手机时,他们不会丢失他们在旧手机上购买的所有商品。
      3. 解决方法: 新增恢复购买功能
      4. 总结: 快字幕当时有一个版本,导入视频功能需要购买才可以导入,但导入视频这个功能属于非消耗型的,一次购买以后都解锁可以使用了,针对非消耗型项目类型的IAP项目,苹果会要求App提供一个“恢复购买”的功能,以保证用户换了新设备以后可以恢复。也常见于各种游戏中,比如王者荣耀中的皮肤购买,非消耗型商品是不可被消耗的,一次购买终身使用的,非消耗型的商品是跟appleId绑定的。
      1. 项目版本: DOUPAI 3.1.1
      2. 被拒概要: 我们发现您的应用提供了可以恢复的应用内购买但不包含“恢复购买”功能,以允许用户恢复以前购买的应用内购买,例如,当他们升级到新手机时,他们不会丢失他们在旧手机上购买的所有商品。可以在您的应用中包含一些机制让用户恢复购买,例如“恢复购买”按钮。“
      3. 解决方法:针对游客登录,需要对非消耗型商品,比如会员提供恢复购买功能, 以保证游客用户换了新设备以后可以恢复。
      4. 总结: 有游客登录功能且有非消耗型商品的应用,应当为游客用户提供恢复购买功能。
      3.1.1 非订阅型 app 在提供完整解锁选项前可以提供按时间计算的免费试用期,方法是在“价格等级 0”中设置非消耗型 IAP 项目,并按照命名约定“XX 天试用”来命名。在开始试用之前,app 必须清楚指明试用期时长、试用期结束后不再能访问的内容或服务,以及用户为获得完整功能而需要支付的任何后续费用。进一步了解如何使用收据 (英文)设备检查 (英文) 来管理内容访问权限和试用期时长。
      3.1.2 订阅:无论属于 App Store 上哪一类别,app 都可以提供自动续订的 App 内购买订阅。在 app 内集成可自动续订的订阅时,请务必遵循下述指导原则。
      3.1.2(a) 允许的用途:如果您提供自动续订订阅,则必须为客户提供持续的价值,订阅期必须持续至少七天,并且能够在用户的所有设备上访问。适当的订阅示例包括但不限于:新游戏关卡;连载内容;多玩家支持;持续提供实质性更新的 app;对媒体内容的大型合集或持续更新的访问权限;软件即服务 (SAAS);以及云服务支持。
      3.1.2(b) 升级和降级:用户应能获得无缝的升级/降级体验,并且不会出现无意间订阅同一内容的多个不同版本。请查阅关于管理订阅升级和降级选项的最佳做法
      3.1.2(c) 订阅信息:在让客户订阅之前,您应当清晰描述付费后的具体权益。每月有几期?云存储容量有多大?具体能访问您的哪些服务?务必清晰地传达“协议、税务和银行业务 (英文)”下“Apple Developer Program 许可协议”的“附件 2”中所述的要求。
      1. 项目版本: 快字幕 1.1.0
      2. 被拒概要: 您的应用内购买目前被标记为自动续订订阅。但是,使用非消费类应用程序内购买产品类型更合适,因为该产品用于解锁应用程序的功能。非耗材产品仅由用户购买一次,并且始终可在与该用户的iTunes帐户关联的所有设备上使用。自动续订订阅适用于期刊应用,例如杂志和报纸。苹果认为解锁按钮应该类似游戏里面的一样,解锁属于非消耗型项目,只需购买一次,不会过期或者随着使用而减少。
      3. 解决方法: 因此要修改解锁的交互方式和叫法,重新提交。剪辑界面属于一次性功能 跟贴纸内容更新不一样,内容类似杂志可以持续更新 可以订阅 而剪辑时长功能属于一次性买断 不能使用自动续订。
      4. 总结: 加深对非消耗型商品或功能的理解。
      1. 项目版本: DOUPAI 1.0.0
      2. 被拒概要: 请修改您的自动续订订阅,以清楚准确地描述客户将从他们的购买中获得的内容以及他们可以预期收取的费用,并将自动续订订阅与应用中的非续订订阅区分开来。
      3. 解决方法: 当时默认显示2个连续订阅,两个非连续订阅需要点击小勾来切换显示,苹果认为这样对用户来说不明显,要么4个都显示,要么只显示2个,去掉非连续订阅,保留了2个连续订阅,重新提交就立马通过了。
      4. 总结: 多站在苹果审核人员和用户的角度来思考这样做是否合理。
      1. 项目版本: Vinkle 1.0.0
      2. 被拒概要: 我们注意到,您的一个或多个自动续订订阅的营销方式可能会误导或混淆用户的订阅条款或定价。 具体而言,您的应用内购买产品应包含用户在7天免费试用后支付的价格。
      3. 解决方法: 免费试用7天下面加上按年自动扣费的说明
      App Store那些年踩过的坑汇总(附案例) - 图4
      1. 总结: 7天免费使用按钮和价格要都展示给用户。另外购买按钮底部的自动订阅条款信息需要在应用内和应用描述中都显示,并且在购买流程中需要清晰明显地显示,而无需用户采取其他操作(例如打开链接或滚动条滚动才能看到完整的订阅条款)。
      1. 项目版本: Vinkle 3.3.0
      2. 被拒概要: 请修改您的自动续订订阅购买流程,以确保计费的金额是布局中最突出的定价要素。任何其他定价要素(包括免费试用期)都必须在总账单金额的从属位置和大小下显示。
      3. 您的应用程序试图操纵客户进行不必要的应用程序内购买。具体来说,在用户拒绝购买后,您的应用会提示另一个订阅注册屏幕。
      4. 在订阅屏幕上找到的“ x”按钮没有向客户清楚显示。
      App Store那些年踩过的坑汇总(附案例) - 图5App Store那些年踩过的坑汇总(附案例) - 图6
      1. 解决方法: 上图第一张图有两个问题,价格不明显,另外这个弹窗是挽留用户的弹窗,苹果审核人员认为用户不想购买以后不应该再一次弹出让用户来选择是否购买。第二张图左上角的关闭按钮太难找了。
      2. 订阅页采用合规订阅页,如下:突显价格弱化3天试用,关闭按钮明显展示
      3. 去除挽留弹窗开关及客户端代码
      4. 自然用户去除隐藏价格开关代码、合规违规订阅页开关代码
      5. 买量用户不再隐藏价格(需调整代码)、去除合规违规订阅页开关代码
      App Store那些年踩过的坑汇总(附案例) - 图7
      1. 总结: 避免使用隐藏代码或开关来控制线上订阅页面,应当保证审核时候和发布以后的一致性。苹果公司很注重用户体验,有时候需要在提升收益和用户体验之间寻找一个平衡点,也需要多站在苹果审核人员的角度去思考这样做是否是好的用户体验。
      1. 项目版本: ElfWish 1.0.0
      2. 被拒概要: 我们注意到,您的一个或多个自动续订订阅的营销方式可能会误导或混淆用户的订阅条款或定价。要解决此问题,请修改您的自动续订订阅购买流程,以确保结算金额是布局中最突出的定价元素。 任何其他定价元素必须以从属位置和大小显示在总计费金额中。
      App Store那些年踩过的坑汇总(附案例) - 图8
      1. 解决方法: 修改价格大小和7天免费使用文字一样的大小
      2. 总结: 订阅界面的价格一定是布局中最突出的元素
      3.1.4 硬件相关内容:在为数不多的情形中,例如当功能依赖于特定的硬件功能时,app 可在不使用 App 内购买项目的情况下解锁相应功能 (例如,天文 app 会在与望远镜同步后增加功能)。与经过批准的实际产品 (如玩具) 配合使用的可选 app 功能可在不使用 App 内购买项目的情况下解锁特定功能,前提是它同时也提供 App 内购买项目选项。您不得要求用户通过购买无关产品或参与广告或市场活动来解锁 app 功能。
      1. 举例: 例如微商水印相机APP通过购买他们的实体白皮书就可以开通会员、例如通过观看激励视频广告可以解锁app的功能或通过参与积分墙任务解锁app的某项功能,都是不被允许的。
      3.1.7 广告:展示广告应仅限于您的主 app 可执行文件中,而不应包含在扩展、轻 App、小组件、通知、键盘、watchOS app 等中。App 内显示的广告必须与 app 的年龄分级相符。应允许用户查看用于将他们定向至这个广告的所有信息 (不要求用户离开 app),并且不可涉及基于敏感用户数据的定向或行为定向广告。敏感的用户数据包括健康/医疗数据 (如来自 HealthKit API 的数据)、学校和课堂数据 (如来自 ClassKit 的数据),或儿童的数据 (如来自儿童类别的 app 的数据),等等。插播广告、会中断或阻止用户体验的广告必须清楚地表明它们属于广告,不得操纵或欺骗用户轻点它们,并且必须提供可以轻松访问和清晰可见的关闭/跳过按钮,按钮大小要足以让用户轻松解除广告。

      3.2 其他业务模式问题

  • 下方列表并非详尽清单,且我们的政策可能因您提交的 app 有所变更或更新,但这里有一些额外的应做及勿做事宜需要您的注意:

3.2.2 不可接受

  1. - **(i)** 创建与 App Store 类似且用于显示第三方 app、扩展功能或插件的界面,或将其作为热门 app 的合集。
  2. - **(iii)** 人为地刷广告展示次数或者广告点进次数的 app,以及主要设计目的在于显示广告的 app
  3. - **(vi) **App 应当允许用户直接获得付费购买的项目而无需执行额外的任务,如在社交媒体上发帖、上传通讯录,以及在 app 内签到特定次数等。App 不得要求用户必须先为 app 评分或点评、观看视频、下载其他 app、点击广告、启用追踪功能或进行其他类似操作,然后才能访问 app 的功能、内容或使用 app,或者收到现金或其他补偿 (包括但不限于礼品卡和代码)。
  4. - **(ix)** App 不得强制要求用户为 app 评级或点评、下载其他 app,或执行其他类似操作,然后才能访问 app 的功能、内容或者使用 app

4. 设计

Apple 客户非常注重简洁、雅致、创新且易于使用的产品,这也正是我们希望在 App Store 上看到的。您可尽情提供各种优秀设计,但要想获准在 App Store 上发布 app,至少需要满足以下标准。另请记住,即使在 app 获得批准之后,您也应当对其进行更新,确保 app 能正常工作并持续吸引新客户和现有客户。停止服务或体验下降的 app 随时可能会从 App Store 中移除。

  1. 项目版本: 逗拍 7.4.0
  2. 被拒概要: 您的应用程序包含一个更新按钮或提醒用户更新应用程序,但该更新按钮或提醒并不直接链接到App Store上的应用程序页面。
  3. 解决方法: 重新提交新包,将与itms相关的升级方式itms-apps://itunes.apple.com/cn/app/id88888888"]转换为直接跳转应用程序商店的形式;
  4. 总结: 开发人员避免使用itms相关的升级方式

4.1 抄袭者
请拿出您自己的想法。我们知道您有自己的奇思妙想,那么请将它们付诸实际。请不要简单照搬 App Store 上的热门 app,或只是细微修改其他 app 的名称或 UI,就将其挪为己用。这么做不但有引发知识产权侵权索赔的风险,更会加剧在 App Store 中浏览的难度,并对您的开发者同仁来说也很不公平。
4.2 最低功能要求
App 应包含功能、内容和 UI,而不仅仅是一个经过重新包装的网站。如果 App 没有什么实用价值、毫无新意或者不太像是一个 App,那它就不适合出现在 App Store 中。如果 App 不能带来持久的娱乐价值,则可能无法获得批准。如果 app 只是一首歌曲或一部影片,则应提交到 iTunes Store。如果 App 只是一本图书或游戏指南,则应提交到 Apple Books Store。
4.2.3
(i) App 应能独立工作,无需安装其他 app。
(ii) 确保 app 发布时在其二进制文件中包含有正常运行所需的充足内容。
(iii) 如果 app 需要下载其他资源,请披露下载大小并在下载之前提醒用户。(参考王者荣耀更新)

  1. 项目版本: 趣推4.0.0
  2. 被拒概要: 在我们使用您的应用之前,我们需要安装微信。 App 应包含功能、内容和 UI,而不仅仅是一个经过重新包装的。如果 app 没有什么实用价值、毫无新意或者不太像是一个 appApp 应能独立工作,无需安装其他 app
  3. 解决方法: 应用程序应该能够在启动时运行,而无需安装其他应用程序。说的是去水印的小程序,需要安装微信才能使用,应当在提交审核时下架该小程序。
  4. 总结: 测试或提审人员在做提交前检查时,应当模拟审核人员的纯净环境进行检查,如不能模拟可记住此条规则做好预防。

4.3 重复 App
请不要为同一个 app 创建多个套装 ID。如果您的 app 打算为特定位置、运动队、大学等提供不同版本,请考虑只提交一个 app,并使用 App 内购买项目来提供不同的功能。同时,请避免继续在已有大量类似 app 的类别下进行开发;App Store 上已经有太多模拟放屁、打嗝声音的 app,以及手电筒、算命、约会和爱经等 app。除非这类 app 会提供独特、高质量的体验,否则我们将会予以拒绝。上传相似版本 app 的开发者会遭到 Apple Developer Program 的除名。

  1. 项目版本:趣推2.0.0
  2. 被拒概要: 此应用程序会复制您或其他开发人员向App Store提交的其他应用程序的内容和功能,这些应用程序被视为一种垃圾邮件形式。具体来说,此应用程序似乎与之前根据已终止的Apple Developer Program帐户提交的其他应用程序相同。
  3. 解决方法:由于趣推2.0.0之前就已经被封过账号,应用的代码已经在苹果的服务器上保留,我们即使更换账号重新提交也是会被检测到,因此只能通过大面积重构代码,尽可能做到跟之前的代码几乎不一样,自己都觉得这是两个不同的应用即可。
  4. 总结: 当账号被标记删除后,如果想要在第二个账号里重新提交应用,应尝试在被封之前将应用转移到新的开发者账号里,但如果应用违规导致封号转移也没用,最保险的方法应该是在账号被封之前,将应用主动下架并删除,并在新开发者账号里重新提交新的代码,务必要进行大面积的代码重构和修改,这是经验。

4.5.4 App 不得将推送通知列为必需条件,并且不应将这项功能用来发送敏感的个人或机密信息。推送通知不得用于促销或直接营销目的,除非客户已通过 app UI 中显示的同意语句明确选择接收此类信息,并且您在 app 中提供了让用户可以选择不接收此类信息的方法。不当使用这些服务可能会导致撤销您的权限。
4.8 通过 Apple 登录

  • 如果 app 使用第三方或社交登录服务 (例如,Facebook 登录、Google 登录、通过 Twitter 登录、通过 LinkedIn 登录、通过 Amazon 登录或微信登录) 来对其进行设置或验证这个 app 的用户主帐户,则该 app 必须同时提供“通过 Apple 登录”作为同等选项。用户的主帐户是指在 app 中建立的、用于标识身份、登录和访问功能和相关服务的帐户。

    5. 法律

    只要 app 向某个地区的用户提供,那么就必须遵守该地区的所有法律要求 (如果您不太确定,请与律师联系)。我们知道这些东西非常复杂,但除了下方所列准则以外,同时理解所有本地法律,并确保您的 app 能满足所有法律要求,是您必须承担的责任。当然,如果 app 存在唆使、宣传或鼓励犯罪的行为或明显不负责任的行为,则会被拒绝。在发现涉及如方便人口贩卖和/或剥削儿童的 app 的极端情况下,我们将通知有关当局。
    5.1 隐私
    在 Apple 生态体系中,保护用户隐私总是第一要务。您要在处理个人数据时小心谨慎,以确保遵守了隐私保护最佳做法 (英文)、适用的法律和“Apple Developer Program 许可协议 (英文)”中的条款,并满足客户的期望。尤其是:
    5.1.1 数据收集和存储
    (i) 隐私政策:所有 app 必须在 App Store Connect 元数据栏位和 app 内部包含可轻松访问的隐私政策链接。隐私政策必须明确而清楚地:

    1. - 指明 app/服务所收集的数据 (若有)、收集数据的方式,以及这些数据的所有用途。
    2. - 确认与 app 共享用户数据 (遵从这些准则) 的任何第三方 (例如,分析工具、广告网络和第三方 SDK,以及能够访问用户数据的任何母公司、子公司或其他相关实体) 会提供与 app 隐私政策所述及这些准则所要求相同或等同的用户数据保护措施。
    3. - 解释数据保留/删除政策,并且说明用户可以如何撤销同意和/或请求删除用户数据。
    1. 总结: 保险方法如下: 第一次下载并安装应用程序启动时出现隐私政策弹窗,提示用户“同意”或“拒绝”。

    (ii) 许可 如果 app 会收集用户数据或使用数据,即使此类数据在收集当时或收集后即刻被匿名处理,app 也必须征得用户的同意才能收集。付费功能不得依赖于或要求用户授予访问这些数据的权限。App 还必须为客户提供简单易懂且易于操作的方式来撤销同意。确保您在用途说明中清楚且完整地阐述您对数据的使用。如果 app 依据欧盟《一般数据保护条例》(“GDPR”) 或类似法规,出于合法权益而不经事先同意就收集数据,则必须遵循此类法律的所有条款。进一步了解请求许可 (英文)

    1. 项目版本: 逗拍10.13.0
    2. 被拒概要: 您的应用请求用户同意访问AppTracking Transparency,但没有充分说明目的字符串中AppTracking Transparency的使用,所有权限请求警报都需要指定您的应用如何使用所请求的信息。
    3. 解决方法: 弹窗文案描述不清晰,被拒文案: “是否允许此App使用您的广告追踪权限?“ 可修改为“用于提供更好的个性化内容”(已通过)

    App Store那些年踩过的坑汇总(附案例) - 图9

    1. 总结: 收集用户数据或使用数据的 app 必须征得用户的同意。确保在用途说明中清楚且完整地阐述您对数据的使用。

    (iii) 数据最少化:App 仅可请求访问与 app 核心功能相关的数据,并且仅可收集和使用完成相关任务所需的数据。若有可能,请使用进程外选取器或共享列表,而不要请求“照片”或“通讯录”等受保护资源的完整访问权限。
    (iv) 访问权限:App 必须尊重用户的权限设置,不得操纵、欺骗或强迫用户同意不必要的数据访问。例如,可发布照片到社交网络的 app 不得在允许用户上传照片前要求麦克风访问权限。若有可能,请为不同意的用户提供替代解决方案。例如,如果用户拒绝共享位置,请提供手动输入地址的功能。

    1. 项目版本: 快字幕1.0.0
    2. 被拒概要: App 必须尊重用户的权限设置,不得操纵、欺骗或强迫用户同意不必要的数据访问。例如,可发布照片到社交网络的 app 不得在允许用户上传照片前要求麦克风访问权限。
    3. 解决方法: 访问权限弹窗的具体用途说明(比如访问相册要具体干什么)。快字幕相册访问权限太简单被拒,后来改为:我们需要访问您的相册来存储/读取视频和照片。
    4. 总结: 访问权限弹窗应该显示详细描述,描述该权限需要访问用户的什么数据并说明用于什么特性或功能。

    (v) 帐户登录:如果 app 不包含基于帐户的重要功能,请允许用户在不登录的情况下使用。App 不得要求用户提供个人信息才能正常使用,除非个人信息与 app 的核心功能直接相关,或是法律要求时。如果您的核心 app 功能与特定的社交网络 (如 Facebook、微信、微博或 Twitter 等) 不相关,您必须提供无需登录或其他类似机制的访问权限。调取基本档案信息、分享到社交网络或邀请朋友使用 app 等不视为核心 app 功能。App 还必须包含用于撤销社交网络凭证的机制,以及从 app 内停用 app 与社交网络之间数据访问的机制。App 不可在设备外存储社交网络的凭证或令牌,而且只能使用此类凭证或令牌来在 app 使用期间从 app 本身直接连接社交网络。

    1. 项目版本: 快字幕1.0.0、趣推 1.0.0DOUPAI 1.0.0
    2. 被拒概要: 我们注意到,您的应用要求用户注册个人信息才能购买非基于帐户的应用内购买产品,这不符合《 App Store审查指南》。在允许访问未专门与用户相关联的应用程序内容和功能之前,应用程序不能要求用户注册。需要共享个人信息的用户注册必须是可选的或与帐户特定的功能绑定。要解决此问题,请向用户明确表明,注册将使他们能够从其任何iOS设备访问内容,并为他们提供一种随时注册的方式(如果他们希望以后扩展对其他iOS设备的访问权限)。
    3. 解决方法: 虚拟商品内购不能强制要求用户登录才能购买,添加游客模式就审核通过了。
    4. 总结: app的购买页面要用户不用登录也能看到,否则认为是强制登录,需要有游客模式,可以参考爱奇艺,在购买时提供账号登录和游客登录可选项,并且可以引导用户使用账户登录的好处。

    (vi) 如果开发者开发的 app 试图暗中收集用户密码或其他用户私人数据,那么开发者会被从 Apple Developer Program 中除名。
    5.1.2 数据使用和共享
    (i) 除非法律另有许可,否则您不得未经他人允许而使用、传输或共享他们的个人数据。您必须提供相应的信息,说明以何种方式在哪里使用这些数据。App 收集的数据只有在为了改进 app 或用于广告投放用途 (遵守 Apple Developer Program 许可协议 (英文)) 的前提下,才能与第三方共享。如果 app 在未经用户同意或未能符合数据隐私保护法律的情况下共享用户数据,则 app 可能会被下架,并且可能会导致您从 Apple Developer Program 中除名。
    5.1.5 定位服务

    • 只有在定位服务与 app 提供的功能和服务直接相关时,才能在 app 中使用定位服务。在收集、传输或使用位置数据之前,务必进行通知并获得用户同意。如果 app 会使用定位服务,请务必在 app 中说明相应的原因;请参考“Human Interface Guidelines (英文)”,了解相应的最佳做法。

5.2 知识产权

  • 请确保 app 只包含由您创建或拥有使用许可的内容。如果您已越线并在未经许可的情况下使用了内容,您的 app 可能会被移除。当然,这也意味着如果他人抄袭了您的作品,则他们的 app 也可能会被移除。如果您认为自己的知识产权在 App Store 上受到了其他开发者的侵犯,请通过此网页表格提交权利主张。各个国家/地区的法律互不相同,但请务必避免以下常见错误:

5.2.1 一般性:不得在未经授权的情况下,在 app 中使用受保护的第三方材料 (例如商标、版权作品、专利设计);也不得在 app 套装或开发者名称中包含虚假、抄袭或误导性的演示、名称或元数据。App 提交方应当是拥有或获授权使用知识产权及其他相关权利的个人或法律实体。

  1. 项目版本: 逗拍 10.3.0
  2. 被拒概要: 根据相关法律要求,需要提供相关资质,或者拿掉所有的直播功能(语音和视频直播),重新提交。
  3. 解决方法: 暂时拿掉直播相关的功能,准备相关的账号和资质。
  4. 总结: 直播应用需要公司账号提交,需要提供以下资质 1. 《网络文化经营许可证》副本扫描件和政府网站的直接查询链接。2. 《网络文化经营许可证》经营范围需包含“网络表演/秀场”。3. 《网络文化经营许可证》单位名称需要和开发者法定名称相匹配,并且单位授权给该开发者也不行。4. 《电信与信息服务业务运营许可证》副本扫描件和政府网站的直接查询链接。/或《信息网络传播视听节目许可证》。5. 中国公安机关互联网备案信息备案记录扫描件。

5.2.2 第三方站点/服务:如果您的 app 会使用、访问第三方服务、通过访问第三方服务盈利或是显示第三方服务的内容,请确保您获得在该服务的使用条款下进行此类操作的特别许可。如有相应要求,则必须提供相关授权。
5.2.3 音频/视频下载:App 不得促进非法文件共享,或在没有获得这些资源的明确授权的情况下,提供从第三方来源 (如 Apple Music、YouTube、SoundCloud、Vimeo 等) 保存、转换或下载媒体资源的功能或帮助。视频/音频内容流也有可能触犯使用条款,所以请务必在 app 访问这些服务前,进行检查。如有相应要求,则必须提供相关文稿。

  1. 项目版本: 逗拍 7.0.0
  2. 被拒概要: 您的应用允许用户未经相关第三方来源授权而保存或下载音乐,视频或其他媒体内容。
  3. 解决方法: 换句话说提供给用户保存或下载的音乐、视频或其他媒体内容(我们的是模板)需要拿到第三方授权。解决思路:提供一个保存至相册功能的声明,声明与苹果无关;提供一个大头兄弟公司授权给该个人开发者拥有者的授权书(之前是用个人开发者账号上架的)。

5.2.4 受 Apple 认可:不得误导或暗示 Apple 是 app 的来源或提供商,或者 Apple 以任何形式表示认可其质量或功能。如果您的 app 被选为“编辑选荐”,Apple 将自动显示相应徽章。
5.2.5 Apple 产品:不得创建与现有 Apple 产品、界面 (如访达)、app (如 App Store、iTunes Store 或“信息”) 或广告主题外观相似或容易混淆的 app。App 和扩展功能 (包括第三方键盘和贴纸包) 不得含有 Apple 表情符号。
5.3.1 抽奖和比赛必须由 app 的开发者赞助。

  1. 总结: 所有应用内抽奖类的运营活动,必须要说明规则,并声明与苹果无关。

5.3.2 抽奖、比赛和抽彩的正式规则必须在 app 中注明,并且必须明确表示 Apple 不是赞助者,也没有以任何形式参与活动。
5.3.3 App 不得通过 App 内购买项目购买点数或货币,以用于任何种类的真实货币游戏;不得向用户出售彩票或抽彩券;不得在 app 内进行资金转账。
5.6 开发者行为准则

  • 请尊重每一个人,无论是在 App Store 中回复用户评论、回应客户支持请求时,还是与 Apple 沟通时 (包括您在解决方案中心的回复),都应做到这一点。请勿涉及任何形式的骚扰、歧视、恐吓或霸凌行为,也不要鼓励他人实施任何上述行为。
  • 客户的信任是 App Store 获得成功的基石。App 不得存在以下行为:掠夺用户或试图勒索用户;诱导用户进行非自愿的购买;强迫用户共享不必要的数据;以欺骗的方式抬高价格;针对未交付的功能或内容收取费用;或者在 app 内部或外部实施任何其他操纵行为。

    1. 项目版本: videoboard 1.0.0
    2. 被拒概要: 我们发现您的应用旨在欺骗或欺骗客户。具体来说,给用户的价值似乎与购买时所承诺的价值不相关。苹果公司的《开发人员行为准则》第5.6节指出:“应用程序切勿掠夺用户或试图剥夺客户,诱使他们进行不必要的购买,强迫他们共享不必要的数据,以棘手的方式提高价格,为功能付费或未交付的内容,或在应用内或应用外进行任何其他操作。”应用程序绝不应试图剥夺客户。因此,您的应用不适用于App Store
    3. 解决方法: videoboard 1.0.0上线之初模板不是很多,但是文案夸大叙述有1000+模板,并且定价跟实际提供的价值不符,因此最终修改了应用商店描述文案。
    4. 总结: 文案不要夸大事实
    1. 项目版本: Vinkle 3.3.0
    2. 被拒概要: 您的应用程序试图操纵客户进行不必要的应用程序内购买。具体来说,在用户拒绝购买后,您的应用会提示另一个订阅注册屏幕。 在订阅屏幕上找到的“ x”按钮没有向客户清楚显示。

    App Store那些年踩过的坑汇总(附案例) - 图10App Store那些年踩过的坑汇总(附案例) - 图11

    1. 解决方法: 上图第一张图是挽留用户的弹窗,苹果审核人员认为用户不想购买以后不应该再一次弹出让用户来选择是否购买。第二张图左上角的关闭按钮太难找了。
    2. 订阅页采用合规订阅页,如下:去除挽留弹窗、关闭按钮显著化

    App Store那些年踩过的坑汇总(附案例) - 图12

    1. 总结: 苹果公司很注重用户体验,有时候需要在提升收益和用户体验之间寻找一个平衡点,也需要多站在苹果审核人员的角度去思考这样做是否是好的用户体验。

    5.6.1 App Store 评论

    • App Store 客户评论是 app 体验中不可或缺的一部分;因此,在回复客户的评论时,您应当对他们保持尊重。另外,您的回复应直接回应客户评论的主题,请勿在回复中包含个人信息、垃圾信息或营销广告。
    • 利用我们提供的 API 提示用户评价您的 app:通过这项便利功能,客户无需离开 app,就可直接在 App Store 中留下评分和评论;不允许使用自定义的评论提示。

      《 Apple Developer Program许可协议》

      《 Apple Developer Program许可协议》 3.2(f)您不会直接或间接地采取任何旨在干扰苹果软件或相关服务的行为,本协议的意图或苹果的商业行为,包括但不限于采取可能妨碍其性能或预期使用的措施App Store,VPP / B2B程序网站或程序的内容(例如,提交对您自己的应用程序或任何第三方应用程序的欺诈性审查,选择与您的应用程序名称实质上相似的第三方名称)造成消费者的困惑,或抢占应用程序名称,以防止合法的第三方使用。
      1. 项目版本: 趣推 2.2.0
      2. 被拒概要: 我们已经完成了调查,并确定您的Apple开发人员计划成员身份或与您的开发者帐户相关联的其他成员身份已被用于不诚实或欺诈性活动。 Apple Developer Program许可协议的第3.2f)节禁止这样做: 您不会直接或间接地采取任何旨在干扰苹果软件或相关服务的行为,本协议的意图或苹果的商业行为,包括但不限于采取可能妨碍其性能或预期使用的措施App StoreVPP / B2B程序网站或程序的内容(例如,提交对您自己的应用程序或任何第三方应用程序的欺诈性审查,选择与您的应用程序名称实质上相似的第三方名称)造成消费者的困惑,或抢占应用程序名称,以防止合法的第三方使用。
      3. 解决方法: 20181213日,趣推第3个账号正式被封了。在被封之前尝试转移到趣推第4个开发者账号下依然不行,刚提交完就自动进入审核,估计是机审,在20181215日手动下架并删除了该app,后面对代码进行了大量的修改,并在趣推第5个账号下以1.0.0版本提交并上线。
      4. 总结: 3.2f的规则很泛,苹果只给一个大方向,等出现违规的时候,苹果公司说什么都是对的,所以我们只能尽可能的合规化去发展,减少做一些踩红线的尝试(比如刷好评、上传代码相似度高的马甲包、上传Logo一致或相似的多个应用、尽管你没有使用第三方支付但是集成了带有支付的微信登录SDK或支付宝登录SDK等第三方支付SDK
      《 Apple Developer Program许可协议》 3.3.12 您和您的应用程序(以及您与之签约提供广告的任何第三方)只能将广告标识符以及通过使用广告标识符获得的任何信息仅用于投放广告。
      1. 项目版本: 逗拍 某个版本
      2. 被拒概要: 我们发现您的应用使用了广告标识符,但不包含广告功能。这不符合App Store审查指南要求的Apple Developer Program许可协议的条款。具体来说,《 Apple Developer Program许可协议》第3.3.12节规定:“您和您的应用程序(以及您与之签约提供广告的任何第三方)只能将广告标识符以及通过使用广告标识符获得的任何信息仅用于投放广告。如果用户重置了广告标识符,那么您同意不将先前的广告标识符和任何派生的信息与重置的广告标识符直接,间接地结合,关联,链接或以其他方式关联。”注意:iAd不使用AdSupport框架,ASIdentifierManager或广告标识符。因此,iAd实施不需要它们,因此不应将它们包含在您的应用中以获取iAd支持。如果您的应用正在投放广告,请:-确保您已在设备(不仅是模拟器)上测试了您的应用,并且在测试之前已删除了所有以前的应用版本-向我们提供在您的应用中查找广告的步骤如果您的应用未投放广告,请检查您的代码(包括所有第三方库)以删除以下任何实例:类:ASIdentifierManager选择器:advertiseIdentifier框架:AdSupport.framework如果您打算在以后的版本中加入广告,请在您添加广告功能之前从您的应用中删除广告标识符。为了帮助找到广告标识符,请使用“ nm”工具。有关“ nm”工具的信息,请参见nm手册页。如果您无权访问库的源代码,则可以使用“字符串”或“ otool”命令行工具来搜索已编译的二进制文件。 “字符串”工具列出了库调用的方法,“ otool -ov”列出了Objective-C类结构及其定义的方法。这些技术可以帮助您缩小有问题的代码所在的位置。
      3. 解决方法: 只要使用了广告标识符,只要有投放广告或接入广告变现都会用到广告标识符,应用内要有广告展示,否则会被拒或者松一点可能会要求提供在您的应用中查找广告的步骤
      4. 总结: 每次提交审核的时候应当检查广告标识符选项是否已经按照实际情况进行勾选。
      App Store那些年踩过的坑汇总(附案例) - 图13