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

ChatGPT & Codex

并行运行 Codex 云端任务:一次性修复上架就绪问题,再逐个审阅 pull request

Web 应用首次提交时遇到的大多数问题(安全区域、法律页面、账号删除、错误状态、网站残留元素)彼此独立。这让它们非常适合交给云端 Codex:每个修复一个任务,全部同时在各自的工作区中运行,每个任务最后都产出一个供您审阅的 diff 和一个供您合并的 pull request。关键在于拆分工作,让这些 pull request 不会相互冲突。

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

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

为什么云端任务适合上架就绪工作

Codex 云端任务在云端而不是您的笔记本电脑上运行。您只需发布一次环境(GitHub 仓库、安装依赖的脚本、网络规则和可选的密钥),之后启动的每个任务都会获得一个由它准备好的独立工作区。Codex 编辑代码,运行您的 lint 和测试命令,然后交回一个附带测试输出的 diff。您可以在同一个任务中要求追加修改,然后提交或创建 pull request。即使您的电脑进入睡眠,任务也会继续运行;您可以从 Codex 应用或网页界面、IDE 扩展,或在终端中用 codex cloud 启动它们。

上架就绪工作非常适合这种方式。审核人员要求的修复大多相互独立(安全区域与您的隐私页面无关,账号删除与加载图标无关),每一项都有可检验的完成标准,而且都不需要原生应用:WebViewGold 应用只是加载您部署到生产 URL 上的任何内容。与其开一个涉及所有内容的冗长会话,不如启动四五个聚焦的任务,审阅一个个小的 pull request,再逐个合并。

云端任务做不到的事:构建或签名 iOS 和 Android 应用、在手机上打开结果,或者填写 App Store Connect。这些仍由您、您的 WebViewGold 项目和两个控制台负责。

一次性设置:AGENTS.md、共享辅助函数和环境

大约三十分钟;之后的每个任务都会复用它。

  1. 提交一个包含命令和规则的 AGENTS.md

    云端任务在仓库的副本上工作,所以这个文件会随每个任务一起带上。它需要包含您的安装、lint、类型检查和测试命令(Codex 会在完成前运行它们),以及以不变约定形式写下的商店规则。从 面向 WebViewGold 应用的 AGENTS.md 模板开始,再加上下面的并行工作段落。

  2. 先合并共享辅助函数

    有好几项修复需要知道页面是否运行在原生应用内。在一个任务中或在本地创建 isNativeApp()(检查您在 WebViewGold 中通过 Config.swift 的 useragent_iphone 和 useragent_ipad 以及 Config.java 的 USER_AGENT 设置的 User-Agent 标记),并在分派任务之前合并它。否则五个任务会写出五个辅助函数。

  3. 创建环境

    连接 GitHub,选择仓库,让 Codex 检测运行时。检查安装脚本是否对依赖执行干净安装(例如 npm ci)。网络访问方面,只允许包管理器的域名:这些任务不需要开放的互联网,受限的访问还能防止任务抓取并遵循您从未审阅过的内容。

  4. 让生产环境的密钥远离这里

    布局、法律页面和错误状态完全不需要密钥。如果您的测试需要数据库,就让它们指向一个独立的测试项目。绝不要把生产环境的 service-role key 或支付密钥放进一个无人值守运行任务的环境中。

  5. 发布并做冒烟测试

    发布环境,然后启动一个用完即弃的任务:“运行 AGENTS.md 中的安装、lint、类型检查和测试命令,不做任何修改,报告结果。”如果失败,先修好环境再开始真正的工作;否则每个并行任务都会以同样的方式失败。

AGENTS.md:用于并行任务的段落

把这段加到您现有的 AGENTS.md 中。范围规则让并行的 pull request 保持可合并;pull request 格式则让每一个都能在几分钟内审阅完。

markdown
## Commands (run all of them before you finish a task)
- Install: npm ci
- Lint: npm run lint
- Types: npm run typecheck
- Tests: npm test

## Store-readiness work
This web app is also published as native iOS and Android apps with WebViewGold.
The native apps load https://app.example.com in a WebView. Detect the app only
with isNativeApp() from src/lib/platform.ts.

Rules for every task:
- Stay inside the files and folders named in the task prompt. Several tasks run
  in parallel; changes outside your scope cause merge conflicts. If a fix needs
  a change elsewhere, describe it in the summary instead of making it.
- No new dependencies and no version upgrades unless the prompt asks for them.
- Native features are called only through the WebViewGold URL schemes listed in
  the bridge section of this file. Never invent a native API.
