跳过内容

FAQ

If you have questions not answered here, please ask! Both filing an issue or asking on Discord work.

Code push, also referred to as “over-the-air updates” (OTA) is a cloud service enabling Capacitor developers to deploy updates to their apps in production. Capgo currently works on Android, iOS, and Electron.

Code推送 Microsoft and Expo, 两者都没有支持 Capacitor。

我们使用“release”一词指的是为应用商店准备二进制文件。在后续生成 bundle 的时候,Capgo 需要知道已经被发送到应用商店的二进制文件的确切内容。

我们使用“bundle”一词指的是一个可以应用到 release 上的补丁,以便更新它到最新的 code。 npx @capgo/cli@latest bundle upload 命令用于生成一个 bundle 从您的新本地 code,然后将其发送给您的用户。

我们的项目板也公开,地址在: https://github.com/orgs/Cap-go/projects

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

我可以用Capgo与我的团队一起使用吗?

Section titled “我可以用Capgo与我的团队一起使用吗?”

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

查看 团队 的更多信息。

Does Capgo 存储我的源代码code?

标题: Does Capgo 存储我的源代码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吗?

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

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

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

如何与Firebase Remote Config或Launch Darkly相关?

标题为“如何与Firebase Remote Config或Launch Darkly相关?”

Code推送允许在设备上添加新code/替换code。 Firebase Remote Config和Launch Darkly都是配置系统。它们允许您更改应用程序的配置,而无需将新版本发送。它们不打算取代code。

这会增加多少依赖项的脚步?

标题为“这会增加多少依赖项的脚步?”

我最近没有测量,但我预计code推送库将在Capacitor应用程序中添加小于一兆字节。 我们知道我们可以通过优化来减小它,当优化成为优先事项时。 如果大小是阻碍您,请告诉我们!

是否Capgo在iOS 18.4模拟器上工作?

标题:是否Capgo在iOS 18.4模拟器上工作?

由于影响iOS 18.4模拟器的上游问题,Capgo在此模拟器上无法正常运行。请在真实设备上测试或使用不同的iOS模拟器版本。

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

code推送是否支持大型应用?

标题:code推送是否支持大型应用?

是。code推送无论应用大小都可以更新。如上所述,code可以更改您的应用中的任何JS__CAPGO_KEEP_1__,无论大小如何。 查看下文详细信息。, Capgo can change any JS code in your application regardless of size.

注意:更大的大小会使用户下载更新变得更加困难。我们建议您尽可能地保持应用程序的大小.

您可以使用 Capgo code 推送什么?

标题:您可以使用 Capgo code 推送什么?

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

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

注意,大多数应用商店不允许发送 code,它会改变应用程序行为的方式。请参阅 下面的信息 来获取更多信息.

什么算作“MAU”(月度活跃用户数)? Capgo

Section titled “What counts as a “MAU” for Capgo?”

A MAU is a “Monthly Active User”. In Capgo’s context, this actually refers to a Monthly Active Device. We count a MAU as any device that has contacted our servers in the last 30 days. We do not count devices that have not contacted our servers in the last 30 days.

重要从插件版本 v5.10.0, v6.25.0v7.25.0, 设备ID现在在应用程序重新安装后仍然保持有效。 在这些版本之前,每次应用程序重新安装都会生成一个新的设备ID并计算为一个新的MAU。

使用当前版本:

  • 设备ID在应用程序重新安装后仍然保持有效(在iOS中存储在Keychain中,Android中存储在加密的SharedPreferences中)
  • 更新应用程序不会创建新的设备 ID
  • 在开发期间,如果您正在使用较旧的插件版本(< v5.10.0 / v6.25.0 / v7.25.0),则每次重新安装仍会创建新的 MAU

注意:TestFlight 下载和 Android 通道切换可能会根据您的配置生成新的设备注册

我们建议在首次设置后禁用开发设备和模拟器以减少重复设备的数量

什么不能我们用 Capgo code 推送?

标题:什么不能我们用 Capgo code 推送?

如上所述,Capgo 不应用于违反应用商店政策。请参见 以下 更多信息。

此外,Capgo 不支持更改本机 code(例如 Android 上的 Java/Kotlin 或 iOS 上的 Objective-C/Swift)。工具将在尝试更新时警告您,如果您已更改本机 code。

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

标题:是否可以通过 Capgo 更新 capacitor.config.ts 的变化?

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

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

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

Does Capgo 提交到应用商店吗?

