自定义域名
编辑页面
为你的生产部署设置自定义域名。
For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.
默认情况下,您在 EAS Hosting 上的生产部署将会是这样:my-app.expo.app,其中 my-app 是您选择的预览子域名名称。如果您拥有一个域名,您可以将其作为自定义域名分配给生产部署。
每个项目只能有且仅有一个自定义域名,并且它会被分配给生产部署。
注意:设置自定义域名是一项高级功能,免费套餐中不可用。了解有关不同套餐及其权益的更多信息,请参阅 EAS pricing。
前置条件
分配自定义域名
-
在您项目的仪表板中,导航到 Hosting settings。
-
如果您还没有生产部署,系统会提示您先分配一个。
-
在 Custom domain 下,输入您想要设置的自定义域名。支持顶级域名和子域名。如果您拥有
example.com,您可以选择:example.com:顶级域名anything.example.com:子域名
-
接下来,系统会提示您通过 DNS 提供商填写一些 DNS 记录:
- Verification:用于证明您拥有该域名
- SSL:用于设置 SSL 证书
- CNAME(子域名)或 A record(顶级域名):用于将域名指向您的生产部署
-
按下刷新按钮,直到所有检查都通过。根据您的 DNS 提供商,这一步通常只需要几分钟。
如果您要求域名切换 零停机,请务必按照表格中呈现的顺序逐一填写这些记录。 也就是说,先添加 Verification TXT 记录,并不断点击“Refresh”,直到界面确认验证记录。然后再添加 SSL CNAME 记录,直到 它被确认,最后再设置第三条记录。 如果停机时间并不重要或不相关,您可以一次性添加全部三条 DNS 记录。
在为您的应用分配自定义域名后,该自定义域名将路由到您的 生产 部署。
自定义域名 DNS 记录
仪表板向您展示的三条记录中的两条是用于验证您对域名的所有权。 Verification TXT 记录通过添加一个可回读的自定义令牌来证明您拥有该域名,以验证您是在您控制的域名上设置该域名。 SSL CNAME 记录向证书颁发机构证明您对域名的所有权,也称为域控制验证(DCV)。这是一条 CNAME 记录,因为续期和验证都委托给了自动化流程,从而防止证书过期。
这两条记录都创建在您正在设置的自定义域名的子域名上。
- 如果您正在设置
example.com,这些记录必须分别创建在_cf-custom-hostname.example.com和_acme-challenge.example.com上 - 如果您正在设置
anything.example.com,这些记录必须分别创建在_cf-custom-hostname.anything.example.com和_acme-challenge.anything.example.com上
最后,仪表板展示的第三条 DNS 记录始终是将您的域名指向 EAS Hosting 的实际 DNS 记录。
- 对于顶级域名,仪表板通常建议使用指向
172.66.0.241的 A record - 对于子域名,仪表板通常建议使用指向
origin.expo.app的 CNAME record
这两种记录是等价的,不过有些 DNS 提供商不允许在顶级域名上设置 CNAME 记录。
别名和通配符子域名
如果您在 2025 年 3 月 19 日 之前已经设置了自定义域名,那么在按照通配符域名设置说明之前,您必须先点击项目 Hosting settings 中的“Refresh”按钮。
虽然每个项目只能设置一个自定义域名,但您可以额外设置子域名 DNS 记录,以处理除生产别名之外的其他别名请求。 请求将路由到其别名与该子域名匹配的部署。
例如,在 创建 staging 别名 之后,您可以为您的别名设置 CNAME 记录:
- 如果您设置的是顶级域名,例如
example.com,请在staging.example.com上创建一个指向origin.expo.app的 CNAME 记录 - 如果您设置的是子域名,例如
anything.example.com,请在staging.anything.example.com上创建一个指向origin.expo.app的 CNAME 记录
如果您希望将任意子域名请求指向您创建的任意别名,您也可以改为设置通配符 CNAME 记录:
- 如果您设置的是顶级域名,例如
example.com,请在*.example.com上创建一个指向origin.expo.app的 CNAME 记录 - 如果您设置的是子域名,例如
anything.example.com,请在*.anything.example.com上创建一个指向origin.expo.app的 CNAME 记录
通配符 CNAME 记录总是以 * 开头,表示任何子域名。只要您自定义域名上的子域名都设置为 origin.expo.app,EAS Hosting 就会尝试将请求发送到与匹配名称的别名相关联的部署。
例外情况是 www 子域名。如果您已设置 www 子域名,但不存在名为 www 的别名,请求将以 308 响应重定向到自定义域名,并被视为对生产部署的请求。如果您只想为自定义域名上的 www 子域名设置自动重定向,请在 www.<yourdomain> 上创建一个指向 origin.expo.app 的 CNAME 记录。