- Digital goods inside the native app go through in-app purchase. Never add a
  Stripe checkout or an external payment link for them behind isNativeApp().
- Users can sign up, so account deletion must keep working.
- Every screen works at 320px width, pads fixed bars with safe-area insets,
  has tap targets of 44px or more and inputs with a font-size of 16px or more.

## Pull requests
Title: [store-readiness] <task name>
Body: what changed, which App Store or Google Play rule it serves, files
touched, how to test it on a phone, and what is left for a human.

我的iOS WebView应用终于通过审核了。谢谢!!

塔哈·法鲁基(Taha Farooqui) · CodeCanyon

拆分工作,让 pull request 互不冲突

任务涉及范围时机完成标准
0. 平台辅助函数src/lib/platform.ts 以及现有的 User-Agent 检查单独进行,最先isNativeApp() 已存在,内联检查已被替换,测试通过
1. 安全区域、点按区域、输入框字号全局 CSS、布局和按钮组件第一批固定栏使用 env(safe-area-inset-*),点按区域不小于 44 px,输入框字号不小于 16 px,320 px 宽度下没有溢出
2. 隐私政策和条款页面新路由,外加一个页脚链接和一个设置链接第一批/privacy 和 /terms 以真实页面呈现,并列出代码实际使用的服务
3. 账号删除设置页面、一个新的服务器函数、/delete-account第一批删除在服务器端执行,让用户退出登录并给出确认;公开页面说明操作步骤
4. 商店审计(仅报告)一个新文件 STORE-AUDIT.md第一批每一项支付、权限、登录提供方和外部链接都附带文件引用列出
5. 加载、空状态和错误状态数据 hook 和页面组件第二批(与任务 1 共用组件)没有空白页面,每个失败的请求都能重试,有全局错误边界
6. 仅限应用内的界面横幅、Cookie 提示、桌面版页眉第二批(依赖任务 0,与任务 1 有重叠)当 isNativeApp() 为 true 时,下载横幅和网站残留元素被隐藏
7. Sign in with Apple、应用内购买身份验证和支付代码稍后,一次一个根据审计结果规划;需要您先完成控制台设置(见这里的提示词 6 和 7)

任务提示词:一个修复、一个范围、一个完成标准

每个任务复制一次,并填写方括号中的内容。范围那一行以及“只描述、不修改”的指令可以防止冲突;完成标准则让 pull request 能快速审阅。

Codex 云端任务(每个修复一个)
任务:[表格中的任务名称,例如“安全区域、点按区域、输入框字号”]

背景:请先阅读 AGENTS.md。这个 Web 应用运行在用 WebViewGold 构建的原生 iOS 和 Android 应用中,它们在 WebView 中加载我们的生产 URL。与此同时,其他 Codex 任务正在修改这个代码库的其他部分。

范围:只修改 [文件或文件夹]。如果修复需要改动这个范围之外的内容,不要动手;在您的总结中描述它。

不要:添加或升级依赖、修改 package.json 中的 scripts、改动身份验证或支付代码、编辑自动生成的文件,或者调用 AGENTS.md 中所列 WebViewGold URL scheme 以外的原生功能。

完成标准:
1. [具体的检查项,例如:每个固定页眉、页脚和底部面板都用 env(safe-area-inset-top) / env(safe-area-inset-bottom) 设置内边距;所有按钮和链接至少 44x44px;所有输入框的 font-size 不小于 16px;320px 宽度下没有横向滚动]
2. AGENTS.md 中的 lint、类型检查和测试命令在这个环境中全部通过。
3. 除了这项修复本身,桌面浏览器用户看到的内容没有任何变化。

最后按照 AGENTS.md 中的格式写一份 pull request 总结,包括如何在手机上测试这项改动,以及所有您未能完成的事项。

在修复任务之外再运行一个审计任务

支付、权限和登录提供方决定了您之后的任务,而在不了解情况时修改它们是有风险的。让一个任务在不碰代码的情况下把它们梳理出来;因为它只添加一个文件,所以可以安全地并行运行。

Codex 云端任务:仅审计,不改代码
在这个任务中不要修改任何代码。在仓库根目录创建 STORE-AUDIT.md,包含以下部分,并为每一项注明文件路径和行号:

