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

Cursor

从 Cursor 代理到 App Store 和 Google Play:端到端工作流程

您用 Cursor 的代理构建了 Web 应用,要把它作为 iOS 和 Android 应用发布,并不需要第二套代码库。用一条项目规则让代理了解原生应用的背景,让它规划并执行一轮上架就绪检查,然后部署、把 WebViewGold 指向该 URL、构建并提交。下面是完整的步骤顺序,附规则文件和提示词。

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

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

目标:一套代码库,三个目的地

您的 Cursor 项目继续运行在它的 URL 上,由两个原生应用来加载它。WebViewGold 以现成的 Xcode 项目和现成的 Android Studio 项目的形式提供这两个应用。主界面在 iOS 上是 WKWebView,在 Android 上是 Android WebView,原生外壳则补上浏览器标签页做不到的东西:推送通知、离线页面、启动画面、原生分享面板、生物识别提示,当然还有商店页面。

所以代理并不是在写一个移动应用,而是让您的 Web 应用表现得像一个应用,这恰恰是审核人员依据准则 4.2检查的内容。请在脑海中把三个地方分开:代码仓库(代理在这里工作)、WebViewGold 项目(Config.swift 和 Config.java 中的少量设置值),以及商店控制台(代理起草,您来提交)。

第零步:一条代理无法忽略的项目规则

Cursor 从 .cursor/rules/ 加载项目规则,这些文件必须使用 .mdc 扩展名;放在该文件夹中的普通 .md 文件会被忽略。把下面的内容保存为 .cursor/rules/native-release.mdc。它刻意写得很短,只关注发布;Cursor rules 模板包含完整的桥接参考和一条限定范围的 UI 规则。

markdown
---
description: Native app release context (WebViewGold) and store rules for this repo
alwaysApply: true
---

# This web app also ships as native iOS and Android apps
- Production URL: https://app.example.com (the only URL the native apps load).
  Never point anything at localhost, preview deployments or tunnel URLs.
- The apps are WebViewGold shells around this URL. Do not suggest React Native,
  Expo, Capacitor or a separate mobile codebase.
- Native app detection: the user agent contains "MyAppNative" (set in WebViewGold).
  Use isNativeApp() from src/lib/platform.ts; never sniff the user agent elsewhere.
- Native features are URL schemes, e.g. window.location.href = "registerpush://".
  Call them only when isNativeApp() is true and keep a web fallback.
  Reference: https://www.webviewgold.com/llms-full.txt (never invent a scheme).

# Store invariants (check them at the end of every task)
- /privacy and /terms exist, have real content, are linked in footer and settings.
- If users can sign up, they can delete their account in the app (server-side).
- If Google or another social login exists, Sign in with Apple is offered too.
- No digital goods sold through Stripe or other external links inside the iOS app.
- Every screen has loading, empty and error states. No dead links, no "coming soon".
- Layout works from 320 px; fixed bars use env(safe-area-inset-*); tap targets >= 44 px.

# Commands
- Dev: npm run dev | Lint: npm run lint | Test: npm test | Build: npm run build

# Done means
Lint, tests and build pass; you checked the change in the browser at 390 px and
320 px width; you listed what I must test on a real phone.

从代码仓库到商店的工作流程

