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

Cursor

用 Cursor 后台代理做上架就绪检查:并行任务,以 pull request 形式审查

Cursor 的后台代理(Background Agents)现已更名为 Cloud Agents,它们在隔离的云端机器中运行,在各自的分支上工作,最后交回一个 pull request。这非常适合 App Store 上架准备:把就绪检查拆分成相互独立的任务,同时启动,在任何改动进入原生构建之前,像审查同事的 PR 一样审查每个结果。

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

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

为什么上架准备很适合交给并行代理

上架就绪检查是一份基本相互独立的修复清单:法律页面、账户删除、移动端布局、错误状态、隐藏仅限 Web 的元素、审核备注。在一个漫长的本地会话中,这些改动会堆成一个难以审查的大 diff。分给多个云端代理之后,每个任务只改动自己的文件,各自形成一个 pull request,可以单独接受、退回或重新运行。

目标与Cursor 端到端工作流程中的相同:当 WebViewGold 在原生 WebView 中加载您的 Web 应用时,它表现得像一个应用。本页只讲并行的部分,以及哪些事仍需您亲自完成。关于发布 Cursor 项目的其他内容,都汇总在Cursor 专题页上。

六个要点,了解 Cloud Agents

隔离的机器

每个代理都在自己的云端虚拟机中运行,带有完整的开发环境。它克隆您的代码仓库,在单独的分支上工作,然后把结果推送回来供您审查。

多种启动方式

在 Cursor 的代理输入框下方选择 Cloud,在任何设备上使用 cursor.com/agents,在 Slack 或 Linear 中 @cursor,或者在 GitHub issue 或 pull request 中评论 @cursor。

先连接源代码管理

需要由 Cursor 账户管理员连接源代码管理平台(GitHub、GitLab、Bitbucket Cloud 或 Azure DevOps),并且代理需要对代码仓库拥有读写权限。

密钥放在控制台里

把 API 密钥和测试凭据作为 secrets 添加到 Cursor 控制台中,而不是提交 .env 文件。它们在代理启动时注入,所以已经在运行的代理看不到新添加的密钥。

它们会读取 AGENTS.md

Cursor 的云端代理文档写得很明确,所以请把原生应用背景和商店硬性规则写进 AGENTS.md,而不只是写在 .cursor/rules 中。

按用量计费

运行费用按所选模型的价格计算,而且并非所有套餐都包含这项功能。首次使用时需要设置一个支出上限;在一次启动六个代理之前,请把它设在合理的范围内。

给每个代理一个可用的工作环境

代理可以自行搭建环境(并保存为快照),您也可以提交 .cursor/environment.json。对于典型的 Node Web 应用,这样就够了:安装依赖,在代理能看到的终端中运行开发服务器,暴露端口。字段名称来自 Cursor 公布的 schema;终端的 description 会展示给代理看。

json
{
  "install": "npm ci",
  "terminals": [
    {
      "name": "web",
      "command": "npm run dev -- --port 3000",
      "description": "Dev server. Check changed routes here at 390 px and 320 px width."
    }
  ],
  "ports": [
    { "name": "web app", "port": 3000 }
  ]
}

只要有一个优化良好的Web应用版本,几分钟内您就能拥有一个出色的移动应用。除此之外,客户服务非常友好且乐于助人!我只能说:推荐WebViewGold :-)

朱利安·科赫(Julian Koch) · 联合创始人 Dueldonkey · CodeCanyon

在 AGENTS.md 中添加云端代理章节

在启动任何代理之前,把它提交到默认分支。第一部分是共享的原生应用背景;第二部分告诉每个代理,作为多个并行工作者之一时该如何行事。

markdown
## Native app (WebViewGold)
This web app also ships as iOS and Android apps. WebViewGold loads
https://app.example.com in a native WebView; every deploy is live in both apps.
- Detect the app only with isNativeApp() (user agent contains "MyAppNative").
- Native features are URL schemes from https://www.webviewgold.com/llms-full.txt.
  Never invent one; always keep a web fallback.
- Store invariants: real /privacy and /terms; in-app account deletion (server-side);
  Sign in with Apple next to any social login; no external checkout for digital
  goods in the iOS app; loading, empty and error states; layout works at 320 px.

## Cloud agents
- One task per agent. Touch only the files the task needs. If you must edit a
  shared layout file, say so at the top of the PR description.
- Run npm run lint, npm test and npm run build before you push.
- Check every route you changed in the browser at 390 px and 320 px and describe
  what you saw in the PR.
