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

上线之后

应用上线后如何更新:哪些即时生效,哪些需要商店发布

Web 封装应用最大的好处是,大多数更新只需一次部署,而不是一次提交。人们容易忘记的是剩下的部分:图标、权限、原生功能和每年的平台要求,仍然需要新构建。下面是两者的划分、版本号规则,以及一套大约一小时就能完成的发布流程。

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

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

即时生效还是商店更新?

变更如何发布说明
Web 应用中的新页面、新功能、错误修复、设计变更即时:在 Lovable、Bolt、Vercel 或您的托管平台上部署每个已安装的应用在下次加载时就会显示;无需审核
文案、Web 上显示的价格、法律页面即时让商店中的应用内购买价格与应用显示的价格保持一致
应用图标、应用名称、启动画面商店更新属于构建中的原生素材
启用一项原生功能(推送服务商、生物识别、二维码扫描、AdMob、RevenueCat)商店更新一个 Config 开关加一次重新构建;新的权限会被审核
新的权限说明(相机、位置、照片)商店更新如果数据使用方式有变,同时更新 App Privacy 答案和数据安全表单
更改起始 URL 或域名商店更新在上线前选好自定义域名即可避免
WebViewGold 模板更新(新的 iOS SDK、Play 目标 API 级别、隐私清单)商店更新免费更新;大约每年需要一次,以保持可发布状态
商店详情文字和截图无需构建,但需审核App Store:截图、描述和关键词只能随新版本更改;推广文本和 URL 随时可改。Play:商店详情随时可改,需审核

正确管理版本号

iOS 有两个号码:用户看到的版本号(CFBundleShortVersionString,例如 1.2.0),以及每次上传都必须递增的构建号(CFBundleVersion),即使版本号相同也一样。Android 有 versionName(自由文本,显示给用户)和 versionCode,后者是一个整数,每次上传到 Play Console 都必须递增。您可以在 Xcode 的 General 选项卡和 build.gradle 中设置它们,或者在 Cloud Builder 的对应字段中设置。让两个平台上面向用户的版本号保持一致,并使用 major.minor.patch 格式;这样客服沟通(“您用的是哪个版本?”)就会轻松很多。

您的 Web 应用有自己的发布节奏,两者可能在一个重要方面脱节:一个需要原生能力的 Web 功能(比如新的扫码流程),在启用该能力之前构建的应用版本中无法运行。WebViewGold 的 App Version Check API 解决了这个问题:跳转到 getappversion://,应用就会设置 window.versionNumber 和 window.bundleNumber(或者把 autoInjectVariable / AUTO_INJECT_VARIABLES 设为 true,让它们在每个页面上自动注入)。这样,您的 Web 应用就可以为旧版安装隐藏该功能,或显示一个更新横幅。文档:App Version Check(iOS)和Android。

提醒使用旧版应用的用户更新

在应用内的每次页面加载时运行。与支持当前 Web 应用的最低版本进行比较。

javascript
const inApp = /WebViewGoldApp/.test(navigator.userAgent);
const MIN_APP_VERSION = "1.3.0";

function olderThan(a, b) {            // "1.2.9" < "1.3.0"
  const pa = a.split(".").map(Number), pb = b.split(".").map(Number);
  for (let i = 0; i < 3; i++) { if ((pa[i] || 0) !== (pb[i] || 0)) return (pa[i] || 0) < (pb[i] || 0); }
  return false;
}

if (inApp) {
  window.location.href = "getappversion://";          // WebViewGold 会设置 window.versionNumber
  setTimeout(() => {
    if (window.versionNumber && olderThan(String(window.versionNumber), MIN_APP_VERSION)) {
      document.getElementById("update-banner").hidden = false;   // “有新版本可用”+ 商店链接
    }
  }, 800);
}

我很高兴购买了这个应用!非常简单,文档也很棒。联系客服后,他们回复很快且非常友好,一天之内就解决了我的问题。10/10,值得推荐。

Nelis Geiger · CodeCanyon

商店发布流程

