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

Gemini CLI

从 Gemini CLI 到 App Store 和 Google Play:GEMINI.md、Firebase Hosting 和 WebViewGold

Gemini CLI 可以在终端里构建并部署您的 Web 应用;WebViewGold 则把已部署的 URL 变成原生 iOS 和 Android 应用。本指南为您提供一个让每次改动都符合商店要求的 GEMINI.md、一条 Firebase Hosting 部署路径、一段可直接粘贴的就绪提示词,以及 Config.swift 和 Config.java 的设置。先说 2026 年的一项变化:Google 已把个人消费者账户从 Gemini CLI 迁移到 Antigravity CLI,所以请先确认您实际运行的是哪个工具。

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

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

您要构建的是什么

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.md

Gemini CLI 会加载 ~/.gemini/GEMINI.md,以及工作区及其上级文件夹中的每一个 GEMINI.md,把它们拼接起来随每条提示词一起发送(文档)。运行 /init 根据您的代码起草一份,然后添加类似下面的章节。/memory show 会准确显示加载了哪些内容。

markdown
# 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,值得推荐。

Nelis Geiger · CodeCanyon

使用 AGENTS.md 和 Firebase MCP 服务器

已经为 Codex 或其他代理准备了 AGENTS.md,或者打算迁移到 Antigravity CLI?只保留一个文件,并通过项目中 .gemini/settings.json 的 context.fileName 告诉 Gemini CLI 去读取它。同一个文件还可以注册 Firebase MCP 服务器,在普通 shell 命令之外再为代理提供 Firebase 工具(包括一个部署工具)。AGENTS.md 模板和CLAUDE.md 模板包含更长的规则集,您可以合并进来。

json
{
  "context": {
    "fileName": ["AGENTS.md", "GEMINI.md"]
  },
  "mcpServers": {
    "firebase": {
      "command": "npx",
      "args": ["-y", "firebase-tools@latest", "mcp"]
    }
  }
}

从终端到商店:工作流程

预计需要一天的工作量;开通账户和商店审核是最慢的部分。

  1. 在本地完成 Web 应用

    照常让 Gemini CLI 构建功能,但从一开始就以手机宽度测试每个界面(在浏览器的设备工具栏中设为 375 px)。让它尽早添加 isNativeApp() 辅助函数,这样后续的提示词就可以依赖它。

  2. 部署到 Firebase Hosting

    亲自运行下面的一次性设置(firebase login 会打开浏览器),然后让代理在您批准后运行构建和部署。您的站点会在 PROJECT_ID.web.app 上提供服务;在构建应用之前,请先在 Firebase 控制台中连接一个自定义域名,因为 URL 会被编译进应用。服务器端渲染的 Next.js 或 Angular 应用则应改用 Firebase App Hosting(需要 Blaze 套餐)。

  3. 运行上架就绪提示词

    粘贴下面的提示词。如果您的版本提供 Plan Mode(/plan),就从它开始,先阅读计划,再让它实施。在设置中启用 checkpointing,这样 /restore 就能撤销错误的编辑。

  4. 增加原生价值

    审核人员会对基于 Web 的应用套用准则 4.2。推送通知是常见的应对方式:在 iOS 上把 askforpushpermissionatfirstrun 设为 false,在新手引导结束后调用 registerpush://,然后把从 getonesignalplayerid://(或 getfirebaseplayerid://)获得的订阅 ID 存到用户资料中。

  5. 配置 WebViewGold

    iOS(Config.swift):host、webviewurl、useragent_iphone、useragent_ipad、推送开关。Android(Config.java):HOST、HOME_URL、USER_AGENT、PUSH_ENABLED 或 FIREBASE_PUSH_ENABLED。下文的表格列出了每项设置的对应位置。

  6. 构建并提交

    如果有 Xcode 和 Android Studio 就用它们;否则 Cloud Builder 会在浏览器中构建两个应用,并上传到 App Store Connect 和 Play Console。让 Gemini CLI 根据真实代码起草隐私问卷答案和审核备注,然后提交。

代理可以运行的 Firebase Hosting 命令

在 firebase init hosting 中选择您的构建文件夹(Vite 用 dist,Create React App 用 build);如果使用客户端路由,在询问是否配置单页应用重写时回答 yes。

bash
# 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 CLI 的上架就绪提示词

它会先要求给出计划,因为有几项内容(身份验证、支付)需要您在代码改动之前做出决定。