- PR description: what changed, how you verified it, open questions, and what
  needs a test on a real iPhone and Android phone.
- You cannot run the native app. Never claim you tested on iOS or Android.

把检查拆分成并行任务

代理任务典型文件完成标准
1. 法律页面根据代码实际收集的数据建立真实的 /privacy 和 /terms,并从页脚和设置中链接路由、页脚、设置界面两个 URL 都能直接加载,并列出每个收集数据的 SDK
2. 账户删除设置中的“删除账户”以及公开的 /delete-account 页面;服务器删除数据、文件和身份验证用户设置、API 路由、身份验证辅助函数测试用户已从数据库和身份验证提供商中消失(删除要求)
3. 状态与死胡同加载状态、空状态和带重试的错误状态;404 页面;移除“即将推出”按钮数据组件、路由器离线时点击会显示错误状态,绝不会出现空白屏幕
4. 应用模式isNativeApp() 辅助函数;在应用内隐藏商店徽章、安装提示和构建工具徽章平台辅助函数、横幅伪造 User-Agent 后,所有仅限 Web 的元素都会隐藏
5. 商店草稿docs/store/:审核备注、描述、关键词,以及用于 App Privacy 和数据安全问卷的数据清单仅文档数据清单中的每种数据类型都能对应到代码仓库中的代码
6. 移动端布局(最后进行)溢出、点按区域、安全区域内边距、16 px 输入框、没有只能悬停操作的控件CSS、布局组件任何主要路由在 320 px 下都没有横向滚动

六个代理共用一个提示词模板

共享部分保持完全一致,这样每个 pull request 的结构都相同;只有任务部分不同。示例展示的是代理 2。

粘贴到每个 Cloud Agent 中,只替换 TASK 部分
背景:这个 Web 应用也会通过 WebViewGold 作为原生 iOS 和 Android 应用发布,WebViewGold 会在 WKWebView 和 Android WebView 中加载我们的生产环境 URL。请先阅读 AGENTS.md,并遵循其中的“Native app”和“Cloud agents”两个章节。

本次运行的规则:
- 只处理下面的任务。除非任务需要,否则不要重构无关的代码,也不要添加依赖。
- 推送之前运行 lint、测试和生产构建。
- 打开一个标题为“store-readiness: <任务名称>”的 pull request。在描述中列出改了什么、如何验证的(路由和宽度)、未解决的问题,以及我必须在真实的 iPhone 和 Android 手机上测试的内容。
- 如果有不明确的地方,例如哪些表存放用户数据,请停下来在 pull request 中提问,不要猜测。

TASK:账户删除
- 在设置中添加一个带确认步骤的“删除账户”操作。
- 确认后,调用一个服务器端接口:在所有引用该用户的表中删除属于该用户的行,删除该用户存储的文件,并删除身份验证用户。然后退出登录并显示确认界面。
- 添加一个公开的 /delete-account 页面,说明应用内的操作步骤,并提供一种无需应用即可申请删除的方式(表单或电子邮件地址)。
- 添加一个测试:创建一个用户,删除它,并断言没有残留任何行或文件。

执行这轮检查

大约一小时的准备工作,之后主要是审查时间。

  1. 连接源代码管理并准备环境

    由管理员在 Cursor 中连接代码仓库平台。提交 environment.json,或者让第一个代理搭建环境并保存为快照,这样后续代理启动得更快。

  2. 提交 AGENTS.md 和 .cursor/BUGBOT.md

    代理读取 AGENTS.md;Bugbot 读取 .cursor/BUGBOT.md(示例见下文)。两者都必须在首次启动之前进入默认分支。

  3. 添加 secrets 和测试账户

    把预发布(staging)数据库 URL、测试凭据和 API 密钥作为控制台 secrets 保存。没有测试登录,代理就无法检查登录后的界面,只会告诉您它们“应该能用”。

  4. 同时启动代理 1 到 5

    从代理输入框(Cloud)或 cursor.com/agents 启动它们,或者为每个任务创建一个 GitHub issue,并附上提示词评论 @cursor。等其他代理的改动合并后再启动代理 6,因为布局工作会改动相同的组件。

  5. 审查每个 pull request

    阅读 diff 和描述,让 Bugbot 发表评论,并在手机浏览器中打开预览部署。要请求修改,就在 pull request 中评论 @cursor,并写明要修复什么。

  6. 合并、部署、在真实应用中测试

    按合理的顺序合并,部署到生产环境,然后在真机上测试 WebViewGold 构建版本。云端代理无法运行原生应用,所以这一步仍由您负责。

