跳至内容
WebViewGold 从 Vibe Coding 到 App Store
中文
获取 WebViewGold

App Store 审核被拒

准则 4.2.2:当 App Review 认为您的应用是链接合集、宣传册或聚合器时

4.2.2 是 4.2 最低功能规则下范围更窄、也更尖锐的一条。审核人员不只是觉得您的应用内容单薄,而是发现它主要是一个链接菜单、一本营销宣传册,或者给别人的内容套了个框。解决办法不是加更多链接,而是让用户能在应用内完成一件事。

每个平台一次性 $109 起,或由我们的团队全程代劳,$698 起。

  • 审核通过保证 – 否则 14 天内退款
  • 无需编程
  • 一次性付费,免费更新
  • 7×24 小时人工支持
  • 2014 年起德国出品 · ISO 27001

4.2.2 说了什么,以及它与 4.2 有何不同

准则 4.2.2 规定,除目录类应用外,应用不应以营销材料、广告、网页剪辑、内容聚合器或链接合集为主。拒审通常引用 "4.2.2 - Design - Minimum Functionality",并描述审核人员看到的情况:应用主要展示营销内容、主要是外链,或者主要是把别处的内容重新包装,对用户几乎没有持久的价值。

通用的准则 4.2关心的是您的应用是否不只是一个重新包装的网站,而“网站的简单封装”拒审的应对方法针对的是那些作为网站没有问题、用起来却像 Safari 的应用。4.2.2 关乎用途。一个做得非常原生的应用,如果它的主要内容是一串链接或某家企业的广告,照样可能收到 4.2.2。给宣传册加上推送通知,并不会改变它的本质。

会被贴上 4.2.2 标签的六类应用

Link-in-bio 应用

一个个人主页,上面是通往 Instagram、YouTube、网店和电子报的按钮。每点一下都会离开应用。

代理公司或企业宣传册

关于我们、服务、团队、客户评价、联系表单。对潜在客户来说看一次有用,但没人会打开第二次。

把菜单做成 PDF 的餐厅和酒店

一份 PDF 菜单、营业时间,以及一个打开第三方网站的预订按钮。

聚合别人内容的应用

RSS 订阅源、嵌入的新闻网站文章、由联盟营销链接组成的“最划算优惠”列表。价值属于内容来源,而不属于应用。

网站目录

经典的 Lovable 周末项目:把“200 款 AI 工具”做成卡片,每张卡片都打开对应工具的网站。

活动信息应用

一份日程表和场地地图,票务和直播都链接到外部。作为网页没问题,作为应用就显得单薄。

从链接到功能

应用现在有什么审核人员想看到什么WebViewGold 构建模块
在 Safari 中打开外部网站的按钮重要内容都在应用内;离开应用是例外openallexternalurlsinsafaribydefault 设为 false,合作方域名放进 safariblacklist,次要页面用 openspecialurlsinnewtab 在应用内标签页中打开(URL 处理文档)
服务介绍页和联系表单一个有结果的任务:预订、下单、申请报价并跟踪其状态针对状态变化的推送通知(kPushEnabled、oneSignalID),在首次预订后用 registerpush:// 请求权限
一个汇集其他网站文章的信息流您自己的内容,或带有个人价值的精选:收藏、阅读清单、进度用 writevalue:// 和 readvalue:// 保存在设备上的收藏(代码片段见下方),以及一个离线备用页面
一份 PDF 菜单一份真正的菜单:分类、过敏原、收藏、点餐或订座,以及会员卡使用 addpkpass:// 的钱包卡券;PDF 可以作为附加下载保留
一份静态的活动日程个人日程、场次开始前的提醒、门票签到用 qrcode:// 或 barcodescanner:// 签到,用 .ics 链接添加到日历,推送提醒
一个满是链接的主屏幕直达用户反复执行的任务的快捷入口通过 useShortcuts 和 Shortcuts.json 添加主屏幕快捷操作,通过 showNavFooter 添加原生标签栏

我很高兴购买了这个应用!非常简单,文档也很棒。联系客服后,他们回复很快且非常友好,一天之内就解决了我的问题。10/10,值得推荐。

Nelis Geiger · CodeCanyon

目录类应用:明文规定的例外及其界限