在项目根目录中粘贴到 Gemini CLI
先阅读 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 iOSWebViewGold Android
起始 URLFirebase Hosting + 自定义域名host、webviewurlHOST、HOME_URL
应用检测isNativeApp() 检查该标记useragent_iphone、useragent_ipadUSER_AGENT
通过 OneSignal 推送调用 registerpush://(iOS),保存 onesignalplayeridkPushEnabled、oneSignalIDPUSH_ENABLED,OneSignal ID 写在 build.gradle 中
通过 Firebase Cloud Messaging 推送保存从 getfirebaseplayerid:// 获得的 IDkFirebasePushEnabled + 您的 GoogleService-Info.plistFIREBASE_PUSH_ENABLED + 您的 google-services.json
注入的变量无需先调用 scheme 即可读取 IDautoInjectVariableAUTO_INJECT_VARIABLES

Gemini CLI 项目特有的坑

  • 在上架检查期间开启 YOLO 模式。所有操作都被自动批准后,代理可能在重构进行到一半时就对生产环境运行 firebase deploy。请对 shell 命令保持审批,并亲自部署。
  • 被遗忘在上级目录中的 GEMINI.md。上级文件夹或 ~/.gemini/ 中的文件也会被拼接进来,可能与您的项目规则相矛盾。每个项目都用 /memory show 检查一次。
  • 浏览器 bundle 中的 Gemini API 密钥,这在从 Google AI Studio 导出的原型中很常见。任何人都能从您的网站读取它。请通过 Cloud Function 转发 Gemini 调用;密钥安全指南解释了哪些密钥可以随应用发布。
  • 先用 web.app 地址构建应用,之后才切换到自己的域名。这意味着要发布新的商店构建版本;请先绑定域名。
  • 登录在 Safari 中通过自定义域名可以使用,在应用中却失败,原因是该域名不在 Firebase Auth 的授权域名中,或者 Google 登录打开了弹出窗口。Firebase 检查清单逐一介绍了可选方案。
  • 用个人消费者登录调用 gemini 的脚本和 CI 任务。它们从 2026 年 6 月 18 日起已停止工作;请改用付费 API 密钥或 Antigravity CLI。

提交前的检查清单

  • /memory show 只列出您预期的上下文文件。
  • 生产构建部署在您的自定义域名上,/privacy 和 /delete-account 可以直接打开,不会重定向到首页。
  • Firebase Auth 的授权域名中包含自定义域名;登录在应用的测试构建中可以正常使用。
  • 没有任何 Firestore 或 Storage 规则允许 read, write: if true。
  • 飞行模式下显示 WebViewGold 的离线页面,而不是空白页。
  • 推送权限提示在新手引导之后出现,而不是在第一个界面。
  • 免费的App Store 就绪检查对您的 URL 全部通过。

常见问题

2026 年 11 月 Gemini CLI 还能用吗?

能。据 Google 介绍,它仍面向 Gemini Code Assist Standard 和 Enterprise 客户开放,也可以配合付费的 Gemini API 密钥或 Gemini Enterprise Agent Platform 凭据使用。免费个人账户以及 Google AI Pro 和 Ultra 订阅用户已于 2026 年 6 月 18 日被迁移到 Antigravity CLI。本指南中的工作流程和上下文文件两者都适用。

上下文文件应该命名为 GEMINI.md 还是 AGENTS.md?

都可以。GEMINI.md 是 Gemini CLI 的默认文件;AGENTS.md 则会被 Antigravity、Codex、Cline、Kiro 等工具读取。如果代码仓库会被多个代理使用,请编写 AGENTS.md,并把它添加到 .gemini/settings.json 的 context.fileName 中。

必须托管在 Firebase 上吗?

不必。WebViewGold 可以加载任何 HTTPS URL,所以 Vercel、Netlify、Cloud Run 或您自己的服务器都一样可行。只是当您的应用已经在使用 Firebase Auth 和 Firestore 时,Firebase Hosting 用起来最方便。

Gemini CLI 能编辑 Config.swift 和 Config.java 吗?

能。用 /directory add 添加 WebViewGold 文件夹,让它先阅读配置文件,并且只修改值。签名、keystore 和 Bundle ID 请留给自己在 Xcode 和 Android Studio 中处理。

Apple 会因为应用是 AI 代理写的而拒审吗?

不会。审核看的是行为、完整性、隐私和支付。代码是哪个工具写的,既看不出来,也无关紧要。

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

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