.cursor/BUGBOT.md:每个 pull request 都适用的商店审核检查清单

Bugbot 不使用您的 .cursor/rules 文件;它读取 .cursor/BUGBOT.md(根目录中的文件总会读取,嵌套的文件则在改动的文件附近时读取)。它在每次 pull request 更新时运行,评论 cursor review 或 bugbot run 可以手动触发。

markdown
# Store review rules
This app ships as iOS and Android apps via WebViewGold (native WebView around our URL).

Flag as a bug:
- New fixed or sticky UI without env(safe-area-inset-*) padding.
- Tap targets smaller than 44 x 44 px, or hover-only interactions.
- OAuth opened via window.open, target="_blank" or a popup.
- A native URL scheme (registerpush://, shareapp://, bioauth:// ...) called without
  an isNativeApp() check or without a web fallback.
- Purchase or upgrade buttons for digital goods that link to an external checkout
  inside the native app.
- Removing or breaking /privacy, /terms, /delete-account or the Delete account action.
- Data fetching without loading, empty and error states.
- Secrets or service-role keys in client-side code.

Ignore: styling preferences, naming, and refactors that do not change behavior.

每个 pull request 都要检查的内容

  • diff 只改动与任务相符的文件;出现无关的改动就应该退回。
  • lint、测试和构建都已运行,并且描述中写明了这一点。
  • 登录后的界面确实检查过:描述中写明了测试账户,而不是“应该能用”。
  • 没有悄悄混入新的 SDK 或跟踪器,否则您必须在App Privacy 和数据安全中申报。
  • 文案是真实的:隐私政策里没有 Lorem ipsum,也没有“Your Company Inc.”。
  • 所有原生功能(推送、分享、生物识别)都放在 isNativeApp() 判断之后,并有 Web 回退方案。

常见的坑

  • 多个代理改同一批文件:合并冲突会吃掉您省下的时间。请按文件区域拆分,而不是按想法拆分。
  • 声称“已在 iOS 上测试”的代理。它们运行在没有您原生应用的云端虚拟机中;真机测试仍由您负责。
  • 预览部署的 URL 被复制进 WebViewGold 配置。Config.swift 和 Config.java 中只能放生产域名。
  • 因为代理“需要”而被提交的密钥。请使用控制台 secrets,并轮换所有曾进入代码仓库的密钥。
  • 六个代理都用大模型,费用会累积起来。先从两三个开始,检查 pull request 的质量,再逐步扩大。
  • AGENTS.md 和 .cursor/rules 互相矛盾。代理会照它读到的那个执行;请让硬性规则保持完全一致(如何只维护一个来源)。

常见问题

后台代理和 Cloud Agents 是一回事吗?

是的。Cursor 把 Background Agents 更名为 Cloud Agents。较早的教程仍然使用旧名称;概念是一样的:在隔离的云端虚拟机中运行、在自己的分支上工作并交回结果的代理。

Cloud Agents 会遵循我的 .cursor/rules 吗?

Cursor 的云端代理文档明确说明它们会读取 AGENTS.md,所以每个代理都必须遵守的内容放在那里最稳妥。项目规则留给本地工作使用,并保持相同的硬性规则。

Cloud Agent 能构建 iOS 应用吗?

不能。构建和签名 iOS 应用需要 macOS 上的 Xcode,而这些代理运行在云端开发环境中。请在 Mac 上用 Xcode 构建,或使用 WebViewGold Cloud Builder,它会在浏览器中构建并上传两个应用。

我能从 GitHub issue 启动代理吗?

可以。连接源代码管理之后,在 issue 或 pull request 中评论 @cursor 并附上您的指示即可。每个就绪任务对应一个 issue,还能让您清楚地记录做过哪些工作。

代理会自己合并到 main 吗?

云端代理在单独的分支上工作,并把它推送回来供您审查。不过还是请保护好您的默认分支,确保未经人工审查的内容不会进入生产环境。

一次应该运行多少个代理?

有多少个相互独立的任务,就运行多少个。这轮检查适合六个,但在您信任输出质量之前,先从两三个开始,并把布局工作放在最后。

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

结果相同,只是您需要投入的工作量不同。三种方式都附带审核通过保证和 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 天内提出申请。