关于 __CAPGO_KEEP_0__ 的常见问题,如何解决 __CAPGO_KEEP_1__ 中的最常见问题或与 Updater 的问题,什么是 OTA,如何管理 OTA

常见问题

如果您在这里找不到答案,请问!既可以提交问题,也可以在 Discord 工作

什么是“code push”?

“code推送”是什么?

Code推送(也称为“Capacitor”)是Capgo云服务,允许开发者在生产环境中部署更新。Capgo目前支持Android、iOS和Electron。

“Code推送”是React Native社区中使用的部署功能名称 微软Expo,但它们都没有支持Capacitor

是否需要将Capgo和CLI的版本匹配到我的插件或Capacitor版本?

“是否需要将Capgo和CLI的版本匹配到我的插件或Capacitor版本?”

不需要。请始终使用最新的Capgo和CLI()。Capgo和CLI控制台遵循自己的版本管理,并保持与任何支持的更新插件版本兼容。__CAPGO_KEEP_2__插件遵循__CAPGO_KEEP_3__版本;请参见npx @capgo/cli@latest). The CLI and Capgo Console follow their own versioning and stay compatible with any supported updater plugin major. Capgo plugins follow Capacitor majors; see Capgo 版本 为 LTS 标签,如 @lts-v7.

什么是捆绑包和发布之间的区别?

标题:什么是捆绑包和发布之间的区别?

我们使用“发布”一词来指代为应用商店准备的二进制文件。在后续生成捆绑包Capgo时,需要知道准确的已发送到应用商店的二进制文件。

我们使用“捆绑包”一词来指代可以应用于发布以更新其为新code的补丁。 npx @capgo/cli@latest bundle upload 命令用于生成捆绑包,从您的新本地code开始,然后将其发送给您的用户。

是否有 Delta 更新文件路径限制?

标题:是否有 Delta 更新文件路径限制?

是:

  • 零字节文件: CLI 日志 Ignoring empty file... 并排除空文件从Delta清单。它不会停止上传,所以一个空文件可以改变结果包而不停止部署。不要在Delta包路径中包含零字节文件。
  • 包含空格的路径: 当一个包路径包含空格时,Delta上传会早早失败并显示一个明确的错误。重命名文件或目录以去除空格,然后上传Delta更新。

查看 Delta更新 查看

Delta更新

Delta更新

查看Delta更新的详细设置。 https://github.com/orgs/Cap-go/projects

我们的团队也在公开领域工作,所以你可以随时看到我们正在做什么。我们很高兴回答关于我们的路线图或优先事项的任何问题,通过Github问题或 Discord.

是的!所有计划都支持无限开发者。我们只对每个组织的应用指标(MAU、存储和带宽)进行限制。

查看 团队 了解更多信息。

Capgo会存储我的源代码code吗?

Does Capgo store my source code?

不。Capgo 服务器永远不会看到您的源 code。当您运行时 npx @capgo/cli@latest bundle upload, Capgo 将存储一个 zip 文件,其中包含最小化/编译的 code - 与浏览器接收的相同 code,而不是您的源 code。

为了额外的安全性,您有两个选项:

  • 端到端加密: 在上传时对您的包进行加密,以保护其在存储和传输过程中,并防止第三方使用您的私钥生成有效的加密更新。这不会使已发布的 Web 资产无法逆向工程,因为公共密钥已在分发的应用中包含。
  • 外部 URL 上传: 将包存储在您的服务器上,并仅向 Capgo 提供下载链接 --external <url>

请参阅我们的隐私政策: https://capgo.app/privacy

不。捆绑文件是公共的Web资产,旨在由您的应用程序用户下载。任何知道捆绑文件URL的人都可以获取这些文件,Capgo在设置和文档中告知用户。