Apple 明确点名豁免了目录类应用,许多零售应用都依赖这一点。目录类应用要表现得像一个目录才能通过:按分类浏览、搜索、筛选、带库存状态的商品详情页、收藏,或许再加上门店查找,或用于店内查询的条码扫描器(barcodescanner:// 的结果会写入 barcodescanresult JavaScript 变量)。实际上只是 PDF 宣传册,或者一格格指向网店的链接的目录,会被当作营销材料。实体商品通过您正常的 Web 结账销售,而不是应用内购买;界线在哪里,参见准则 3.1.1。

扭转 4.2.2 拒审

  1. 写下那一件事

    动代码之前,先补完这句话:“在 [应用] 中,[谁] 可以在一分钟内 [完成什么任务]。”如果您写不出来,这个应用首先需要的是产品决策,而不是一次构建。

  2. 让首屏围绕这件事

    一打开就是任务,而不是一张大横幅。用仅在应用内生效的 CSS 隐藏应用里的营销区块(自定义 CSS 文档),或者通过 Config.swift 中的 useragent_iphone / useragent_ipad 识别应用,显示不同的起始页。

  3. 把用户留在应用内

    设置 URL 处理方式,让您自己的内容和合作方页面在应用内或应用内标签页中打开。只有社交媒体主页和真正的外部服务才应该跳转到 Safari。

  4. 给应用加上“记忆”

    收藏、历史记录、进度、购物车、保存的筛选条件。有账号时,存储在您的后端;没有账号时,Read/Write Value API 会把它们保存在设备上(Read/Write Value 文档)。

  5. 增加一个让人回来的理由

    一个真实的通知触发点:您的订单已备好、场次 15 分钟后开始、收藏的商品已到货。背后没有任何通知的推送权限请求不算数。

  6. 找一个从没见过它的人测试

    把 TestFlight 版本交给一位朋友,只告诉对方要完成的事,不给操作说明。对方在哪里迷路,审核人员就会在哪里迷路。

  7. 上传新的构建版本并回复

    使用下方的模板,说明这件事以及每个功能所在的位置,并更新审核备注。

保存在设备上的收藏

一个适用于无账号应用的小工具。writevalue:// 之后的所有内容会被存储为一个字符串;readvalue:// 会把它以 window.storedValues 的形式注入回来。在普通浏览器中则退回使用 localStorage。

javascript
// 通过 WebViewGold Read/Write Value API 保存收藏,在 Web 端使用 localStorage
// "MyAppIOS" 是您在 Config.swift 中追加到 useragent_iphone 和 useragent_ipad 的标记
const inApp = navigator.userAgent.includes("MyAppIOS");

function saveFavorites(ids) {
  const value = JSON.stringify({ fav: ids });
  if (inApp) {
    window.location.href = "writevalue://" + encodeURIComponent(value);
  } else {
    localStorage.setItem("favorites", value);
  }
}

function loadFavorites(callback) {
  const parse = (raw) => {
    try { return JSON.parse(decodeURIComponent(raw)).fav || []; } catch (e) { return []; }
  };
  if (!inApp) { callback(parse(localStorage.getItem("favorites") || "")); return; }
  window.location.href = "readvalue://";
  setTimeout(() => callback(parse(window.storedValues || "")), 200);
}

Resolution Center 回复模板

模板保留英文,因为 Apple 审核人员阅读的是英文。

Resolution Center 回复(修改方括号中的部分)
Hello App Review team,

Thank you for the feedback under Guideline 4.2.2. We agree that the previous build relied too much on links and marketing content, and we have reworked the app in build [number].

[App name] now helps [who] to [core job]. What changed:

1. The home screen opens on [task], not on marketing content. Promotional sections were removed from the app.
2. [Content / booking / ordering] now happens inside the app; only [social profiles] still open externally.
3. Users can [save favorites / keep a reading list / track their orders]; this is stored [in their account / on the device].
4. Push notifications inform users when [order is ready / session starts / saved item is back].

How to test: log in with [demo account] or use the app without an account, then [3 short steps that show the job].

Best regards,
[Name]

不算数的改动

  • 更多链接、更好看的链接网格,或者在同样的链接上加一个搜索框。
  • 用框架嵌入其他网站。那仍然是别人的内容,还可能额外引发知识产权问题。
  • 启动时就弹出推送权限请求,背后却没有任何通知类型。
  • 封装一个不归您所有、也不由您运营的网站。那会让您从 4.2.2 走向山寨和冒充问题。

常见问题

Link-in-bio 应用有可能通过审核吗?

单靠它本身很少能通过。如果您是创作者,不妨做一个您的受众会反复使用的东西,比如独家内容、发布您自己帖子的社区信息流、预约,或带订单跟踪的商店,再把链接放到次要页面。

我的应用是商品目录。这样安全吗?

目录类应用被明确豁免,前提是应用确实像目录一样运作:分类、搜索、商品详情、收藏。只是 PDF 或一串网店链接的目录,会被当作营销材料对待。

新闻应用可以聚合 RSS 订阅源吗?

纯粹聚合其他发布者的内容,正是 4.2.2 点名的情况。原创报道、附有您自己摘要的真正精选,或者个性化推荐和离线阅读,才能让应用拥有自己的价值。

要通过 4.2.2,需要用户账号吗?

不需要。账号只是给应用加上“记忆”的一种方式。设备端收藏、离线内容、扫描器或计算器同样有说服力,只要用户能完成一件事。

这和 4.3 垃圾应用拒审有什么区别?

4.2.2 判断的是您的应用用来做什么。4.3 判断的是它是否与其他应用重复,包括您自己的应用。两者可能同时出现,各自需要单独修复;重复方面请参阅 4.3 指南。

让您的应用上架商店的三种方式

结果相同,只是您需要投入的工作量不同。三种方式都附带审核通过保证和 7×24 小时人工支持。

自己动手

$109 每个平台,一次性付费

WebViewGold 许可证:一个现成的 Xcode 或 Android Studio 项目。粘贴您的 URL,设置名称和图标,开启所需功能,构建并提交。永久免费更新。

在主页查看方案

Cloud Builder

$349 每个许可证,一次性附加购买

无需 Mac、Xcode 或 Android Studio:在浏览器中完成配置,我们在云端构建两个应用,并将其交付到 App Store Connect 和 Play Console。

Cloud Builder 如何运作 试用免费演示

Full Service

$698 每个平台 $798

把您的 URL 和图标发给我们。我们的团队在 72 小时内完成配置、构建并交付您的应用,白标,附源码项目。两个平台共 $1,158。

Full Service 详情 服务提供方: WeSetupYourWebViewApp

冬季特惠价格有效期至 2026年12月31日。

准备好发布您的应用了吗?

App Store & Google Play 审核通过保证 – 否则 14 天内退款

想直接交给我们?Full Service:我们在 72 小时内完成配置、构建并交付,每个平台 $698 起。有疑问?通过 7×24 小时在线聊天联系我们。

退款依据我们 FAQ 中列出的条件:应用因非内容原因被 Apple 和/或 Google 拒审,并在购买后 14 天内提出申请。