自己动手
$109 每个平台,一次性付费
WebViewGold 许可证:一个现成的 Xcode 或 Android Studio 项目。粘贴您的 URL,设置名称和图标,开启所需功能,构建并提交。永久免费更新。
在主页查看方案App Store 审核被拒
准则 2.5.2 禁止应用下载或运行会在审核后改变应用功能的代码。在 WKWebView 中加载的 Web 应用并不是 Apple 针对的对象,所以普通的 WebViewGold 应用是安全的。麻烦始于您的应用运行了它本身并未附带的代码:AI 生成的迷你应用、用户插件或热更新 SDK。
每个平台一次性 $109 起,或由我们的团队全程代劳,$698 起。
准则 2.5.2 要求应用在自身的 bundle 内自包含。应用不得读写自身容器之外的数据,也不得下载、安装或执行会引入或改变功能的代码,无论改变的是它自己的功能还是其他应用的功能。只有一个范围很窄的例外:教授编程的教育类应用可以让学生下载并运行代码,前提是这些代码不作他用,并且用户可以完整查看和编辑源代码。
这条准则以 Apple Developer Program 许可协议为后盾,Apple 在此类案例中引用过其中关于下载的解释型代码的规定(近期版本中为第 3.3.1(B) 节)。概括来说,下载的解释型代码只有在不改变应用主要用途、不为其他代码或应用建立商店、并且不绕过签名、沙盒或其他安全机制的情况下才可以接受。确切措辞请在您的开发者账号中查阅当前版本的协议。
准则 2.5.6 要求浏览网页的应用使用 WebKit,而 WebViewGold 正是如此:您的 Web 应用在 Apple 自家的引擎 WKWebView 中运行,处在应用的沙盒之内。审核通过后更新网站,是所有基于 Web 的应用的工作方式,也是 WebViewGold 应用自 2014 年以来一直在做的事。
Apple 关心的是用途,而不是文件从哪里来。一个习惯追踪应用在网站上新增了一张图表,它依然是习惯追踪应用。而一个在审核通过后通过远程开关变成赌场的习惯追踪应用,无论这个变化是用什么技术实现的,都违反了 2.5.2 以及 2.3.1 中关于隐藏功能的规定。如果某次 Web 更新改变了应用的本质,请把它作为 App Store 更新提交,并附上如实的审核备注;关于Web 更新与原生更新的指南说明了哪些改动需要新的构建版本。
这条备注通常表示,应用、扩展或链接的框架似乎包含可在审核后改变应用行为或功能的代码,或者应用会下载或执行代码。有时它会点名您项目中的某个框架;有时它描述的是审核人员用过的某项功能,例如应用允许用户创建并运行应用,或者会加载可执行的插件。审核人员会要求您移除这项能力后重新提交。