访问捆绑文件不被认为是数据泄露。不要将机密信息、凭据、个人数据或受管制数据放入应用程序捆绑中。如果您需要为高安全性用例提供更强的保密性,请使用端到端加密,但仍然从安全报告的角度将发送的应用程序code和资产视为公共。

我可以从我的CI系统中使用Capgo吗?

Section titled “我可以从我的CI系统中使用Capgo吗?”

是的。Capgo旨在从CI系统中使用。我们已经发布了一个关于 Android和Github ActionsiOS,以及 GitLab其他 CI 系统应该类似。

请不要犹豫地通过 GitHub 或 Discord 联系我们,如果您遇到任何问题。

Capgo 与 Firebase Remote Config 或 Launch Darkly 有何关系?

Capgo 与 Firebase Remote Config 或 Launch Darkly 有何关系?

Code 推送允许在设备上添加新 code 或替换 code。 Firebase Remote Config 和 Launch Darkly 都是配置系统。它们允许您更改应用的配置而无需发布新版本。它们并不是用来替代 code 的。

Capgo 的依赖性足迹有多大?

Capgo 的依赖性足迹有多大?

我们还没有测量最近的数据,但我们预计 code 推送库将在 Capacitor 应用中添加小于 1MB 的依赖性。我们知道如何在此成为优先事项时减小它。如果大小是一个阻碍,请告诉我们!

Capgo 在 iOS 18.4 Simulator 上不工作。由于 iOS 18.4 Simulator 的上游问题,Capgo 在此环境下无法可靠运行。请在真实设备上测试或使用不同的 iOS 模拟器版本。

查看 React Native 问题详细信息: facebook/react-native#50510

code push 与大型应用程序是否兼容?

Section titled “code push 与大型应用程序是否兼容?”

是。code push 无法限制应用程序的大小。如上所述,code push 可以更改您的应用程序中的任何 JS __CAPGO_KEEP_1__,无论其大小如何。 请注意:应用程序越大,用户下载更新的难度越大。我们建议您尽可能保持应用程序的大小。我可以用 Capgo code push 做什么?

__CAPGO_KEEP_0__ __CAPGO_KEEP_1__ push 的具体用途是什么?

Capgo code push 的具体用途是什么?

标题:我可以用 Capgo code 推送的内容?

我们看到各种用途,包括:

  • 紧急修复生产应用。
  • 将bug修复发送给使用较旧版本的应用程序的用户。
  • 不断发送(例如每小时)。

注意,大多数应用商店不允许发送 code,它会改变应用程序行为的方式。请参见 以下 内容

A MAU 是一个月度活跃设备。一个在滚动 30 天期间与 Capgo 联系的设备被视为一个 MAU。同一物理设备用于两个不同的原生 app ID 时,每个 app ID 都会被计入一次;它们不会在它们之间进行合并。

如果您的风味仅在其 web 层或更新路由上有所不同,请使用一个原生 app ID 和 。这样可以将风味放在一个 __CAPGO_KEEP_0__ 应用中,并使发布更简单。使用不同的原生 app ID 时,风味需要一个不同的包 ID、签名身份、权限集或商店列表。. That keeps the flavours under one Capgo app and makes releases simpler. Use separate native app IDs when a flavour needs a distinct bundle ID, signing identity, entitlement set, or store listing.