大约一小时的工作,再加上审核时间。只要上表中某一行写着“商店更新”,就按此执行。

  1. 如有更新,先刷新 WebViewGold 模板

    下载当前版本(更新免费),然后把您的 Config.swift 和 Config.java 设置值、图标、启动画面、GoogleService-Info.plist 或 google-services.json 以及所有自定义权限说明复制过去。您的 Android keystore 和上传密钥保持不变。Cloud Builder 用户可以跳过这一步:该服务使用持续维护的模板进行构建。

  2. 递增版本号和构建号

    版本 1.2.0 → 1.3.0,构建号 +1,versionCode +1。

  3. 构建并上传

    Xcode → Product → Archive → Distribute 到 App Store Connect;Android Studio → Build → Generate Signed Bundle → 上传到 Play Console。或者在 Cloud Builder 中一键完成两者。

  4. 对构建做冒烟测试

    TestFlight 内部测试和 Play 内部测试轨道:登录、推送权限、离线页面、来自邮件的深度链接;如果您有付费内容,再在沙盒中完成一次购买。在真机上花十五分钟即可;参见测试指南。

  5. 以分阶段发布的方式提交

    Apple:选择分阶段发布(七天内比例自动递增,可随时暂停),或在获批后手动发布。Google:分阶段发布,从 10% 到 20% 开始,在几天内逐步提高;如果 Play Vitals 显示崩溃激增,就暂停发布。

  6. 密切关注头 48 小时

    App Store Connect 中的崩溃和评论、Play Console 的 Vitals 以及政策邮件。在原生构建逐步推送期间,Web 端的修复依然即时生效。

Web 部署后会悄悄出问题的地方

  • 更改域名或给起始 URL 添加重定向:应用仍然加载构建中写死的旧 URL。
  • 删除或移动 /.well-known/apple-app-site-association 和 assetlinks.json:深度链接和 Magic Link 不再能打开应用。
  • 更改 OAuth 重定向 URL 或 Supabase Site URL,却没有同步更新各个 provider。
  • 应用内出现新的 Cookie 横幅、“在我们的应用中打开”智能横幅或桌面版页头:用您的 CSS 或 WebViewGold 的自定义 CSS 注入,针对应用的 user agent 把它们隐藏起来。
  • 改版后去掉了“删除账号”按钮或隐私政策链接。下一次商店审核会注意到。
  • Service worker 在应用中持续提供旧的代码包:每次部署时都要递增缓存版本。
  • JavaScript 变得更重,导致首次绘制超出启动画面超时时间;请调大 splashTimeout 或启用 remainSplashOption。

让 WebViewGold 模板保持最新

Google 每年都会提高门槛

新应用和更新必须在 Google 每年规定的截止日期前,以较新的 Android 版本为目标。过了这个日期,旧模板就无法上传;目标 API 级别指南解释了时间安排。

Apple 要求使用较新的 SDK

上传的构建必须使用较新的 Xcode 和 iOS SDK 构建,而且 iOS 应用现在需要附带隐私清单。模板更新两者都包含。

新的原生功能陆续到来

更新会添加新的 API(文档扫描、健康数据、小组件),每一个都只需一个链接就能开放给您的 Web 应用。

每年重新构建一次是个好习惯

即使没有任何变更,每年用最新模板重新构建一次,也能让应用保持可发布状态,并让“更新”日期保持新鲜,有利于 ASO。

常见问题

Web 变更会触发 App Store 审核吗?

不会。只有提交新构建或修改商店详情元数据时才会审核。Web 应用中的内容由您随意更改,只要应用始终与其商店详情页和准则相符即可。

我应该多久重新构建一次原生应用?

为满足平台要求,至少每年一次;此外,每当您更改图标、原生功能或权限时也要重新构建。许多团队最终会固定为每一到两个月发布一次商店更新。

我可以强制用户更新吗?

无法真正强制,但当后端变更需要时,版本检查可以让您用一条附带商店链接的提示把旧版应用挡在外面。

商店更新会让用户退出登录吗?

不会。除非启用了 Config 文件中的清除缓存选项,否则 Cookie 和 localStorage 在更新后都会保留。

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

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