标题: Does Capgo 提交到应用商店吗?

目前,Capgo 不支持代替您提交应用商店。我们计划在未来添加此功能,但现在您需要继续使用现有的流程来提交应用商店。

您可以使用我们的 CI 指南 Android 来自动化此过程并 CI 指南 iOS.

Capgo 在磁盘上存储什么以及在哪里?

标题: Capgo 在磁盘上存储什么以及在哪里?

Capgo 更新器(在您构建应用程序时包含在您的应用程序中)将最新下载的捆绑包缓存到capacitor允许加载code的唯一目录中。 在 Android 上,这位于 /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 因为它将不包括在捆绑包中。

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

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

这是否在 iOS、Android、Mac、Windows、Linux 等上工作?

标题为“这是否在 iOS、Android、Mac、Windows、Linux 等上工作?”的部分

是。

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

Capgo支持哪些操作系统版本?

Capgo支持的操作系统版本

Capgo supports the same versions of Android that Capacitor supports.

Capacitor支持的Android版本与API支持的版本相同。 __CAPGO_KEEP_0__目前支持Android__CAPGO_KEEP_1__级别22+和iOS13.0+。

What versions of Capacitor does Capgo support?

Capgo支持的Capacitor版本

Capgo currently supports only recent stable releases of Capacitor. We could support older versions of Capacitor as well, we just haven’t built out the infrastructure necessary to maintain such over time. We intend to support more versions of Capacitor in the future, including any version for our enterprise customers. github目前只支持capgo的最新稳定版本。我们也可以支持__CAPGO_KEEP_2__的较旧版本,但我们还没有建立必要的基础设施来维护这些版本。我们将来会支持更多的__CAPGO_KEEP_3__版本,包括我们的企业客户的任何版本。

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

如何与应用商店的审查流程或政策相关?

标题:如何与应用商店的审查流程或政策相关?

开发者在选择使用应用商店时,必须遵守与商店提供商的协议。Code 推送功能允许开发者更新应用并遵守 iOS、Android 和 Electron 分发渠道的应用商店政策。与 React Native 类似,开发者可以使用各种商业产品来实现此功能(例如 Microsoft、Expo 等)。 微软还发布了一份指南,说明他们的解决方案如何遵守应用商店的政策:, https://__CAPGO_KEEP_0__.com/microsoft/react-native-__CAPGO_KEEP_1__-push#store-guideline-compliance).

__CAPGO_KEEP_0__ 推送是应用商店中广泛使用的技术。所有我知道的大型应用都使用 __CAPGO_KEEP_1__ 推送。需要注意的是,不要改变应用的行为方式。请参阅下文获取更多信息。 https://github.com/microsoft/react-native-code-push#store-guideline-compliance

Code push is a widely used technique throughout the app stores. All of the large apps I’m aware of use code push. The major policy to be aware of is not to change the behavior of the app in a significant way. Please see for more information. for more information.

Google Play商店对更新工具有两个限制

  1. 更新必须使用解释器或虚拟机(Capgo使用JavaScript在WebView中) https://support.google.com/googleplay/android-developer/answer/9888379?hl=zh-Hans
An app distributed via Google Play may not modify, replace, or update itself
using any method other than Google Play's update mechanism. Likewise, an app
may not download executable code (such as dex, JAR, .so files) from a
source other than Google Play. *This restriction does not apply to code
that runs in a virtual machine or an interpreter* where either provides
indirect access to Android APIs (such as JavaScript in a webview or
browser).
Apps or third-party code, like SDKs, with interpreted languages (JavaScript,
Python, Lua, etc.) loaded at run time (for example, not packaged with the
app) must not allow potential violations of Google Play policies.
  1. 对应用程序的更改不能欺骗用户(例如,通过更新改变应用程序的目的) https://support.google.com/googleplay/android-developer/answer/9888077 请与您的用户清晰地说明您提供的内容,并不要通过使用Capgo在应用程序中引入重大行为变化而违反他们的期望

Capgo旨在与Google Play商店的指南兼容。然而Capgo是一种工具,像任何工具一样,可以被滥用。故意滥用Capgo以违反Google Play商店指南的行为是Capgo的违反 《服务条款》 并可能导致您的账户被终止。