预计需要您自己投入一到两天时间;日历上的大部分时间花在开通账户和等待审核上。

  1. 提交规则并确认它已生效

    添加规则文件并 commit,然后打开一个新的代理对话。问它:“这个对话适用哪些项目规则?”如果回答里没有 native-release,请检查扩展名和 front matter。如果您还使用 Cursor 的云端代理或其他工具,请把这些硬性规则同步写进 AGENTS.md,Cursor 同样会读取它。

  2. 在任何修改之前先规划就绪检查

    切换到 Plan 模式(在聊天输入框中按 Shift+Tab 可在各模式之间轮换),粘贴下面的提示词,让代理研究代码库并提出它的问题。修改计划,直到它适合您的技术栈,把计划保存到工作区,让它与代码一起纳入版本管理,然后让代理按计划构建。

  3. 让代理在浏览器中检查自己的工作

    Cursor 的代理可以控制浏览器来截图和测试页面。让它以 390 px 和 320 px 宽度打开每个主要路由,并报告它看到了什么。这样能赶在审核人员之前发现溢出和被遮挡的按钮,但它无法替代在手机上测试真实应用。

  4. 部署到永久 URL

    部署到 Vercel、Netlify、Cloudflare Pages 或您自己的服务器,并绑定您自己的域名。URL 会被编译进原生应用,所以请使用您会长期保留的那个(为什么自定义域名很重要)。然后直接加载 /privacy 和 /delete-account,确认深层路由不会返回 404。

  5. 配置 WebViewGold 项目

    iOS:在 Config.swift 中设置 host 和 webviewurl,并把您的标记写入 useragent_iphone 和 useragent_ipad。Android:在 Config.java 中设置 HOST、HOME_URL 和 USER_AGENT。如果使用 Google 登录,请把触发 URL 添加到 google_login_helper_triggers(iOS)和 GOOGLE_LOGIN_HELPER_TRIGGERS(Android)。如果您的 Web 应用稍后才通过 registerpush:// 请求推送权限,请把 askforpushpermissionatfirstrun 设为 false。您可以在 Cursor 中打开这些文件,让代理来编辑;请对照iOS 设置文档逐行审阅。

  6. 构建并上传

    有 Mac 的话,在 Xcode 中归档并上传到 App Store Connect,再在 Android Studio 中为 Play Console 构建一个已签名的 App Bundle。没有 Mac,或者不想安装这两个 IDE:Cloud Builder(每个许可证一次性 $349 的附加服务)会在浏览器中构建两个应用并替您上传。

  7. 商店页面、审核备注、提交

    让代理根据真实代码起草隐私政策、App Privacy 和数据安全(Data safety)问卷答案、应用描述以及审核备注。您把它们粘贴到控制台,添加真实截图,然后提交。新的个人 Google Play 开发者账户必须先和测试人员完成一轮封闭测试,才能获得正式版发布权限。

出色的工作!无需任何编码就能轻松完成。简单快捷!创作者也提供了大力帮助!

卢卡斯·杜波依斯(Lucas Dubois) · CodeCanyon

上架就绪提示词(先用 Plan 模式)

针对典型的 React 或 Next.js 应用编写;代理会根据您的技术栈加以调整。预计它会问您用户数据存在哪里、用的是哪个身份验证提供商。

在 Plan 模式下粘贴到 Cursor,然后用 Agent 模式构建
这个 Web 应用也将作为原生 iOS 和 Android 应用发布。WebViewGold 会在 WKWebView(iOS)和 Android WebView 中加载我们的生产环境 URL。请遵循项目规则 native-release。把下面的工作规划为多个独立的 commit,任何涉及支付或删除数据的操作都要先问我,最后给出总结,并列出我必须在真实手机上运行的测试。

1. 平台辅助函数:创建 src/lib/platform.ts,包含 isNativeApp()(当 navigator.userAgent 包含 "MyAppNative" 时返回 true),以及 isIOSApp() 和 isAndroidApp()。用它替换其他所有 User-Agent 检查。
2. 移动端布局:viewport meta 标签带有 viewport-fit=cover;从 320 到 1024 px 都没有横向滚动;点按区域至少 44 x 44 px;输入框字号不小于 16 px;固定页眉、标签栏和底部弹出面板留出安全区域内边距;没有只能靠悬停操作的控件。
3. 类应用导航:在窄屏上,主要板块点一下即可到达,始终有返回的路径,只有离开我们域名的链接才在应用外打开。
4. 法律与账户:根据代码实际收集的数据(检查身份验证、分析、支付、上传)建立真实的 /privacy 和 /terms 路由;在设置中添加“删除账户”操作,在服务器端删除数据和身份验证用户;添加一个公开的 /delete-account 页面。
5. 登录:如果存在 Google、Facebook、GitHub 或其他社交登录,把 Sign in with Apple 添加为同等地位的选项。绝不要在弹出窗口或新窗口中打开 OAuth。
6. 状态:每次数据请求都有加载状态、空状态和带重试的错误状态,一个友好的 404 页面,控制台中没有未处理的 promise rejection。
7. 仅限 Web 的元素:当 isNativeApp() 为 true 时,隐藏应用商店徽章、“下载我们的应用”和“添加到主屏幕”提示、构建工具徽章,以及法律上并非必需的 Cookie 横幅。
8. 支付:列出所有销售数字商品、订阅或点数的地方。不要修改它们,只报告。
9. 验证:运行 lint、测试和生产构建,然后在浏览器中以 390 px 和 320 px 打开每个主要路由,描述您仍然看到的任何问题。
10. 起草 docs/store/review-notes.md(用英文撰写,供审核人员阅读):应用做什么、审核人员如何登录(演示账户凭据留空,由我填写),以及他们可以试用哪些原生功能。

