基于使用情况的定价

了解 Expo 如何对超出其计划配额的客户应用基于使用量的计费以及如何监控你的 EAS 构建使用情况。


Expo 对超出其 计划 配额的客户实行按使用量计费。这使我们的客户可以根据需要使用服务,而无需担心限制或签订合同义务。

🌐 Expo applies usage-based billing for customers who exceed their plan allowances. This enables our customers to use what they need without worrying about limitations or requiring contractual obligations.

按使用量计费已启用于 EAS Build 和 EAS Update,并按月结算。我们会在你的账户计费中提供现有使用量和任何超额费用的预估。

🌐 Usage-based billing is enabled for EAS Build and EAS Update and is billed monthly. We provide an estimate of your existing usage and any overage charges on your account's Billing.

基于使用量的定价如何运作

🌐 How usage-based pricing works

EAS 构建

🌐 EAS Build

对于 EAS Build,在较高优先级执行的单个构建会收取固定费用。该费用按月累计,并在结算周期结束时收取,或者如果你取消计划,则会提前收取。

🌐 For EAS Build, a flat fee is charged for an individual build executed at higher-priority levels. This is totaled monthly and charged at the end of your billing period or sooner if you cancel your plan.

注意:在任何工作开始之前被取消的构建不收费。

Starter、Production、Enterprise 和 Legacy 计划的订阅者会获得 EAS 构建积分。这些积分可以用来抵扣构建费用。它们会在计费周期开始时重置,并在该计费周期结束时失效。请访问我们的定价页面了解支持的构建平台的定价计划以及可用的资源类别的更多信息。

示例:EAS 构建信用使用情况

🌐 Example: EAS Build credit usage

考虑一个订阅了生产计划的账户,该账户在一个结算期内有 15 个中型 Android 版本和 10 个大型 iOS 版本:

🌐 Consider an account subscribed to the Production plan that has 15 medium Android builds, and 10 large iOS builds in a billing period:

描述价格数量总计
Android 构建(中型)$115$15
iOS 构建(大型)$410$40
EAS 构建信用-$55
总计(美元)$0

由于信用额度包含在生产计划中,因此订户为其 25 次构建支付 0 美元。

🌐 Since the credit is included in the Production plan, the subscriber pays $0 for their 25 builds.

示例:EAS 构建信用超限

🌐 Example: EAS Build credit exceeded

考虑另一个超出信用额度的示例:

🌐 Consider another example where the credit limit is exceeded:

描述价格数量总计
Android 构建(中等)$120$20
Android 构建(大型)$210$20
iOS 构建(中等)$230$60
iOS 构建(大型)$440$160
EAS 构建积分-$225
总计(美元)$35

在这种情况下,订阅者只需支付35美元即可获得100次构建,而不是260美元,因为EAS构建积分覆盖了225美元。

🌐 In this scenario, the subscriber pays $35 for 100 builds instead of $260 because the EAS Build Credit covers $225.

EAS 更新

🌐 EAS Update

信息 提示: 使用 定价计算器 来估算你的 EAS 更新使用情况。

EAS 更新的基于使用量的定价包括两个指标:每月活跃用户数和全球边缘带宽。

🌐 Usage-based pricing for EAS Update comprises two metrics: monthly active users and global edge bandwidth.

“已更新的用户”反映在一个计费周期内至少下载过一次更新的独立用户数量,也称为“每月活跃用户”(MAU)。全球边缘带宽表示超出你的订阅计划基础带宽分配的总带宽使用量。如果你的每月活跃用户超过了计划的基础MAU分配,每增加一名用户,将包含40 MiB的全球边缘带宽。

🌐 The "updated users" reflect the number of unique users who download at least one update in a billing period, also known as "monthly active users" (MAU). Global edge bandwidth represents the total amount of bandwidth used beyond your subscription plan's base bandwidth allocation. If your monthly active users exceed your plan's base MAU allocation, 40 MiB of global edge bandwidth is included for each additional user.

注意:每月活跃用户在计费周期内只计算一次,无论该用户下载了多少更新。在 EAS Update 的上下文中,“用户”指的是设备上应用的唯一安装实例。

