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

Google Play 审核被拒

Google Play 拒绝后台位置权限:通过声明获得资格,或改用前台定位

大多数请求位置的 Web 应用,只在用户看着屏幕时才需要位置。如果您的应用也是如此,解决办法是从构建版本中移除后台位置,而不是与 Google 争论。如果在应用关闭时进行追踪确实是您的核心功能,本指南会告诉您声明、披露和 30 秒视频必须展示什么。

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

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

后台位置政策允许什么

后台位置是指应用在不可见时接收位置信息:屏幕关闭、另一个应用在前台,或者您的应用已被划走。Google 只在以下情况下允许:它属于应用的核心功能,也就是说没有它应用就无法正常工作;并且它能为用户带来明确的好处,例如安全、健康与健身,或者用户正在主动执行的一项工作。便利性、个性化、分析和广告都不符合条件,仅为广告或分析而发出的请求会被拒绝。用户必须能够合理预期这种追踪,而且同样的体验无法在前台实现。

保留该权限的应用需要在 Play Console 中填写声明(应用内容 → 敏感应用权限 → 位置权限)。声明中只能列出一项基于位置的功能,说明该功能为什么需要后台访问,并附上一段 30 秒或更短的视频链接。您还需要在权限提示之前进行显著的应用内披露,并且审核人员必须能够进入该功能。详情请参阅 Google 的后台位置帮助页面。

拒审通知怎么写

要么 Play Console 在位置声明填写完整之前阻止发布,要么声明本身被拒。Google 列出的原因与审核人员在封装应用中看到的情况一致:功能不明确或声明了不止一项功能、功能无法验证(通常是因为登录)、披露缺失或不完整、隐私政策没有提及后台位置,或者该功能根本不符合条件。如果并不需要该权限,通知会要求您从所有轨道中移除它,包括封闭测试和开放测试。

您的功能真的需要后台位置吗?

功能结论应该使用什么
门店查找、“我附近”列表、签到按钮仅需前台屏幕打开时使用 HTML5 地理定位
顾客在地图上查看快递员位置仅需前台;Google 把顾客端的配送追踪列为典型的不合格案例屏幕打开时显示实时地图,状态变化用推送通知
快递员或外勤人员在班次期间共享位置如果这是应用的核心,可能符合条件由用户开始和停止的追踪,并显示持续通知
在屏幕关闭时记录跑步或骑行可能符合条件(健身)为本次锻炼开始追踪,锻炼结束时停止
家人离开某个区域时发出安全提醒可能符合条件(安全)一项明确声明的功能,并附有披露
按地区提供本地新闻、天气或优惠不符合条件前台定位或大致位置,或者让用户选择城市
广告定向、分析、归因绝不符合移除它

把 Web 应用转换成原生应用的绝佳方式!周转速度快,无需开发完整的原生应用就能把应用上架到应用商店!

Kevin Joling · FlightConnections & TrainConnections · Trustpilot

WebViewGold 应用中的后台位置从何而来

Config.java 中的开关

requireLocation 决定是否启用位置功能;requireBackgroundLocation 在 Android 上增加后台追踪,并且只有在 requireLocation 为 true 时才生效。参见Android 地理定位文档。

清单中的代码块

后台追踪还需要 AndroidManifest.xml 中的 FOREGROUND_SERVICE_LOCATION 权限和 GPSService 代码块,您需要取消它们的注释来启用该功能。只要它们处于启用状态,Play Console 就会看到一个位置服务。

URL Scheme

backgroundlocationon:// 和 backgroundlocationoff:// 从您的 Web 应用开始和停止追踪。由用户操作来调用它们,追踪才算是由用户发起的。

库

地图、分析或地理围栏库可能会在您不知情的情况下,把 ACCESS_BACKGROUND_LOCATION 加入合并后的清单。Android Studio 中的 Merged Manifest 标签页会显示是哪一个。

方案 A:改用前台定位(适合大多数应用的正确修复)

