跳过内容

常见问题

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

什么是“code push”?

code push是什么?

Code push,也被称为“Capgo”(OTA)是云服务,允许Capacitor开发者在生产环境中将更新部署到他们的应用中。Capgo目前支持Android、iOS和Electron。

“Code Push”是React Native社区中使用的部署功能的名称引用, MicrosoftExpo, neither of which support Capacitor.

我们使用“发布”一词指的是为应用商店准备二进制文件。在后续生成包时,Capgo 需要知道已向应用商店发布的二进制文件的确切版本。

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

路线图是什么?

路线图是什么?的标题

我们的项目板也公开可见,位于: https://github.com/orgs/Cap-go/projects

我们的团队也在公开工作,所以您可以随时看到我们正在做什么。我们很乐意通过Github问题或 Discord.

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

Section titled “是否可以与团队一起使用Capgo?”

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

查看 团队 更多信息。

Capgo是否会存储我的源代码code?”

Section titled “Capgo是否会存储我的源代码code?”

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

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

  • 端到端加密: 在上传之前,使用加密保护您的打包文件,防止在存储和传输过程中被第三方获取并生成有效的加密更新,而不需要您的私钥。然而,这并不意味着已发布的Web资源无法逆向工程,因为公共密钥已经包含在分发的应用程序中。
  • External URL Upload: 将打包文件存储在您的服务器上,只需向Capgo提供下载链接并选择 --external <url>

See also our privacy policy: https://capgo.app/privacy

Are bundle files private data?

标题:Are bundle files private data?

不。打包文件是公共Web资源,旨在让您的应用程序用户下载。只要知道打包文件的URL,任何人都可以获取这些文件,Capgo在设置和文档中都会告知用户这一点。

访问打包文件并不被认为是数据泄露。不要将机密信息、凭证、个人数据或受管制数据放入应用程序打包中。如果您需要更强的保密性,特别是用于高安全性场景,请使用端到端加密,但仍然从安全报告的角度来看,应将已发布的应用程序code和资源视为公共资源。

Can I use Capgo from my CI system?

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

是的,Capgo旨在从CI系统中使用。我们已经发布了一个关于 Android和Github ActionsiOS, ,,

Please don’t hesitate to reach out over GitHub issues or Discord if you encounter any issues.

,

,

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

这会添加多少依赖项?

标题:这会添加多少依赖项?

我最近没有测量过,但我预计code push库将在Capacitor应用中添加小于1兆字节。我们知道如何在此成为优先事项时减小它。如果大小是阻塞您的,请告诉我们!

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

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

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

请参见React Native问题: facebook/react-native#50510

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

标题: Does code push 与大型应用程序是否有效?

是。没有应用程序大小的限制可以使用 code push 进行更新。如下所述 ,__CAPGO_KEEP_0__ 可以更改您的应用程序中的任何 JS __CAPGO_KEEP_1__ ,无论大小如何。, Capgo can change any JS code in your application regardless of size.

我可以用 __CAPGO_KEEP_0__ __CAPGO_KEEP_1__ push 做什么?

直接链接到 What can I use Capgo code push?

Section titled “What can I use Capgo code push for?”

紧急修复生产应用程序。

  • 将 bug 修复发送给使用较旧版本的应用程序的用户。
  • __CAPGO_KEEP_0__ __CAPGO_KEEP_1__ push 的用途
  • Shipping constantly (e.g. every hour).

注意大多数应用商店禁止发布改变应用行为的重大方式的code。 请参阅 以下 内容

关于什么算作“MAU”(每月活跃用户)”的Capgo?

关于什么算作“MAU”(每月活跃用户)”的Capgo?

MAU(每月活跃用户)是指每月活跃的用户。在Capgo的背景下,这实际上指的是每月活跃的设备。我们将MAU定义为任何在过去30天内与我们的服务器联系过的设备。我们不计算在过去30天内没有联系过我们的服务器的设备。

重要从插件版本 v5.10.0, v6.25.0 和 v7.25.0 , 设备ID现在在应用程序重新安装时持久化。 在这些版本之前,每次应用程序重新安装都会生成一个新的设备ID并计算为一个新的MAU。当前版本:

设备ID在应用程序重新安装时持久化(在iOS中存储在Keychain中,Android中存储在加密的SharedPreferences中)

  • 更新应用程序不会创建一个新的设备ID
  • 在开发过程中,如果您正在使用一个较旧的插件版本(< v5.10.0 / v6.25.0 / v7.25.0),每次重新安装仍然会创建一个新的MAU
  • 注意:TestFlight下载和Android的频道切换可能会根据您的配置生成新的设备注册

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