出色的工作!无需任何编码就能轻松完成。简单快捷!创作者也提供了大力帮助!
| 您的应用做什么 | 结论 | 原因 |
|---|---|---|
| 在 WKWebView 中从您的域名加载 Web 应用,由您部署更新 | 没问题 | WebKit 中的 Web 内容,用途与审核时相同 |
把 Web 应用打包在 local-www 中(uselocalhtmlfolder),或者通过 zipfiledownloadfromserver 保留离线副本 | 没问题 | 这是您自己的应用,由 WebKit 渲染;与线上网站同理 |
| AI 返回由您的代码渲染的文本、图片或结构化数据 | 在 2.5.2 下没问题 | 是内容而不是代码;适用准则 1.2的内容审核规则 |
| AI 或用户生成在您的应用内运行的 HTML/JS 迷你应用 | 高风险 | 在您的应用中运行的新软件:至少适用准则 4.7的各项义务,而且 2026 年已有应用构建工具因此被拒 |
| 用户从目录中安装的插件或扩展 | 仅限在 4.7 范围内 | 提供索引、内容审核、数字商品使用应用内购买、不开放原生 API |
| 在运行时修补应用的原生框架或脚本(热更新 SDK) | 被拒 | 典型的 2.5.2 案例;Apple 多年前就曾就此类框架警告过开发者 |
| 审核通过后开启另一个应用的远程开关 | 被拒,并有下架风险 | 隐藏功能(2.3.1)以及用途改变 |
| 学生运行自己所写代码的编程课程 | 可能可以 | 教育类例外:代码可完整查看和编辑,并且不作他用 |
在 TestFlight 版本上重现备注中提到的功能。如果备注点名了某个框架,就在 Xcode 项目中搜索它(Podfile、Package Dependencies)。Cursor 或 Claude Code 添加到 WebViewGold 项目中的原生代码是首要怀疑对象;项目自带的 SDK(OneSignal、Firebase、AdMob、RevenueCat)被广泛使用,并不是 2.5.2 针对的对象。
删除任何下载脚本来改变原生行为、在可访问原生 API 的环境中执行下载代码,或者通过远程配置切换功能的 SDK。远程配置可以继续用于文案、内容以及现有功能的 A/B 测试。
如果您的产品会生成或运行代码,请在服务器上运行,然后展示结果:输出、渲染后的图片、测试报告或导出文件。您可以把预览域名加入 safariwhitelist,让实时预览在 Safari 中打开(URL 处理文档)。据报道,2026 年至少有一款应用构建工具仅靠跳转浏览器还不够,所以请把它当作降低风险的手段,而不是通过的保证。
WebViewGold 的 URL scheme(推送、扫描器、通讯录、NFC 等)是由 WebView 内的页面跳转触发的。如果用户或 AI 生成的代码在您的主文档中运行,它就能像您自己的代码一样触发这些功能。请在独立源(origin)上的沙盒 iframe 中渲染生成的 HTML,从生成的输出中剔除自定义 scheme 链接,并在构建版本上测试生成的内容无法打开任何原生功能。
一段话即可:应用在 WKWebView 中显示您域名下的 Web 应用;不下载任何原生代码;生成的内容是由您自己的代码渲染的数据;所有代码执行都在您的服务器上进行。准则 2.3.1 本来就要求对新功能给出具体说明,审核备注模板为您提供了现成的结构。
移除 SDK 或原生功能需要一个构建号更高的新构建版本。如果只改了 Web 应用,部署后在 TestFlight 版本上验证,然后在 Resolution Center 回复即可。
如果您的应用会显示模型或用户生成的 HTML(格式化回答、报告、图表),请把它隔离在主页面之外。空的 sandbox 属性会阻止脚本、表单和页面跳转;独立的源则让它接触不到您的会话。
<!-- 主应用页面:绝不要用 innerHTML 或 dangerouslySetInnerHTML 注入生成的 HTML -->
<iframe
src="https://render.yourapp-content.com/view?id=abc123"
sandbox=""
referrerpolicy="no-referrer"
style="width:100%;height:70vh;border:0"></iframe>
<!-- sandbox="" = 不运行脚本、不提交表单、不进行顶层跳转。
添加 allow-scripts 就意味着您在运行生成的代码:请先规划好 4.7 的义务和 2.5.2 的要求。
在渲染域名上,还要从输出中移除自定义 scheme 链接(registerpush://、qrcode:// 等)。 -->并非每一处命中都是问题,很多都无害。您要找的是来自模型、用户或远程服务器的文本变成可执行脚本的地方。
# Web 应用执行非自带代码的位置
grep -rnE "eval\(|new Function\(|srcdoc|dangerouslySetInnerHTML|insertAdjacentHTML|document\.write\(" \
--include=*.{ts,tsx,js,jsx,html,vue,svelte} \
--exclude-dir={node_modules,dist,build,.next} .先解释架构,再说明改动。精确的描述往往能得到审核人员的积极回应。模板保留英文,因为 Apple 审核人员阅读的是英文。
Hello App Review team, Thank you for your feedback on [App name] [version] ([build]). We would like to explain how the app works and what we changed. How the app works: [App name] displays our web app at [https://yourdomain.com] in WKWebView (WebKit). The app does not download or execute native code, and its purpose is the one described in the submission: [one sentence about what the app does]. What we changed: - [We removed the SDK [name], which could modify app behavior at runtime.] - [Users can no longer create and run mini apps inside the app. Generated content is now returned as text and images that our own code displays; code runs only on our servers.] - [Previews of user projects now open in Safari instead of inside the app.] Where to verify: [screen or steps]. [New build: [number].] If any part of the app still raises a concern under Guideline 2.5.2, we would be grateful if you could point us to the specific screen so we can address it directly. Best regards, [Name], [email], [phone]
eval 或 new Function。可以,只要应用保持审核时的用途和功能。对基于 Web 的应用来说,修复 bug、新增内容以及同一用途内的新页面都很正常。如果用途发生改变,或者新功能需要新的权限或购买项目,就应该通过附带审核备注的 App Store 更新来提交。
不算。聊天机器人发送文本,接收由您的代码显示的文本或图片,这属于内容。准则 4.7 提到了聊天机器人,准则 1.2 则要求对生成的内容提供过滤和举报功能。
它下载的是您自己 Web 应用的离线副本,在设备没有网络时由 WebKit 渲染。它和线上网站是同一个应用、同一个用途,所以与 URL 同理。不要用它来交付审核时的应用所没有的功能。
帮助人们构建应用的应用确实存在,但 2026 年审核失败的地方,恰恰是在您自己的应用内运行生成的应用。请在服务器上生成和运行,以文件、导出或网页预览的形式交付结果,并做好接受严格审核的准备。规划这项功能之前,请先查看 2.5.2 和 4.7 的最新措辞。
会,如果它下载或加载可执行代码、根据远程指令改变应用行为,或者调用私有 API。原生改动请限制在 Config.swift 和有文档的 WebViewGold 选项范围内,让 AI 智能体去改 Web 应用。
结果相同,只是您需要投入的工作量不同。三种方式都附带审核通过保证和 7×24 小时人工支持。
$109 每个平台,一次性付费
WebViewGold 许可证:一个现成的 Xcode 或 Android Studio 项目。粘贴您的 URL,设置名称和图标,开启所需功能,构建并提交。永久免费更新。
在主页查看方案$349 每个许可证,一次性附加购买
无需 Mac、Xcode 或 Android Studio:在浏览器中完成配置,我们在云端构建两个应用,并将其交付到 App Store Connect 和 Play Console。
Cloud Builder 如何运作 试用免费演示$698 每个平台 $798
把您的 URL 和图标发给我们。我们的团队在 72 小时内完成配置、构建并交付您的应用,白标,附源码项目。两个平台共 $1,158。
Full Service 详情 服务提供方:冬季特惠价格有效期至 2026年12月31日。
App Store & Google Play 审核通过保证 – 否则 14 天内退款
想直接交给我们?Full Service:我们在 72 小时内完成配置、构建并交付,每个平台 $698 起。有疑问?通过 7×24 小时在线聊天联系我们。
退款依据我们 FAQ 中列出的条件:应用因非内容原因被 Apple 和/或 Google 拒审,并在购买后 14 天内提出申请。