v7.25.0+ 会保留随机的、应用范围的设备 ID,通过 Keychain 进行正常的重新安装。在 Android 上,请使用 v7.50.1+ (或 v5.50.1+ v6.50.1+ 在那些发布线上,ID只在Android Backup/Restore保留应用偏好时才会恢复。禁用备份、排除这些偏好或清除应用数据会生成一个新的设备ID。更新应用程序不会创建一个新的设备ID。

对于测试和开发构建,请在生产渠道上关闭开发构建和模拟器分发。控制分发,而不是MAU:设备仍然可以在联系Capgo时计算。为了将其排除在生产使用之外,请禁用实时更新并不要调用生产Capgo端点。请参见 测试原生构建无需实时更新 测试原生构建无需实时更新

什么不能用Capgo code推送?

什么不能用Capgo code推送?

Capgo无法改变原生code,例如Java、Kotlin、Objective-C、Swift、原生插件或原生配置。这些更改需要发布一个新的原生应用程序。对于商店审查范围,请参见 应用商店和Google Play政策.

是否可以通过Capgo更新capacitor.config.ts更改?

是否可以通过Capgo更新capacitor.config.ts更改?

No. Short rule: Capgo 可以发送生成的 Web 构建文件夹,包括 HTML、CSS、JavaScript、资产和纯 JavaScript 包的更改,打包到输出中。更改到 capacitor.config.ts,原生插件配置、原生包安装或升级,以及必须更新 iOS 或 Android 项目的任何内容 npx cap syncnpx cap copy 需要原生应用发布。

Capacitor 配置文件在原生构建时读取并编译到原生应用二进制文件中。如果您需要更改您的 Capacitor 配置,请务必:

  1. 更新 capacitor.config.ts 本地
  2. 重新构建您的原生应用(npx cap sync 后跟原生构建)
  3. 将新二进制文件提交到应用商店

Capgo 会自动将应用提交到应用商店吗?

Section titled “Does Capgo 提交到应用商店吗?”

Capgo Build 可以编译和签署一个准备好的原生 iOS 或 Android 项目,并且当配置时,将签名结果提交到 App Store Connect 或 Google Play。您可以保留现有的 CI 为私有依赖项、Web 构建、Capacitor 同步和自定义原生准备;Capgo 接收准备好的原生项目用于原生构建步骤。

查看 Capgo Build构建配置参考 了解工作流和应用商店提交选项。

什么 Capgo 在磁盘上存储并且在哪里?

Section titled “什么 Capgo 在磁盘上存储并且在哪里?”

The Capgo updater (included in your application when you build your app) caches the latest downloaded bundle in the only directory that capacitor allow to load code. On Android, this is located in /data/user/0/com.example.app/code_cache/capgo_updater 尽管该路径的基础由 Android 系统提供并且可以在运行时动态更改。 在 iOS 设备上,数据存储在 Library/Application Support/capgo.

The Capgo 命令行工具(例如 npx @capgo/cli@latest bundle upload) 在磁盘上安装在 npm 缓存中,登录信息存储在您的家目录中 ~/.capgo.

如何与 Capacitor 热重载相关?

标题:如何与 Capacitor 热重载相关?

Capacitor 的热重载是一个开发时特性,Code 推送是用于生产的

热重载是 Capacitor 的一个特性,允许您在开发期间更改 code。它需要在您的本地机器上建立一个代理来连接到 Capacitor 应用

Code 推送是一个特性,允许您在生产环境下更改 code。我们将使用各种不同的技术来实现这一点,具体取决于平台

什么类型的更改 Capgo code 推送支持?

标题:什么类型的更改 Capgo code 推送支持?

Capgo 可以更改任何 JS code,包括应用 code 和生成的 code。您还可以更新依赖项 package.json 只要它们不需要原生code变更。

我们没有计划支持原生code(例如Java/Kotlin在Android或Objective-C/Swift在iOS),并且工具将警告您如果它检测到您已更改原生code,因为它将不会包含在捆绑包中。

这个支持Web吗?

标题:这个支持Web吗?

Code推送对于Web来说不是必需的,因为Web已经以这种方式工作。当用户打开Web应用时,它会从服务器下载最新版本,如果需要的话。

如果您有code推送与Web的用例,我们很想知道!

这个会在iOS、Android、Mac、Windows、Linux等上工作吗?

标题:这个会在iOS、Android、Mac、Windows、Linux等上工作吗?

是的。

我们目前主要关注Android、iOS和Electron的支持,code推送在这三个平台上已经生产就绪。

什么操作系统版本Capgo支持?

标题:什么操作系统版本Capgo支持?

Capgo支持的Android版本与Capacitor支持的版本相同。

Capacitor目前支持AndroidAPI级别22+和iOS 13.0+: https://capacitorjs.com/docs/main/reference/support-policy

什么版本的CapacitorCapgo支持?

标题:什么版本的CapacitorCapgo支持?

Capgo目前仅支持Capacitor的最新稳定版本。我们也可以支持Capacitor的较旧版本,但我们还没有建立必要的基础设施来维护这些版本。我们打算在未来支持更多的Capacitor版本,包括我们的企业客户的任何版本。 https://github.com/Cap-go/capgo/issues/1100

Capgo跟踪Capacitor的稳定版本,并在稳定版本发布后几小时内进行更新。我们的更新系统是自动化的,更新需要几分钟的时间。然后我们进行额外的手动验证步骤,最后发布到我们的服务器上。

关于与App/Play Store审查流程或政策的关系?

关于与App/Play Store审查流程或政策的关系?

Capgo 只会将更改推送到 Capacitor 的网页层:HTML、CSS、JavaScript 和在应用程序的 WebView 中运行的资产。它不会更改原生二进制文件、原生插件、权限、特权、签名或商店元数据。

对于每个原生更改和可能影响应用程序目的或功能的材料更改,请使用原生商店发布。保持更新在您提交并向用户透露的应用程序体验中。

Capgo 是否保证App Store或Google Play的通过?

Capgo是否保证App Store或Google Play的通过?

不。苹果和谷歌将根据每个应用程序和发布的具体情况进行审查,Capgo无法保证个别审查或审批结果。您的团队仍然负责应用程序的内容、披露、更新范围和遵守当前商店政策。

为了审查和发布计划,请直接阅读官方政策: 苹果App Store审查指南Google Play 设备和网络滥用政策.

我可以在我国家使用 Capgo 吗?

标题:我可以在我国家使用 Capgo 吗?

我们尚未尝试限制任何国家对 Capgo 的访问。

我们认识到一些国家对从该国访问的 URL 有限制。 Capgo 目前使用 Cloudflare 云进行托管,包括 R2 存储和 Cloudflare 工作者。

Capgo 使用以下 URL:

  • https://api.capgo.app — 由命令行工具用于与 __CAPGO_KEEP_0__ 服务器进行交互,以及用户设备上的 __CAPGO_KEEP_1__ 更新器来检查更新。 npx @capgo/cli command line tools to interact with the Capgo servers as well as the Capgo updater on users’ devices to check for updates.
  • — 由 https://*.r2.cloudflarestorage.com — 由 npx @capgo/cli 命令行工具,用于上传和下载包

如果您国家的所有这些URL都可访问,那么Capgo应该正常工作。

如果您的地区需要阻止访问任何这些URL,请告知我们,我们可以与您合作找到解决方案。代理服务器是其中一种选择。

我可以自己托管Capgo吗?

关于自己托管Capgo

是的。企业版支持在您自己的基础设施中运行更新后端的许可自托管Capgo部署。请参阅 自托管更新 关于自托管更新

code推送是否需要联网才能工作?

关于code推送是否需要联网才能工作?

是的。可以想象一下,运行一个服务器来分发更新,独立于一般的互联网,但某种形式的网络连接是必要的,以便将更新传输到设备。

网络连接不足会对Capgo产生什么影响?

标题:网络连接不足会对Capgo产生什么影响?

Capgo更新器(在您使用Capgo构建应用程序时包含在您的应用程序中)旨在对网络连接问题具有弹性。

在默认的更新行为中,当应用程序启动时,它会警告Capgo更新器,后者会在单独的线程中发出网络请求到Capgo服务器,要求更新。我们故意使用单独的线程,以避免阻塞应用程序可能正在执行的其他任务。如果网络请求失败或超时,更新器将简单地尝试下次应用程序启动时再次检查。

Capgo命令行工具(例如 npx @capgo/cli@latest bundle upload)需要网络连接才能正常工作。如果您正在使用Capgo来分发您的应用程序,请确保您的CI系统具有网络连接。

如果用户长时间未更新并错过了更新会发生什么?

标题:如果用户长时间未更新并错过了更新会发生什么?

我们的实现始终会向设备发送一个针对该设备的更新,确保请求更新的设备始终处于最新版本。因此,如果用户一段时间内没有更新,他们将会错过中间的更新。

更新服务器可以被修改以支持响应下一个增量版本或最新版本,根据您的应用程序的需求。请告诉我们,如果替代更新行为对您很重要。

Capgo 与 Capacitor 有什么关系?

关于Capgo 与 Capacitor 的问题

Capgo 是一个为 Capacitor 添加 code 推送功能的插件。Capgo 不是 Capacitor 的替代品。您可以继续使用您已经熟悉的 Capacitor 工具。

我们跟踪 Capacitor 的最新稳定版本,并更新我们的 code 推送插件以与它兼容。

默认情况下,Capgo 更新器在应用程序启动时检查更新。它在后台线程运行,不会阻塞 UI 线程。任何更新都会在用户使用应用程序时安装,并在下一次应用程序重启时应用。

也可以使用 Capgo 更新器手动运行 Capgo @capgo/capacitor-updater 通过该包,任何时候都可以触发更新,包括通过推送通知。

Capgo 升级器的设计是,当网络不可用,或者服务器下线或无法访问时,应用程序仍会正常运行。即使您选择从我们的服务器删除更新,所有客户端也会继续正常运行。

我们添加了回滚补丁的功能。最简单的方法是简单地将之前的包附加到您的频道中来撤销。

我需要保留我的 app_id 密钥吗?

标题:我需要保留我的 app_id 密钥吗?

不需要。您的 app_id 包含在您的应用程序中,安全公开。您可以将其添加到版本控制(甚至公开)中,不用担心有人访问它。

拥有您的 app_id 可以从 Capgo 服务器上获取最新版本的应用程序,但他们无法推送应用程序更新或访问您的 Capgo 账户的任何其他方面。

什么信息会发送到 Capgo 服务器?

关于Capgo服务器发送的信息是什么?

完整的数据清单、API端点行为和隐私控制都在 合规.

设置 statsUrl: '' 来禁用明确的更新统计报告。您还可以将 statsUrl 发送到代理或您控制的端点;参见 在自托管基础设施中处理统计信息。更新检查仍然需要一个应用范围的设备标识符,以便Capgo可以选择正确的更新并衡量每月活跃设备。

关于 子处理器列表 是我们最新的公共真实来源,提供了供应商、处理位置、传输机制和变更历史等信息。

我可以使用Capgo开发HIPAA敏感应用吗?

“Capgo在HIPAA敏感应用中使用”

是的,但您的合规负责人需要选择正确的部署模型。Capgo Cloud目前尚未被呈现为HIPAA合规的托管统计处理器。默认情况下,更新器数据是设备范围的,并且不与已知应用用户相关联,许多团队使用该模型成功。

对于更严格的审查,您可以地理定位插件流量,设置为一个空字符串来禁用统计,仅托管统计端点,或者使用许可的自主托管。请勿使用带有电子邮件、用户ID、患者ID、员工ID或任何将更新器遥测数据映射回个人信息的值的函数。 statsUrl 请参阅 CapacitorUpdater.setCustomId(...) HIPAA合规

获取完整的技术设置和统计禁用时的可观察性权衡。 我可以在欧洲保留__CAPGO_KEEP_0__实时更新数据吗? __CAPGO_KEEP_0__在欧洲保留实时更新数据的直接链接

“我可以在欧洲保留Capgo实时更新数据吗?”

在欧洲保留Capgo实时更新数据的直接链接

是的。需要欧盟数据居住地的应用程序可以将更新端点设置为欧盟主机,以便于Capgo Cloud 插件流量。

  • updateUrl: https://plugin.eu.capgo.app/updates
  • statsUrl: https://plugin.eu.capgo.app/stats
  • channelUrl: https://plugin.eu.capgo.app/channel_self

使用所有三个EU URL一起,以便更新检查、统计和频道自我分配使用相同的区域数据路径。因为这些值存储在 capacitor.config.ts,生产移动应用程序需要一个本机发布才能让现有安装使用新的端点。

查看 数据存储位置 为精确的Capacitor和Electron示例。

目前,Capgo 支持 Android、iOS 和 Electron。所有这些都已准备就绪。

使用Capgo为iOS、Android或Electron进行开发可以是独立的决定。您可以根据需要为Android设置您的渠道策略,并为App Store构建ipa文件,或者为Electron渠道设置。

Capgo 可以(相对容易地)支持桌面或嵌入式目标。如果这些对您很重要,请告知我们。

How does Capgo interact with Google Play Testing Tracks or Apple TestFlight?

Section titled “How does Capgo interact with Google Play Testing Tracks or Apple TestFlight?”

每个应用商店都有自己的机制来将应用分发给有限的用户组(例如“内部测试”、“封闭测试”等)。这些都是将用户分成组并将特定版本的应用分发给每个组的机制。

遗憾的是,这些机制并不是所有的机制都允许第三方检测应用是否安装在特定的测试跟踪或TestFlight中。因此,我们无法可靠地了解这些组的组成,并且无法可靠地根据这些组来控制Capgo的补丁访问。 https://stackoverflow.com/questions/53291007/can-an-android-application-identify-the-test-track-within-google-play https://stackoverflow.com/questions/26081543/how-to-tell-at-runtime-whether-an-ios-app-is-running-through-a-testflight-beta-i

如果您想根据Capgo分组的可用性进行分段,那么有4个潜在的选项:

  1. 使用独立的频道来管理每个组。这种方法最直接,但需要您管理多个频道。您可能已经有一个开发频道和一个生产频道,具有不同的可用性。您可以更新您的开发频道,验证它,然后单独更新您的生产频道。我们建议使用分支/标签在您的版本控制中来帮助跟踪与每个发布相关的源代码。
  2. 通过 @capgo/capacitor-updater package
  3. Capgo allow creare its own opt-in mechanism on a per-device basis (similar to Test Tracks or TestFlight, just platform agnostic). This allow your QA team to opt-in to bundle before they’re promoted to the general public.
  4. __CAPGO_KEEP_0__允许创建自己的优选机制,基于每个设备(类似于测试轨道或测试飞行,只不限于平台)。这使得您的QA团队可以在他们被推广到公共领域之前,优选包装。 使用 渐进式发布 --rollout-percentage-bps 来将候选包装分发到一个随机、粘性子集的频道中。设置一个从0-100%的发布范围,或者使用

来设置0.01%的发布增量;配置缓存持续时间从60秒到365天,并可选地配置自动暂停策略。这种方法不选择一个命名的设备组。

直接链接到账单

账单部分标题 ‘账单’ ‘如何升级或降级我的计划?’

关于如何升级或降级我的计划?

您可以在任何时候在您的控制台中升级或降级您的计划: https://console.capgo.app/settings/organization/plans

Billing periods are reset automatically every month on the month you first subscribed to Capgo. For example, if you subscribed on the 15th of the month, your billing period will reset on the 15th of every month.

账单周期每月自动重置,重置时间为您首次订阅的月份。例如,如果您在月份的15号订阅,账单周期将在每个月的15号重置。 https://console.capgo.app/settings/organization/plans

是否可以预付一年费用?

关于是否可以预付一年费用

是的,您可以在您的 组织计划设置中选择年度计费.

什么算作存储,是否可以改变保留期限?

关于什么算作存储,是否可以改变保留期限

存储包括保留的历史包和它们的Delta资产,跨您的频道。您可以控制每个应用程序的未使用包保留期限。与活动频道或发布相关的包将继续被保护,以便它们可用于交付和回滚。

区域复制是否会增加存储或带宽?

关于“区域复制是否会增加存储或带宽?”

无论哪个区域提供它,一个包被计算为一次存储。 Capgo_bandwidth基于设备下载,未从边缘缓存中提供的下载;缓存服务的交付不计入Capgo_bandwidth使用。

该企业服务水平协议(SLA)包含哪些内容?

关于企业 SLA 包含哪些内容?

企业版包含99.9%的每月可用性承诺,适用于生产平台。如果承诺未能实现,服务信用计划将根据每月可用性而定,范围为10%至30%。初期支持响应目标为P1:24小时/7天/365天;P2:两小时;P3:一工作日;P4:两工作日。 企业级服务水平协议 为了查看完整条款。

统计和分析

统计和分析

每个统计数据在您的仪表板中每晚 UTC 时间零点更新。统计数据是基于独特的 月活跃用户数 指的是在过去的 30 天内活跃的用户数。

设备 ID 是如何生成的

设备 ID 是如何生成的

设备 ID 在设备上第一次运行时生成,用于去重每台设备的安装和允许我们根据已安装的用户(例如每月活跃用户)来收费,而不是总数或总数的安装。

MAU is a better solution than number of installs to price Capgo, as it is more accurate and reflects the actual cost of Capgo per device.

设备 ID 持久性:

  • iOS: 从 v7.25.0+ 开始,设备 ID 存储在 Keychain 中并在正常重装时保持有效。
  • Android: 使用 v7.50.1+ (或 v5.50.1+/v6.50.1+ 在这些发布线上)。设备 ID 只有在 Android 备份/还原保留应用偏好项时才会恢复。
  • Electron: 设备 ID 存储在安全存储中。
  • Android注意事项: 禁用备份、排除相关首选项或清除应用数据将生成一个新的设备 ID。Android v7.25.0至v7.50.0版本可以在启用备份的情况下重新安装后生成一个新的设备 ID。

设备 ID 是应用范围内的,支持实时更新和 MAU 去重;它不是广告或跨应用跟踪标识符。

设备 ID 列表将在应用通过更新器或统计端点与Capgo进行检查后显示。设备不需要安装补丁才能在设备列表中显示。

为什么我的设备号与我的 MAU 不同?

为什么我的设备号与我的 MAU 不同?

设备列表和 MAU 基于不同的信号。

设备列表显示每个设备的最新已知元数据,例如设备 ID、平台、插件版本、OS 版本、原生版本、渠道、安装的捆绑包和可用请求国家。请求国家是最新有效的两位code,来自Cloudflare处理的请求,不是 GPS 或应用提供的位置。无效国家的请求不会清除最后有效的值。Capgo 更新元数据时应用检查,但重复检查报告相同元数据可能不会改变行或其最后更新时间。

MAU统计会根据计费时间窗口统计设备的活动次数。即使设备元数据保持不变,设备活动也可能会增加,因此设备数量和MAU可能会不同。

How to have different update by platform?

How to have different update by platform?

You can create a channel for each platform, and disable platform-specific updates in each channel.

On ios channel disable android updates and on android channel disable ios updates.

Then upload a bundle to each channel to have different update for each platform.

If you need to have the same update for both platforms, you can link one bundle to multiple channels. No need to duplicate the bundle.

If you are using FAQ 为了计划实时更新的发布,连接它与 Capgo 实时更新 为了产品工作流程在 Capgo 实时更新中 概述 为了概述的实现细节 功能 为了功能的实现细节 更新行为 为了更新行为的实现细节,和 更新类型 为了更新类型的实现细节。