我们不能用 __CAPGO_KEEP_0__ __CAPGO_KEEP_1__ 推送什么?

直接链接到我们不能用 Capgo code 推送什么?

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

如上所述,Capgo 不应用于违反应用商店政策。 请参阅 以下 内容

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

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

标题为“是否可以通过 Capgo 更新 capacitor.config.ts 的更改?”的部分

否。 不能通过 __CAPGO_KEEP_0__ live updates 发送 capacitor.config.ts cannot be sent through Capgo live updates. The Capacitor configuration file is read at native build time and compiled into the native app binary. This means any changes to capacitor.config.ts (例如插件配置、应用 ID、服务器设置或本机插件选项)更改需要通过 App Store 或 Google Play 发布新的本机版本。

Capgo 只能更新在运行时加载的 Web 资产(HTML、CSS、JavaScript)。如果您需要更改您的 Capacitor 配置,请务必:

  1. 更新 capacitor.config.ts locally
  2. Rebuild your native app (npx cap sync followed by a native build)
  3. Submit the new binary to the app stores

Capgo does not currently support submitting to the app stores on your behalf. We have plans to add this in the future, but for now you will need to continue to use your existing processes to submit to the app stores.

You can use our CI guide Android to automate this process and CI guide iOS.

What does Capgo 在磁盘上存储什么和在哪里?

标题: What does 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 command line tools (e.g. npx @capgo/cli@latest bundle upload)在磁盘上安装在 npm 缓存中,登录信息存储在您的主目录中 ~/.capgo.

How does this relate to Capacitor Hot Reload?

标题: How does this relate to Capacitor Hot Reload?

Capacitor’s Hot reload is a development-time-only feature. Code push is for production.

Hot reload is a feature of Capacitor that allows you to change code on the device during development. It requires building the Capacitor app with a proxy to connect to your local machine.

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

Capgo code 推送支持哪种类型的更改?

标题:Capgo code 推送支持哪种类型的更改?

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

我们没有计划支持更改原生 code(例如 Android 上的 Java/Kotlin 或 iOS 上的 Objective-C/Swift),并且工具将警告您如果它检测到您更改了原生 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

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

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

这与 App/Play Store 审核流程或政策有何关系?

__CAPGO_KEEP_0__ 的版本支持

开发者在使用这些商店时,必须遵守他们与商店提供商的协议。Code push 设计用于允许开发者更新他们的应用程序,同时仍然遵守 iOS、Android 和 Electron 分发渠道的商店政策。与 React Native 类似的商业产品可用于实现此目的(例如 微软, 微软还发布了一份指南,说明他们的解决方案如何遵守应用商店的政策:).

__CAPGO_KEEP_0__ 的哪些版本由 __CAPGO_KEEP_1__ 支持? https://github.com/microsoft/react-native-code-push#store-guideline-compliance

Code推送是一种广泛使用的技术,遍布各大应用商店。 我所知的大多数应用都使用code推送。 需要注意的是,不要改变应用的行为方式。 请参见 以下 更多信息。

Capgo是否符合Google Play商店的指南?

标题:Capgo是否符合Google Play商店的指南?

是。

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 和 appcenter.ms)。这是一个被踩踏的道路。

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

Capgo 是否遵守 App Store 指南?

题目:Capgo 是否遵守 App Store 指南?

Yes.

类似于应用商店,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 违反 App Store 指南是违反 Capgo 的 服务条款 并可能导致您的帐户被终止。

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

我们没有试图限制对任何国家的访问Capgo。

我们了解到某些国家对从该国内访问的url有所限制。 Capgo 目前使用 Cloudflare 云来进行托管,包括 R2 Storage 和 Cloudflare 工作者。

以下 URL 由 Capgo 使用:

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

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

是否可以自行托管Capgo?

自行托管Capgo?

是的,您可以自行托管Capgo。指南尚未编写,但code是开源的,位于 https://github.com/cap-go/capgo

code推送是否需要互联网?

code推送是否需要互联网?

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

Capgo如何受到网络连接缺乏的影响?

Capgo如何受到网络连接缺乏的影响?

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

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

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

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

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

我们的实现始终向请求更新的设备发送一个特定于设备的更新,始终将请求者更新到最新可用的版本。因此,如果用户长时间未更新,他们将会“错过”中间的更新。

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