在这个工作流程中,Cursor 的哪个功能负责什么

Cursor 功能用途注意事项
项目规则(.cursor/rules/*.mdc)让每次代理运行都带上原生应用背景和商店硬性规则必须是 .mdc;Cursor 建议每条规则不超过 500 行
Plan 模式在任何文件改动之前,先就就绪检查的内容达成一致除非您把计划保存到工作区,否则它们会保存在您的主文件夹中
代理浏览器控制以手机宽度为每个路由截图,点击走完注册和删除流程320 px 宽的桌面浏览器并不是原生 WebView;仍要在手机上测试
检查点(Checkpoints)回滚一次跑偏了的代理运行保存在本地,与 Git 相互独立;大规模运行前先 commit
Cloud Agents以分支和 pull request 的形式并行运行相互独立的就绪任务详见并行就绪检查指南
Bugbot依据商店检查清单自动审查 pull request会忽略 .cursor/rules;它读取的是 .cursor/BUGBOT.md

按下提交按钮前的检查清单

  • Config.swift 和 Config.java 指向生产域名,User-Agent 标记与 platform.ts 中的一致。
  • 开启飞行模式时显示 WebViewGold 的离线页面,而不是空白页。
  • Google 登录在应用内可以使用(已设置 Social Login Helper 触发规则),旁边还有 Sign in with Apple。
  • 账户删除已用测试账户完成端到端验证,审核人员的演示账户已写进审核备注。
  • 如果使用推送,权限提示会在合适的时机出现,而不是在第一个界面就弹出。
  • 免费的App Store 就绪检查在您的生产 URL 上全部通过。

Cursor 用户常踩的坑

  • 代理建议“为了更好的移动体验”用 Capacitor 或 Expo 重写。规则禁止这样做;如果它仍然这样建议,请在提示词里再强调一次。
  • 预览部署的 URL 出现在 Config.swift 里。那里只应该放生产域名,因为日后更改就意味着要发布新的商店构建版本。
  • 用 window.open 或弹出窗口打开 OAuth。嵌入式 WebView 会拦截这种方式;Google 和 Facebook 登录请交给 Social Login Helper 处理。
  • 只在桌面端检查过就被报告为“已完成”的功能。坚持要求做 320 px 检查,并亲自在手机上测试。
  • iOS 应用中仍然能看到用于购买点数或订阅的 Stripe 结账。请先借助Stripe 与应用内购买决策指南做出决定。
  • API 密钥出现在客户端 bundle 中。部署前让代理在生产构建输出中搜索密钥。

常见问题

Apple 或 Google 在意代码是 Cursor 写的吗?

不在意。审核人员看的是行为、完整性、隐私和支付。代码是用哪个编辑器或代理写出来的,他们根本看不到。

Cursor 代理能编辑 WebViewGold 的 Xcode 和 Android Studio 项目吗?

可以,它们是普通的项目文件夹,所以代理可以修改 Config.swift 和 Config.java 中的值。请只让它改配置。签名、证书和 Bundle ID 由您自己在 Xcode、Android Studio 或 Cloud Builder 中设置,会更快也更安全。

我需要 Mac 吗?

只有走手动 Xcode 路线时才需要。WebViewGold Cloud Builder 会在浏览器中构建并上传 iOS 和 Android 应用,因此整个工作流程在 Windows 或 Linux 上同样可行。

应该用 .cursorrules 还是 .cursor/rules?

请使用 .cursor/rules 文件夹和 .mdc 文件;它既支持始终生效的规则,也支持限定范围的规则。Cursor 还会读取项目根目录和子文件夹中的 AGENTS.md,如果其他工具也在同一个代码仓库上工作,这会很方便。

如果应用被拒了怎么办?

在项目规则生效的情况下,把完整的拒审内容粘贴到一个新的代理对话中,让它做分诊:审核人员看到了什么、对应哪条准则、最小的修复方案,以及一份给 Resolution Center 或 Play Console 的回复草稿。

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

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