每个计划都包含一定数量的每月活跃用户和全球边缘带宽。这些在每个计划中有所不同,并且数字是最新的。有关更多信息,请参阅我们的定价页面

🌐 Each plan has a number of monthly active users and global edge bandwidth included as part of the subscription. These differ for each plan and the most updated numbers. See our pricing page, for more information.

示例:EAS 更新使用情况

🌐 Example: EAS Update usage

考虑一位 Starter 计划的订阅者,通过 EAS 更新向 10,000 名用户部署 20 个每个 5 MiB 的更新。该计划的订阅包含 3,000 名每月活跃用户和每月 100 GiB 的流量。因此,该订阅者的额外使用费用将为:

🌐 Consider a subscriber to the Starter plan who deploys 20 updates of 5 MiB each via EAS Update to 10,000 users. The subscription to the plan includes 3,000 monthly active users and 100 GiB per month. As a result, the subscriber's bill for extra usage will be:

描述价格数量总计
更新用户每用户 $0.0057,000$35
全球边缘带宽每GiB $0.10603.13 GiB$60.31
总计 (美元)$95.31

在1万用户中,有3000人加入了Starter套餐。因此,7,000 个客户被计费为基于使用量的计费。为7,000名更新用户付费还包括约273.4 GiB(7000用户 * 40 MiB / 1024)。

🌐 Out of the 10,000 users, 3,000 are included in the Starter plan. As a result, 7,000 are billed for as part of usage-based billing. Paying for 7,000 updated users also includes approximately 273.4 GiB (7000 users * 40 MiB / 1024).

全局边缘带宽计算为:

🌐 The global edge bandwidth calculation is:

描述计算数量
用于发送更新的带宽20 次更新 * 5 MiB * 10,000 用户976.5625 GiB
套餐包含的带宽100 GiB
包含 7,000 名额外更新用户的带宽7,000 * 40 MiB273.4375 GiB
总计976.5625 - 100 - 273.4375603.125 GiB

如果同一订户在当前计费期内向相同的 10,000 名用户发送第 21 次 5 MiB 更新,他们只需支付任何额外使用的带宽费用。

🌐 If the same subscriber sends the 21st update of 5 MiB to the same 10,000 users in the current billing period, they will only pay for any extra bandwidth used.

描述计算数量
用于发送更新的带宽21 次更新 * 5 MiB * 10,000 用户1,025.39 GiB
计划中包含的带宽100 GiB
包含 7,000 个额外更新用户的带宽7,000 * 40 MiB273.4375 GiB
总计1,025.39 - 100 - 273.4375651.95 GiB

这是因为 Expo 只对独立月活跃用户收费。因此,订阅者的额外使用费用账单将是:

🌐 This is because Expo only charges for unique monthly active users. As a result, the subscriber's bill for extra usage will be:

描述价格数量总计
更新用户每用户 $0.0057,000$35
全球边缘带宽每GiB $0.10651.95 GiB$65.2
总计 (美元)$100.2

如果同一订阅者使用的是生产计划,他们将支付 $0,因为生产计划包括 50,000 名每月活跃用户和 1 TiB(1024 GiB)的存储空间。因此,不会有额外的带宽使用费用。

🌐 If the same subscriber is on a Production plan, they will pay $0 as the Production plan includes 50,000 monthly active users and 1 TiB (1024 GiB). As such, there is no extra bandwidth usage.

监控使用情况

🌐 Monitor usage

注意:显示的账单估算可能会延迟最多 24 小时(一天)。

要查看当前计费周期的使用情况摘要,请前往 Billing,在 Usage 下,你将找到 EAS Build 和 EAS Update 使用情况的摘要。

🌐 To see the current billing period's usage summary, go to the Billing and under Usage, you will find a summary for both EAS Build and EAS Update usage.

EAS Build 使用历史记录

🌐 EAS Build usage history

要查看当前或上一个结算期的 EAS Build 详细使用情况:

🌐 To see detailed EAS Build usage for a current or previous billing period:

  • 在导航菜单中点击使用情况
  • EAS Build 部分,你将找到基于平台和资源类别的构建数量及已执行构建的详细信息。

EAS 更新使用历史记录

🌐 EAS Update usage history

要查看当前或上一个结算期的 EAS Update 详细使用情况:

🌐 To see detailed EAS Update usage for a current or previous billing period:

  • 在导航菜单中点击使用情况
  • EAS 更新 部分,你将找到有关更新用户和全球边缘带宽的详细信息。

启用 EAS Build 使用通知

🌐 Enable notifications for EAS Build usage

你可以启用计划信用使用通知,以密切监控你的 EAS 构建使用情况。当使用了你计划中 80% 和 100% 的 EAS 构建信用时,将发送电子邮件通知。

🌐 You can enable Plan credit usage notifications to closely monitor your EAS Build usage. It enables email notifications when 80% and 100% of your plan's EAS Build credit is used.

要启用 EAS Build 信用使用通知:

🌐 To enable EAS Build credit usage notification:

  • 在账户设置的导航菜单中点击 电子邮件通知
  • EAS Build 通知 下,点击 订阅 获取 计划信用使用通知

如何优化构建使用

🌐 How to optimize build usage

你可以使用 EAS Update开发版本 来测试和部署新代码,而无需创建全新的构建。这将帮助你更快地迭代并减少构建使用量。

🌐 You can use EAS Update and development builds to test and deploy new code without having to create an entirely new build. This will help you iterate faster and reduce build usage.

对于大多数应用来说,JavaScript 代码比底层的原生代码和配置更频繁地变化。如果每次代码变更都重新构建应用,请考虑使用 EAS Update 利用 JavaScript 和原生代码之间不同的迭代频率。这样,你可以将这些变更作为更新发布。

🌐 For most apps, the JavaScript code changes more frequently than the underlying native code and configuration. If you are building a new build every time for code changes, consider using EAS Update to take advantage of the different iteration frequency between JavaScript and native code. This way, you can ship those changes as an update instead.

在使用持续集成(CI)/持续部署(CD)构建预生产代码时,你可以通过自动化仅在本地代码发生更改时构建的过程来减少不必要的使用。你可以在 CI/CD 中创建一个工作流,使用 Expo Fingerprint 检测本地代码是否已更改,只有在代码发生更改时才执行构建。否则,如果本地代码未更改,则只发布更新。

🌐 When using Continuous Integration (CI)/Continuous Deployment (CD) to build pre-production code, you can reduce unnecessary usage by automating the process of building only when changes are made to the native code. You can create a workflow in your CI/CD using Expo Fingerprint to detect when your native code has changed, and only execute a build if it has changed. Otherwise, publish an update if the native code has not changed.

开发版可以运行与其原生运行时兼容的任何 EAS 更新。如果你在使用多个测试渠道的 EAS 更新,可以通过让你的测试人员或测试设备使用相同的开发版来减少创建额外版本的需求。

🌐 A development build can run any EAS Update that is compatible with its native runtime. If you are using EAS Update with multiple testing channels, you can reduce the need for creating additional builds by having your testers or test devices use the same development build.

如何优化更新使用

🌐 How to optimize update usage

在使用 EAS Update 时,你可以管理某些资源的包含或排除。这可以减少从更新服务器上传或下载的资源数量以及使用的全球边缘带宽。

🌐 You can manage certain assets to include or exclude when using EAS Update. This reduces the number of assets uploaded or downloaded from the updates server and the global edge bandwidth used.

为了优化存储和带宽的使用,你可以选择排除未被修改的资源。例如,未更改的图片或视频可以被排除。被排除的资源不会上传到更新服务器,也不会被应用下载。然而,需要确保那些不属于更新的资源包含在应用的原生构建中。

🌐 To optimize storage and bandwidth usage, you can choose to exclude assets that haven't been modified. For example, images or videos that haven't been changed can be excluded. Excluded assets won't be uploaded to the update server and won't be downloaded by the app. However, it's important to make sure that assets that are not part of an update are included in the native build of the app.

注意:如果应用已经下载了一个在新更新中也包含的资源,应用将不会重新下载该资源。这也不会增加你账户的带宽使用量。

你可以使用 npx expo-updates assets:verify <dir> 来检查更新中是否包含所有必需的资源。更多信息,请参见 资源选择与排除

🌐 You can use npx expo-updates assets:verify <dir> to check all required assets are included in the update. For more information, see Asset selection and exclusion.