大约三十分钟,外加审核时间。

  1. 关闭后台开关

    在 Config.java 中把 requireBackgroundLocation 设为 false。如果您的 Web 应用在打开时会使用地理定位 API,就让 requireLocation 保持 true;如果应用完全不使用位置,也把它设为 false。

  2. 在清单中停用该服务

    在 AndroidManifest.xml 中注释掉(或删除)FOREGROUND_SERVICE_LOCATION 权限和 GPSService 代码块,并移除所有 ACCESS_BACKGROUND_LOCATION 条目。如果是某个库添加的,就按照权限指南中的方法,用 tools:node="remove" 去掉它。

  3. 移除调用和相关承诺

    从 Web 应用中删除 backgroundlocationon:// 调用,以及应用内或商店详情中所有承诺在应用关闭时进行追踪的文字。

  4. 在使用场景中请求

    在简短说明之后,从功能页面请求位置,具体做法见显著披露指南。应用打开时,来自 HTML5 API 的前台定位会和以前完全一样正常工作。

  5. 重新构建并替换所有轨道

    在 Android Studio 或 Cloud Builder 中构建一个版本代码更高的新 bundle,在 App Bundle 浏览器中确认后台权限已经消失,并把内部测试、封闭测试和开放测试轨道上的旧构建也一并替换掉。

  6. 更新声明

    如果 Play Console 仍然显示位置权限声明,请把它更新为应用不再在后台访问位置,然后提交更改以供审核。

方案 B:保留后台位置并获得批准

只适用于在应用关闭时进行追踪正是应用存在意义的情况。以下各项必须同时成立。

  • 一项功能,名称明确。写“快递员班次追踪”,而不是“位置功能”。声明多项功能会导致被拒。
  • 由用户发起。用户点按“开始”(您的 Web 应用调用 backgroundlocationon://)和“停止”(backgroundlocationoff://)。追踪绝不会悄悄开始。
  • 显著披露出现在位置提示之前,包含“位置”一词、诸如“在应用关闭或未使用时”之类的表述、每一项使用它的功能,以及数据是否用于广告。
  • 一段 30 秒或更短的视频(不公开列出的 YouTube 链接就很好用),展示披露、运行时权限提示,以及应用在后台时该功能的运行情况。
  • 审核人员可以访问:在登录详情中提供一个能直接进入该功能的演示账号;参见登录详情指南。
  • 相关文件保持一致:隐私政策和数据安全表单申报了在后台收集精确位置,商店说明也提到了这项功能。
  • 同时提交位置类型的前台服务声明,因为 GPSService 代码块是作为位置前台服务运行的;参见前台服务指南。

模板:符合条件的功能的声明文字

一项功能,一个用途,由用户掌控。把示例替换为您自己的功能,但保留这个结构。模板保留英文,因为 Google 审核人员阅读的是英文。

用于 Play Console 中的位置权限声明(请按需调整)
Feature: Shift tracking for couriers.

What it does: While a courier is on shift, [App name] shares the courier's location with the dispatch team every [30 seconds], so customers receive accurate arrival times and dispatchers can reassign orders when a courier is delayed.

Why it needs background access: Couriers drive with the phone locked or with a navigation app in the foreground. If location stopped while [App name] is not visible, dispatch would lose the courier for the whole drive, which defeats the core purpose of the app.

How the user controls it: The courier taps Start shift. The app shows an in-app disclosure and the Android permission prompt, then an ongoing notification while tracking runs. Tapping End shift stops tracking immediately. No location is collected outside a shift.

Video: [YouTube link], [28] seconds, showing the disclosure, the permission prompt, the start of a shift, the app in the background with tracking active, and the end of the shift.

Test account: see Sign-in details, instruction set 'Courier'.

检查清单

  • 后台位置要么已从所有轨道中移除,要么绑定在一项已声明的核心功能上。
  • requireBackgroundLocation、清单代码块和 backgroundlocationon:// 调用都与这一决定一致。
  • 在应用内披露之后,从功能页面请求位置。
  • App Bundle 浏览器中只显示您打算使用的位置权限。
  • 如果保留它:声明、视频、披露、隐私政策、数据安全表单和演示账号描述的都是同一项功能。

常见问题

更好的视频能让我的功能获得批准吗?

只有在功能本身符合条件时才行。视频证明的是符合条件的功能如何运作;它无法把门店查找或个性化信息流变成核心的后台使用场景。

移除后台位置会破坏我 Web 应用中的地理定位吗?

不会。只要 requireLocation 为 true,并且清单中保留了前台位置权限,HTML5 地理定位 API 在应用打开时就能正常工作。失去的只是应用关闭时的追踪。

我的顾客在地图上追踪配送进度。我需要后台位置吗?

不需要。顾客是在屏幕打开时看地图,属于前台使用,而且 Google 把顾客端的配送追踪列为典型的不合格案例。请改用推送通知告知状态变化。

位置前台服务等同于后台位置吗?

如果它在用户去做别的事情时仍在持续收集位置,Google 就会对它适用后台位置要求。前台服务只有作为用户所发起任务的延续才可以接受,并且必须在任务完成后立即停止。

我已经移除了权限。为什么更新仍被阻止?

通常是测试轨道上的某个旧 bundle 仍然包含它,或者声明没有更新。替换所有有效的 bundle 并更新声明,然后提交更改以供审核。

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

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