Capgo 与 Capacitor 有什么关系?

标题:Capgo 与 Capacitor 有什么关系?

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

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

By default, the Capgo updater checks for updates on app startup. It runs on a background thread and does not block the UI thread. Any updates will be installed while the user is using the app and will be applied the next time the app is restarted.

It is also possible to run the Capgo updater manually using the @capgo/capacitor-updater 包,通过它可以在任何时间触发更新,包括通过推送通知。

The Capgo updater is designed such that when the network is not available, or the server is down or otherwise unreachable, the app will continue to run as normal. Should you ever choose to delete an update from our servers, all your clients will continue to run as normal.

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

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

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

Section titled “Capgo 服务器发送的信息是什么?”

Section titled “Capgo 服务器发送的信息是什么?”

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

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

  • app_id(指定的 capacitor.config.json)
  • channel(可选在 capacitor.config.json)
  • release_version (AndroidManifest.xml 或 Info.plist 中的 versionName 或 CFBundleShortVersionString ) capacitor.config.json 如果设置了 CapacitorUpdater.version )
  • version_number (作为 npx @capgo/cli@latest bundle upload)
  • os_version (例如 ‘11.2.1’ )
  • platform (e.g. ‘android’, needed to send down the right patch) That’s it. The code for this is in updater/library/src/network.rs
  • That’s it. The __CAPGO_KEEP_0__ for this is in
  • device_id (设备上第一次运行时生成,用于去重每台设备的安装和允许我们根据已安装的用户(例如每月活跃用户)而不是总补丁或总补丁安装来收费)

标题:可以使用 Capgo 为 HIPAA-sensitive 应用程序?

是的,但您的合规负责人需要选择正确的部署模型。 __CAPGO_KEEP_0__ 云当前未被呈现为 HIPAA 合规的托管统计处理器。 默认情况下,更新器数据是设备范围的,并且不与已知应用程序用户相关联,许多团队使用该模型成功。 statsUrl 到一个空字符串,仅自托管统计端点,或者使用许可的自托管。不要调用 CapacitorUpdater.setCustomId(...) 使用电子邮件、用户 ID、患者 ID、员工 ID或任何值来映射更新器遥测回个人

查看 HIPAA 合规 了解完整的技术设置和统计数据禁用时可观察性权衡

我可以在欧洲保留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

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

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

Capgo支持哪些平台?

标题:Capgo支持哪些平台?

目前,Capgo支持Android、iOS和Electron。所有这些都是生产就绪的。

使用Capgo开发iOS、Android或Electron应用可以是独立的决定。您可以根据需要设置Android和App Store的ipa、Electron通道等。

如果您需要Capgo支持桌面或嵌入式目标,可以(相对容易地)实现。

Capgo如何与Play Testing Tracks或Apple TestFlight交互?

标题:Capgo如何与Play Testing Tracks或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 package. 这个方法今天就可以使用,但需要您管理自己的优惠用户列表。
  3. Capgo允许创建自己的优惠机制,基于每个设备(类似于测试跟踪或TestFlight,只是跨平台)。这使得您的QA团队可以在他们被推广到公众之前优惠Capgo包。
  4. Capgo 有基于百分比的发布。 这不会让您选择要发送到哪些设备,但可以帮助您逐步发布并在出现任何问题时回滚。

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

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

您可以在您的控制台中随时升级或降级您的计划: 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.

如何取消我的订阅?

取消订阅指南

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

是否可以提前一年支付?

提前一年支付指南

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

统计和分析

统计和分析

在您的仪表板中,数据每天午夜(UTC)都会更新。 数据是基于每个 月活跃用户 已在您的设备上安装的应用。

设备 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不会在设备列表中显示,直到它们安装了第一个补丁。

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

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

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

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

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

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

将来会移除此限制。

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

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

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

在 iOS 频道中禁用 Android 更新,在 Android 频道中禁用 iOS 更新。

然后将每个频道的包上传以便为每个平台有不同的更新。如果您需要为两个平台有相同的更新,可以将一个包链接到多个频道。无需重复上传包。

继续阅读FAQ

标题:继续阅读FAQ

如果您正在使用

Capgo 常见问题 为了计划实时更新的传递,连接它 Capgo 实时更新 在Capgo 实时更新中, 概述 在概述中的实现细节 功能 在功能中的实现细节 更新行为 在更新行为中的实现细节, 更新类型 在更新类型中的实现细节