最后,code推送服务在行业中广泛使用(我所知的大多数大型应用程序都使用它们),并且有多个其他code推送服务公开可用(例如:expo.dev &#x26; appcenter.ms)。这是一条走熟的路。

微软还发布了一份关于其react native“codepush”库如何遵守应用商店的指南: https://github.com/microsoft/react-native-code-push#store-guideline-compliance

类似于Play Store,App Store提供了技术和政策限制。

3.2.2
... interpreted code may be downloaded to an Application but only so long as
such code:
(a) does not change the primary purpose of the Application by providing
features or functionality that are inconsistent with the intended and
advertised purpose of the Application as submitted to the App Store,
(b) does not create a store or storefront for other code or applications, and
(c) does not bypass signing, sandbox, or other security features of the OS.

Capgo使用JavaScript在WebView中遵守iOS更新的解释器仅限限制。只要您的应用程序不通过更新进行欺诈行为(例如,通过更新改变应用程序的目的),则通过Capgo(或任何其他code推送解决方案)进行更新是标准行业实践,并且遵守App Store指南。

故意违反 Capgo 以违反应用商店指南是违反 Capgo 的条款 服务条款 并可能导致您的帐户被终止。

微软还发布了一份指南,说明他们的react native“codepush”库如何符合应用商店的要求: https://github.com/microsoft/react-native-code-push#store-guideline-compliance

我可以在我的国家使用 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.
  • — 由命令行工具使用,用于上传和下载捆绑包 如果您国家的所有这些 URL 都可以访问,那么__CAPGO_KEEP_0__应该可以正常工作。 npx @capgo/cli 如果您的地区需要阻止访问任何这些 URL,请告知我们,我们可以与您合作找到解决方案。代理服务器是其中一种选择。

我可以自己托管Capgo吗?

直接链接到我可以自己托管__CAPGO_KEEP_0__吗?

标题:我可以自己托管Capgo吗?

https://Capgo.com/cap-go/__CAPGO_KEEP_1__

Yes, you can self-host Capgo. The guide is not yet written, but the code is open source and available at https://github.com/cap-go/capgo

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

标题:是否code需要联网才能工作?

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

如果没有网络连接,Capgo会受到什么影响?

标题:如果没有网络连接,Capgo会受到什么影响?

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

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

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

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

Section titled “如果用户长时间未更新并错过更新?”

我们的实现始终发送针对设备的更新,设备请求时始终更新到最新可用的版本。因此,如果用户长时间未更新,他们将会错过中间的更新。

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

Capgo 是 Capacitor 的插件,添加了 code 推送。 Capgo 不是 Capacitor 的替代品。您可以继续使用您熟悉的 Capacitor 工具。

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

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

使用命令行工具手动运行Capgo更新器也是一种可能。 @capgo/capacitor-updater 包,通过它可以随时触发更新,包括通过推送通知。

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

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

是否需要保留我的 app_id 密钥?

是否需要保密我的 app_id 秘钥?

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

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

尽管Capgo连接到网络,但它不会发送任何个人可识别信息。包括Capgo不应影响您对Play Store或App Store的申报。

从应用程序发送到Capgo服务器的请求包括:

  • app_id(指定的 capacitor.config.json)
  • channel(可选的 capacitor.config.json)
  • release_version(AndroidManifest.xml中的versionName或Info.plist中的CFBundleShortVersionString或 capacitor.config.json 如果设置为 CapacitorUpdater.version )
  • version_number(作为__CAPGO_KEEP_1__的一部分生成的 npx @capgo/cli@latest bundle upload)
  • os_version(例如“11.2.1”
  • platform(例如“android”,需要发送正确的补丁)那就足够了。code的原因在于 updater/library/src/network.rs
  • 设备 ID(在设备上首次运行时生成,用于去重设备安装并根据已安装用户(例如每月活跃用户)而不是总数或总数安装计数来收费)
  • 自定义 ID(可选,开发者在运行时设置,用于将设备与用户系统中的用户关联)

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

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

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

为了更严格的审查,您可以地理定位插件流量,设置为空字符串禁用统计,仅自主托管统计端点或使用许可证自主托管。 不要调用 statsUrl 使用电子邮件、用户 ID、患者 ID、员工 ID或任何将更新器遥测映射回个人值 CapacitorUpdater.setCustomId(...) 参见

HIPAA 合规 了解完整的技术设置和统计禁用时的可观性权衡 __CAPGO_KEEP_0__

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

标题为“我可以在欧洲保留 Capgo 实时更新数据吗?”的部分

Yes. Apps that need EU data residency for Capgo Cloud plugin traffic can set the updater endpoints to the EU host:

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

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

查看 数据位置 ,了解 Capacitor 和 Electron 的具体示例。

目前,Capgo 支持 Android、iOS 和 Electron。所有这些都已经准备就绪并可用于生产环境。

使用 Capgo 的 iOS、Android 或 Electron 可以是独立的决定。您可以根据需要为 Android 和 App Store 中的 ipa 设置您的渠道策略,或者 Electron 的渠道。

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

Capgo 与 Google Play 测试跟踪或 Apple TestFlight 有什么交互?

标题为“Capgo 与 Google Play 测试跟踪或 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. 为每个组使用单独的渠道。这是最直接的方法,但需要您管理多个渠道。您可能已经有dev渠道和prod渠道,各自的可用性不同。您可以更新dev渠道,验证它,然后单独更新prod渠道。我们建议使用分支/标签在您的版本控制中帮助跟踪与每个发布相关的源代码。
  2. 通过 @capgo/capacitor-updater 包跟踪您的自定义用户列表,禁用自动更新,并仅在特定用户触发更新。这项功能今天可用,但需要您管理自己的自定义用户列表。
  3. Capgo允许在设备级别创建自己的自定义用户机制(类似于Test Tracks或TestFlight,只是平台无关)。这使得您的QA团队可以在bundle被推广到公众之前就对其进行测试。
  4. Capgo支持基于百分比的滚动发布。这不会让您选择要发送到哪些设备,但可以帮助您逐步发布并在出现问题时回滚。

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

如何升级或降级我的计划?部分

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

我的账单周期何时重置?

标题:我的账单周期何时重置?

Capgo 的账单周期每月都会自动重置,重置时间为你第一次订阅的月份。例如,如果你在一个月的 15 号订阅了 Capgo,你的账单周期将在每个月的 15 号重置。

如何取消我的订阅?

标题:如何取消我的订阅?

你可以随时在你的控制台中取消你的订阅: https://console.capgo.app/settings/organization/plans

是否可以一次性预付一年费用?

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

是的,您可以在任何时候在您的控制台中这样做: https://console.capgo.app/settings/organization/plans

统计和分析

关于统计和分析

您的控制台中的统计数据每天凌晨更新。 统计数据基于 月活跃用户(MAU) 已安装在设备上的

设备ID是如何生成的

设备 ID 的生成

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

MAU 是比安装数量更好的解决方案来定价 Capgo,因为它更准确,反映了每台设备的实际成本 Capgo。

设备 ID 持久性(v6.25.0 和 v7.25.0 中更新):

  • 当前行为::设备 ID 现在在应用程序重新安装后仍然存在。它以安全的方式存储在设备的 Keychain (iOS) 或 EncryptedSharedPreferences (Android) 中,允许我们在卸载/重新安装后跟踪同一台设备。
  • 之前行为 (v6.25.0/v7.25.0 之前):由于与苹果和谷歌商店相关的隐私原因,设备 ID 在每次应用程序重新安装时都会重置,从而无法跟踪同一台设备的重新安装。

苹果和谷歌的隐私规则由 Capgo 执行的最佳实践遵循。

设备 ID 将不会在设备列表中显示,直到它们安装了第一个补丁。

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

标题:为什么我的设备数量与MAU不一致?

目前,设备列表并非像MAU那样频繁更新。

设备列表仅在设备安装更新时才会更新。

MAU则在每次应用启动时都会更新。这是当前平台的一个限制。我们的分析平台不支持原始更新,因此我们使用传统数据库来存储设备列表。

为了限制数据库查询的数量,我们只在应用更新时更新一行数据。

将来会移除这个限制。

如何根据平台有不同的更新?

标题:如何根据平台有不同的更新?

您可以为每个平台创建一个频道,并在每个频道中禁用平台特定的更新。例如,在iOS频道中禁用Android更新,在Android频道中禁用iOS更新。

__CAPGO_KEEP_0__

然后将捆绑包上传到每个频道,以便每个平台都有不同的更新。

如果您需要在两个平台上有相同的更新,您可以将一个捆绑包链接到多个频道。无需重复上传捆绑包。

如果您正在使用 FAQ 来规划实时更新的交付,连接它到 Capgo实时更新 在Capgo实时更新中 产品工作流程 在Overview中 查看实现细节 关于Features的实现细节 更新行为 关于更新行为的实现细节,以及 更新类型 关于更新类型的实现细节。