1. 支付:用户可以付费的每一个地方。每一项都要写明:路由或组件、销售的内容、是数字商品还是实体商品、当前的支付提供方,以及它在原生 iOS 和 Android 应用中是必须使用应用内购买(数字商品、订阅、点数),还是可以继续使用 Stripe(实体商品、线下服务)。
2. 权限:Web 应用请求的每一项浏览器权限(地理位置、相机、麦克风、通知、剪贴板),以及触发它的用户操作。
3. 登录:每一种登录方式和第三方提供方,以及是否提供 Sign in with Apple。
4. 外部链接:在应用内离开我们域名的每一个链接。
5. 账号数据:用户数据存储在哪里,以及是否存在完整的服务器端删除路径。
6. 您无法从代码中找到答案的未决问题。

Pull request 中唯一的改动就是新的 STORE-AUDIT.md 文件。

按以下顺序审阅每个 pull request

  • 先阅读总结和测试输出。如果 lint 或测试没有运行,先在任务中要求补做,再去看代码。
  • 浏览改动文件的列表。任何超出您指定范围的改动,都是要求补充修改或放弃该任务的理由,而不是合并了再碰运气。
  • 对照这项改动所服务的商店规则进行检查:安全区域修复必须覆盖每一个固定栏;删除修复必须在服务器端真正删除,而不只是隐藏账号。
  • 在手机上打开预览部署(Vercel、Netlify、Cloudflare Pages)中受影响的页面。只在桌面上看起来正常的布局修复不算修复。
  • 让自动审查在 pull request 上运行;结合您商店规则的 Codex 代码审查能发现您一扫而过的问题。
  • 一次只合并一个 pull request。当后面的某个发生冲突时,在该任务中让 Codex 基于当前的 main 进行 rebase 并解决冲突;如果 diff 很小,也可以从最新的 main 重新启动该任务。
  • 最后一次合并之后,部署生产环境,运行 App Store 上架就绪检查,并在 WebViewGold 应用的 TestFlight 或内部测试构建版本中测试各个流程。

那些耗费的时间比并行任务省下的还多的陷阱

  • 两个任务编辑同一个组件。省下的时间全都花在了合并冲突上。按文件夹拆分,或者把第二个任务挪到下一批。
  • 任务擅自“改进”依赖。在内边距修复旁边来一次框架升级,会产出一个没人能审阅的 pull request。AGENTS.md 规则禁止这样做;请拒绝无视这条规则的 pull request。
  • 同一个任务启动了两次,并且两个版本都合并了。按照表格的行给任务命名,并立刻关闭重复的任务。
  • 凭空捏造的原生 API。代理喜欢写 window.webkit.messageHandlers 调用,或者编造一个 window.WebViewGold 对象。WebViewGold 的功能是 registerpush:// 或 shareapp:// 这样的 URL scheme;其他任何东西在应用中都不起作用。
  • 不在手机上检查就合并。底部栏藏在主屏幕指示条下面,单元测试照样能愉快地通过。
  • 一个巨型任务。把“让应用达到上架标准”作为一个任务,会返回一个涉及 60 个文件的 diff。每个任务只处理一条规则。

常见问题

我可以同时运行多少个 Codex 云端任务?

OpenAI 没有公布一个固定的数字;使用限额取决于您的 ChatGPT 套餐。实际上,限制在于您的审阅能力:每批三到五个小任务,是一个人在一个下午能认真审阅完的量。

云端任务会遵循我的 AGENTS.md 吗?

会。每个任务都在您仓库的副本上工作,所以已提交的 AGENTS.md(以及子文件夹中嵌套的 AGENTS.md)与在 CLI 或 IDE 扩展中一样生效。未提交的本地改动对云端任务不可见。

云端任务能在 iPhone 上检查布局吗?

不能。它会在自己的环境中运行您的测试命令;如果您的仓库包含基于浏览器的测试,并且安装脚本配置好了它们,也会运行这些测试。真正的检查是在手机上查看预览部署,以及在提交之前使用 TestFlight 或内部测试构建版本。

两个 pull request 冲突时该怎么办?

先合并更重要的那个,然后在另一个任务中让 Codex 基于当前的 main 进行 rebase 并解决冲突。对于小的 diff,从最新的 main 重新启动该任务往往更快。

环境应该获得完整的互联网访问权限吗?

对这些任务来说没有必要。包管理器的域名就足以完成安装;开放访问会让任务读取不可信的页面,并把数据发送到您意想不到的地方。只有当某个测试确实需要时,才添加特定的域名。

云端任务能配置 WebViewGold 项目吗?

如果原生项目在仓库中,它可以编辑 Config.swift 和 Config.java,例如设置 URL 或 User-Agent 标记。它无法构建、签名或上传;这些要靠 Xcode、Android Studio 或 Cloud Builder。

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

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