自己动手
$109 每个平台,一次性付费
WebViewGold 许可证:一个现成的 Xcode 或 Android Studio 项目。粘贴您的 URL,设置名称和图标,开启所需功能,构建并提交。永久免费更新。
在主页查看方案Gemini CLI
Gemini CLI 可以在终端里构建并部署您的 Web 应用;WebViewGold 则把已部署的 URL 变成原生 iOS 和 Android 应用。本指南为您提供一个让每次改动都符合商店要求的 GEMINI.md、一条 Firebase Hosting 部署路径、一段可直接粘贴的就绪提示词,以及 Config.swift 和 Config.java 的设置。先说 2026 年的一项变化:Google 已把个人消费者账户从 Gemini CLI 迁移到 Antigravity CLI,所以请先确认您实际运行的是哪个工具。
每个平台一次性 $109 起,或由我们的团队全程代劳,$698 起。
WebViewGold 应用是一个原生 iOS 或 Android 项目,它的主界面是一个指向您生产 URL 的 WebView。为此,Gemini CLI 无需编写任何 Swift 或 Kotlin:它继续在 Web 项目上工作,您来部署,两个商店应用在下次启动时就会显示新版本。原生这一侧只是 Config.swift 和 Config.java 中一小串有文档说明的选项,再加上您的图标、名称和签名。
Gemini CLI 很合适,因为它本来就待在干活的地方。它读取您的文件、提出修改建议并运行 shell 命令(经您批准,或直接通过 ! shell 模式),所以同一个会话就能修复布局 bug、运行构建并调用 Firebase CLI。如果您还想让它看到 WebViewGold 项目,请用 /directory add 添加它们的文件夹,或在启动时加上 --include-directories,同时让签名相关的内容远离它的触及范围。
如果您是从 Firebase Studio 起步的(Google 正在逐步关停它:自 2026 年 6 月 22 日起不能再新建工作区,2027 年 3 月 22 日正式关闭),或者从 Google AI Studio 导出了原型,请把代码导出到本地文件夹或 GitHub,然后在这里继续。您的 Firebase Auth、Firestore 和 App Hosting 后端会独立于这些编辑器继续运行。想先比较一下工具?AI 编码代理概览涵盖了我们写过指南的每一个代理。
Gemini CLI 会加载 ~/.gemini/GEMINI.md,以及工作区及其上级文件夹中的每一个 GEMINI.md,把它们拼接起来随每条提示词一起发送(文档)。运行 /init 根据您的代码起草一份,然后添加类似下面的章节。/memory show 会准确显示加载了哪些内容。
# Project context
## Native app context (WebViewGold)
- This web app also ships as iOS and Android apps built with WebViewGold. The apps
load https://app.example.com in a WKWebView / Android WebView. Every deploy is live
in both apps; only changes in ios/ or android/ need a new store build.
- Hosting: Firebase Hosting, static build in dist/. Deploy only when I ask, with
`npm run build && firebase deploy --only hosting`.
- The apps send a custom user agent containing the token WebViewGoldApp.
Branch on isNativeApp() in src/lib/native.ts, never on generic WebView sniffing.
- Native features are URL schemes handled by the wrapper (registerpush://,
getonesignalplayerid://, shareapp:// ...). Use only schemes documented in
https://www.webviewgold.com/llms-full.txt and keep a browser fallback.
## Store rules every change must respect
- Layout works from 320 px wide; fixed bars use env(safe-area-inset-*);
tap targets at least 44 x 44 px; no hover-only controls.
- /privacy, /terms, /delete-account and the in-app Delete account action keep working.
- Sign in with Apple stays next to any other social login (Apple 4.8).
- No new web checkout for digital goods without asking me (Apple 3.1.1).
- No popup windows for sign-in or payment inside the app.
- Only publishable keys in client code. A Gemini API key, Stripe secret key or
service account never goes into a VITE_ variable or into src/.
## Out of bounds
- Do not edit ios/ or android/ unless the task says so.
- Never touch signing, provisioning, keystores or the WebViewGold purchase code.
@./docs/store-checklist.md
我很高兴购买了这个应用!非常简单,文档也很棒。联系客服后,他们回复很快且非常友好,一天之内就解决了我的问题。10/10,值得推荐。
已经为 Codex 或其他代理准备了 AGENTS.md,或者打算迁移到 Antigravity CLI?只保留一个文件,并通过项目中 .gemini/settings.json 的 context.fileName 告诉 Gemini CLI 去读取它。同一个文件还可以注册 Firebase MCP 服务器,在普通 shell 命令之外再为代理提供 Firebase 工具(包括一个部署工具)。AGENTS.md 模板和CLAUDE.md 模板包含更长的规则集,您可以合并进来。
{
"context": {
"fileName": ["AGENTS.md", "GEMINI.md"]
},
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}预计需要一天的工作量;开通账户和商店审核是最慢的部分。
照常让 Gemini CLI 构建功能,但从一开始就以手机宽度测试每个界面(在浏览器的设备工具栏中设为 375 px)。让它尽早添加 isNativeApp() 辅助函数,这样后续的提示词就可以依赖它。
亲自运行下面的一次性设置(firebase login 会打开浏览器),然后让代理在您批准后运行构建和部署。您的站点会在 PROJECT_ID.web.app 上提供服务;在构建应用之前,请先在 Firebase 控制台中连接一个自定义域名,因为 URL 会被编译进应用。服务器端渲染的 Next.js 或 Angular 应用则应改用 Firebase App Hosting(需要 Blaze 套餐)。
粘贴下面的提示词。如果您的版本提供 Plan Mode(/plan),就从它开始,先阅读计划,再让它实施。在设置中启用 checkpointing,这样 /restore 就能撤销错误的编辑。
审核人员会对基于 Web 的应用套用准则 4.2。推送通知是常见的应对方式:在 iOS 上把 askforpushpermissionatfirstrun 设为 false,在新手引导结束后调用 registerpush://,然后把从 getonesignalplayerid://(或 getfirebaseplayerid://)获得的订阅 ID 存到用户资料中。
iOS(Config.swift):host、webviewurl、useragent_iphone、useragent_ipad、推送开关。Android(Config.java):HOST、HOME_URL、USER_AGENT、PUSH_ENABLED 或 FIREBASE_PUSH_ENABLED。下文的表格列出了每项设置的对应位置。
如果有 Xcode 和 Android Studio 就用它们;否则 Cloud Builder 会在浏览器中构建两个应用,并上传到 App Store Connect 和 Play Console。让 Gemini CLI 根据真实代码起草隐私问卷答案和审核备注,然后提交。
在 firebase init hosting 中选择您的构建文件夹(Vite 用 dist,Create React App 用 build);如果使用客户端路由,在询问是否配置单页应用重写时回答 yes。
# one-time setup (run the login yourself, it opens a browser)
npm install -g firebase-tools
firebase login
firebase init hosting
# every release
npm run build
firebase deploy --only hosting
# temporary preview URL, e.g. for a test build of the app
firebase hosting:channel:deploy store-check --expires 7d它会先要求给出计划,因为有几项内容(身份验证、支付)需要您在代码改动之前做出决定。
先阅读 GEMINI.md。这个 Web 应用也将通过 WebViewGold 作为原生 iOS 和 Android 应用发布,WebViewGold 会在 WebView 中加载我们的 Firebase Hosting URL。请审计这个项目,在修改任何内容之前先给我一份编号的计划。等我确认。 审计内容: 1. 移动端:viewport meta 标签、从 320 px 起没有横向滚动、固定页眉和标签栏有安全区域内边距、44 px 的点按区域、没有只能靠悬停打开的菜单。 2. Firebase Auth:列出每一种登录方式和每一处 signInWithPopup 调用(在嵌入式 WebView 中,弹出窗口并不可靠)。解释在 WebView 中安全可行的方案;暂时不要切换流程。提醒我在 Authentication > Settings > Authorized domains 中添加我们的自定义域名。 3. Sign in with Apple:如果存在 Google 或其他社交登录,规划把 Apple 提供商作为同等选项。 4. 账户删除:设置中的“删除账户”操作,由一个 callable Cloud Function 或服务器路由支持,删除该用户的 Firestore 文档、Storage 文件和 Auth 记录,然后退出登录。另外还要一个公开的 /delete-account 页面。 5. 隐私:/privacy 和 /terms 路由,内容依据代码实际收集的数据撰写(Analytics、Crashlytics、Firestore 字段、第三方 SDK)。 6. 安全规则:报告允许在没有 request.auth 的情况下访问或跨用户访问的 Firestore 或 Storage 规则。 7. 密钥:列出 src/、env 文件和 firebase 配置中的每一个密钥。Firebase Web 配置属于正常情况;客户端代码中的 Gemini API 密钥、Stripe secret key 或服务账号文件必须迁移到服务器端。 8. 状态:每个获取数据的界面都要有加载状态、空状态,以及带重试的错误状态。 9. 仅限应用的 UI:添加 isNativeApp()(User-Agent 包含 WebViewGoldApp),并在应用内隐藏“下载我们的应用”横幅、构建工具徽章和 Cookie 墙。 10. firebase.json:确认存在 SPA 重写规则,并且 /privacy 和 /delete-account 能以 HTTP 200 直接加载。 我批准之后:用小的 commit 逐步实施,每次之后运行 npm run build,绝不部署,最后列出我必须在 Firebase 控制台、App Store Connect 和 Play Console 中手动完成的事项。
| 内容 | Web 项目(Gemini CLI) | WebViewGold iOS | WebViewGold Android |
|---|---|---|---|
| 起始 URL | Firebase Hosting + 自定义域名 | host、webviewurl | HOST、HOME_URL |
| 应用检测 | isNativeApp() 检查该标记 | useragent_iphone、useragent_ipad | USER_AGENT |
| 通过 OneSignal 推送 | 调用 registerpush://(iOS),保存 onesignalplayerid | kPushEnabled、oneSignalID | PUSH_ENABLED,OneSignal ID 写在 build.gradle 中 |
| 通过 Firebase Cloud Messaging 推送 | 保存从 getfirebaseplayerid:// 获得的 ID | kFirebasePushEnabled + 您的 GoogleService-Info.plist | FIREBASE_PUSH_ENABLED + 您的 google-services.json |
| 注入的变量 | 无需先调用 scheme 即可读取 ID | autoInjectVariable | AUTO_INJECT_VARIABLES |
firebase deploy。请对 shell 命令保持审批,并亲自部署。~/.gemini/ 中的文件也会被拼接进来,可能与您的项目规则相矛盾。每个项目都用 /memory show 检查一次。web.app 地址构建应用,之后才切换到自己的域名。这意味着要发布新的商店构建版本;请先绑定域名。gemini 的脚本和 CI 任务。它们从 2026 年 6 月 18 日起已停止工作;请改用付费 API 密钥或 Antigravity CLI。/memory show 只列出您预期的上下文文件。read, write: if true。能。据 Google 介绍,它仍面向 Gemini Code Assist Standard 和 Enterprise 客户开放,也可以配合付费的 Gemini API 密钥或 Gemini Enterprise Agent Platform 凭据使用。免费个人账户以及 Google AI Pro 和 Ultra 订阅用户已于 2026 年 6 月 18 日被迁移到 Antigravity CLI。本指南中的工作流程和上下文文件两者都适用。
都可以。GEMINI.md 是 Gemini CLI 的默认文件;AGENTS.md 则会被 Antigravity、Codex、Cline、Kiro 等工具读取。如果代码仓库会被多个代理使用,请编写 AGENTS.md,并把它添加到 .gemini/settings.json 的 context.fileName 中。
不必。WebViewGold 可以加载任何 HTTPS URL,所以 Vercel、Netlify、Cloud Run 或您自己的服务器都一样可行。只是当您的应用已经在使用 Firebase Auth 和 Firestore 时,Firebase Hosting 用起来最方便。
能。用 /directory add 添加 WebViewGold 文件夹,让它先阅读配置文件,并且只修改值。签名、keystore 和 Bundle ID 请留给自己在 Xcode 和 Android Studio 中处理。
不会。审核看的是行为、完整性、隐私和支付。代码是哪个工具写的,既看不出来,也无关紧要。
结果相同,只是您需要投入的工作量不同。三种方式都附带审核通过保证和 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 天内提出申请。